'COMPUTER/JAVA, JSP'에 해당되는 글 18건

 
  1. 2019.01.30 [JAVA/JSP] 사용자 IP, 접속자 IP, 클라이언트 IP 주소 가져오기 샘플코드 1
  2. 2014.03.06 [JAVA/JSTL] JSTL 포매터 오류, Cannot convert 2014-02-24 10:43:12.67 of type class java.lang.String to class java.util.Date
  3. 2014.01.02 REGEXP C:URL PAGECONTEXT REQUEST CONTEXTPATH REPLACE
  4. 2013.11.06 [SPRING,JAVA] 프레임워크에 Ajax사용을 위한 JsonView 설정하기, Spring Framework JsonView Ajax Sample
  5. 2013.07.04 가우스 트리뷰 그리드 이미지 적용 가이드
  6. 2012.10.05 [JAVA] 자바 스플릿 함수 예제, Java Split Function
  7. 2012.09.18 [JAVA/JSP] 데이트포멧 에러, DateFormat Error, java.lang.IllegalArgumentException: Illegal pattern character 'T' in
  8. 2011.03.09 [JAVA/JSTL] JSTL 함수 목록, JSTL Function List 1
  9. 2011.03.09 [JAVA/JSTL] varStatus, JSTL 루프 상태값 1
  10. 2011.03.09 [JAVA/JSTL] JSTL Tokenizer, 배열대용 1
  11. 2011.03.09 [JAVA/JSTL] JSTL 예제 FOR, FOREACH, 변수선언, 배열선언 1
  12. 2011.02.01 [JAVA/JSP] 쌩 JSP, 레알 초간단 파일 다운로드 소스 5
  13. 2010.12.07 [JAVA] DTO VO Value Object 1
  14. 2010.10.11 [JAVA/JSP] java.lang.NoClassDefFoundError: org/apache/xpath/XPathAPI 1
  15. 2010.10.05 [JAVA/JSP] 날짜용 유틸 함수 2
  16. 2010.03.24 [JAVA/JSP] 정규표현식 스크립트 제거 Regex Replace Function
  17. 2010.03.12 [JSP/JAVA] 최상위, 파일 경로 알아내기
  18. 2010.02.11 [JAVA/JSP] JSP Request 객체에서 모든변수 뽑기, 출력, Request, Enumeration
2019. 1. 30. 12:22 COMPUTER/JAVA, JSP
[JAVA/JSP] 사용자 IP, 접속자 IP, 클라이언트 IP 주소 가져오기 샘플코드

자바나 JSP로 클라이언트 IP주소를 알아내는 코드 샘플 입니다.


보통 request.getRemoteAddr()로 사용하죠.

IP주소를 알아내는 방법은 여러가지가 있습니다.

3가지나 준비했습니다. 골라서 사용하세요.



클라이언트 IP 주소 가져오기 #1

 
// 클라이언트 IP 주소 가져오기 #1
 
String ipAddress=request.getRemoteAddr();
System.out.println("클라이언트 IP 주소: "+ipAddress);
 



클라이언트 IP 주소 가져오기 #2

 
// 클라이언트 IP 주소 가져오기 #2
 
String header=request.getHeader("X-Forwarded-For");
String ipAddress=new StringTokenizer(header, ",").nextToken().trim();
System.out.println("클라이언트 IP 주소: "+ipAddress);
 



클라이언트 IP 주소 가져오기 #3

// 클라이언트 IP 주소 가져오기 #3
 
String ipAddress=request.getRemoteAddr();
if(ipAddress.equalsIgnoreCase("0:0:0:0:0:0:0:1")){
    InetAddress inetAddress=InetAddress.getLocalHost();
    ipAddress=inetAddress.getHostAddress();
}
System.out.println("클라이언트IP 주소: "+ipAddress);
 




2014. 3. 6. 10:30 COMPUTER/JAVA, JSP
[JAVA/JSTL] JSTL 포매터 오류, Cannot convert 2014-02-24 10:43:12.67 of type class java.lang.String to class java.util.Date

2014-02-24 10:43:12.67 을 스트링 클래스를 날짜 클래스로 변경할 수 없습니다


이 오류는 JSTL에서 형 변환을 할 수 없다는 에러 입니다.

fmt:formatDate에 스트링 말고 데이트 형을 주입해야 합니다.

저의 list.employmentParticipator.eventSendDttm 변수가 String 이였습니다.

Date로 고치면서 해결





에러난 소스

<fmt:formatDate value="${list.employmentParticipator.eventSendDttm}" pattern="yyyy-MM-dd"/>


콘솔 에러

Throwable occurred: javax.el.ELException:
Cannot convert 2014-02-24 10:43:12.67 of type class java.lang.String to class java.util.Date
at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:420)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:187)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1026)
...
...


eventSendDttm이 지정된 VO 자바파일

...
...
...
private Date updaterDttm; //수정일시
private String eventSendDttm; //이벤트지급
...
...
...
2014. 1. 2. 16:45 COMPUTER/JAVA, JSP
REGEXP C:URL PAGECONTEXT REQUEST CONTEXTPATH REPLACE

C:URL을 사용하면 처음 접속시 JSESSION ID가 붙어나옵니다.

C URL을 contextPath로 변경하기 위한 정규표현식 입니다.



옵션에서 정규표현식 사용을 체크합니다.


검색

<c:url value=['|"]([a-zA-Z0-9\.\/\\\-\_]*)['|"]\s*\/>


치환

\$\{pageContext\.request\.contextPath\}$1



2013. 11. 6. 16:36 COMPUTER/JAVA, JSP
[SPRING,JAVA] 프레임워크에 Ajax사용을 위한 JsonView 설정하기, Spring Framework JsonView Ajax Sample

JSON뷰를 이용하여 AJAX를 사용할 수 있게 설정하는 방법입니다.

예제는 전자정부 프레임웤으로 했습니다.

사실 pom.xml과 dispatcher에는 기본적으로 등록되어있었습니다.

다른 스프링기반 프레임웤들은 직접 추가해주시면 됩니다.


pom.xml
<dependency>        
	<groupId>net.sf.json-lib</groupId>        
	<artifactId>json-lib</artifactId>        
	<version>2.4</version>        
	<classifier>jdk15</classifier>    
</dependency>

<dependency> 
	<groupId>org.codehaus.jackson</groupId> 
	<artifactId>jackson-mapper-asl</artifactId> 
	<version>1.6.4</version> 
</dependency>

DispatcherServlet XML 설정파일
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" id="viewResolver" p:order="0"/>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" id="jsonView">
	<property name="contentType" value="application/json;charset=UTF-8"/>
</bean>

web.xml
<servlet-mapping>
	<servlet-name>action</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
	<servlet-name>action</servlet-name>
	<url-pattern>*.ajax</url-pattern>
</servlet-mapping>

TestController.java
@RequestMapping("/test.do")
public String test(@ModelAttribute("searchVO") CommentVO commentVO, ModelMap model) throws Exception {
	return "test/test";
}

@RequestMapping("/test.ajax")
public ModelAndView testAjax(@ModelAttribute("searchVO") CommentVO commentVO, ModelMap model) throws Exception {

	Map resultMap = new HashMap();
	resultMap.put("result1", "test1");
	resultMap.put("result2", "test222");

	ModelAndView modelAndView = new ModelAndView("jsonView",resultMap);
	return modelAndView;
}

test.jsp
<script type="text/javascript">
<!--

$.post("${pageContext.request.contextPath}/test.ajax",
	{
		test1: "1111",
		test2: "2222"
	},
	function(data) {
		alert("result: " + data);
	}
);

-->
</script>




END


2013. 7. 4. 00:09 COMPUTER/JAVA, JSP
가우스 트리뷰 그리드 이미지 적용 가이드



Gauce 가우스 트리뷰 그리드 이미지 적용 가이드



GAUCE_트리뷰_그리드_메뉴_이미지_적용_가이.docx


2012. 10. 5. 09:15 COMPUTER/JAVA, JSP
[JAVA] 자바 스플릿 함수 예제, Java Split Function

Java Split 함수

 

정규표현식에 의한 스트링 배열을 반환하는 함수입니다.

2번째 파라미터 limit 옵션 값으로 갯수를 제어할 수 있습니다.

public String [] split(String  regex, int limit)


 

특수문자 자르기, 자를 문자는 정규표현식이기 때문에 특수문자는 []로 표현해야합니다.

String str="1+2+10+15";
String splitted[]=str.split("[+]");
for (String value : splitted)
	System.out.println(value);

// RESULT
// 1
// 2
// 10
// 15

 

 

자를 문자열 사이가 비었을때 limit파라미터에 -1을 사용하면 빈값으로 배열을 만들 수 있습니다.

String str="1,,3,";

String splitted[]=str.split(",");
for (String value : splitted)
	System.out.println(value);
// RESULT
// 1
// 3

String splitted[]=str.split(",",-1);
for (String value : splitted)
	System.out.println(value);

// RESULT
// 1
// 
// 3
//
2012. 9. 18. 16:01 COMPUTER/JAVA, JSP
[JAVA/JSP] 데이트포멧 에러, DateFormat Error, java.lang.IllegalArgumentException: Illegal pattern character 'T' in

 

코딩 중 에러 발생...

 

2012-10-02T12:50 와 같은 날짜를 만드려고 포멧 스트링에 T를 적었습니다.

 

Unexpected Exception occurred - java.lang.IllegalArgumentException:

Illegal pattern character 'T' in "yyyy-MM-ddTHH:mm:ss"

 

데이트 포맷 스트링에 T를 잘못사용 했다는 에러 입니다.

 

 
하여 역슬레쉬 (\T)로 해봤지만 소용없음

 

 

대신 따옴표를 앞뒤로 붙이면 됩니다.


//잘못된 사용법
 
Calendar calendar=Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"));
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss");
String strBuf=dateFormat.format(calendar.getTime());
 


//올바른 사용의 예~

Calendar calendar=Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul")); 
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String strBuf=dateFormat.format(calendar.getTime());
 


2011. 3. 9. 15:29 COMPUTER/JAVA, JSP
[JAVA/JSTL] JSTL 함수 목록, JSTL Function List

fn:contains(string, substring)  string이 substring을 포함하면 true 리턴. 
fn:containsIgnoreCase(string, substring)  대소문자에 관계없이, string이 substring을 포함하면 true 리턴. 
fn:endsWith(string, suffix)  string이 suffix로 끝나면 true 리턴. 
fn:escapeXml(string)  string에 XML과 HTML에서 특별한 의미를 가진 문자들이 있으면, XML 엔티티 코드('&' -> &amp; 등)로 바꿔준 뒤 문자열 리턴. 
fn:indexOf(string, substring)  string에서 substring이 처음으로 나타나는 인덱스 리턴. 
fn:join(array, separator)  array(배열) 요소들을 separator를 구분자로 하여 연결해서 리턴 
fn:length(obj)  obj 이 배열이나 컬렉션이면 요소의 갯수를, 문자열이면 문자의 갯수를 리턴. 
fn:replace(string, before, after)  string 내에 있는 before 문자열을 after 문자열로 모두 바꿔서 리턴. 
fn:split(string, separator)  string 내의 문자열을 separator에 따라 나누어서 배열로 구성해 리턴. 
fn:startsWith(string, prefix)  string이 prefix로 시작하면 true 리턴. 
fn:substring(string, begin, end)  string에서 begin 인덱스에서 시작해서 end 인덱스에 끝나는 부분(end 인덱스에 있는문자 포함)의 문자열을 리턴. string.substring(begin, end)의 결과와 동일. end가 -1일 경우 string.substring(begin)과 동일.
fn:substringAfter(string, substring)  string에서 substring이 나타나는 이후의 부분에 있는 문자열을 리턴. 
fn:substringBefore(string, substring)  string에서 substring이 나타나기 이전의 부분에 있는 문자열을 리턴. 
fn:toLowerCase(string)  string을 모두 소문자로 바꿔 리턴. 
fn:toUpperCase(string)  string을 모두 대문자로 바꿔 리턴. 
fn:trim(string)  string 앞뒤의 공백(whitespace)을 모두 제거하여 리턴.

2011. 3. 9. 12:41 COMPUTER/JAVA, JSP
[JAVA/JSTL] varStatus, JSTL 루프 상태값
varStatus, JSTL 루프 상태값
 
< c:foreach items="${RESULT}" var="RESULT" varStatus="status"> 
${status.current}<br/>
${status.index}<br/>
${status.count}<br/>
${status.first}<br/>
${status.last}<br/>
${status.begin}<br/>
${status.end}<br/>
${status.step}<br/>
 < /c:forEach>
 
 
PROPERTY GETTER DESCRIPTION
current getCurrent() 현재 아이템
index getIndex() 0부터의 순서
count getCount() 1부터의 순서
first isFirst() 현재 루프가 처음인지 반환
last isLast() 현재 루프가 마지막인지 반환
begin getBegin() 시작 속성
end getEnd() 끝 속성
step getStep() 현재 스텝 속성
2011. 3. 9. 10:05 COMPUTER/JAVA, JSP
[JAVA/JSTL] JSTL Tokenizer, 배열대용
JSTL에서는 배열을 선언할 수 없습니다.
대신에 토큰으로 비슷한 기능을 구현할 수 있습니다.


코드
<c:set var="testVar">값1,값2,값3,값4</c:set>
<c:forTokens items="${testVar}" delims="," var="value">
<c:out value="${value}" /><br/>
</c:forTokens>

결과
값1
값2
값3
값4

JSTL 예제
2011/03/09 - [SCRIPTING] - [JAVA/JSTL] JSTL 예제 FOR, FOREACH, 변수선언, 배열선언

2011. 3. 9. 09:56 COMPUTER/JAVA, JSP
[JAVA/JSTL] JSTL 예제 FOR, FOREACH, 변수선언, 배열선언
간단한 JSTL 예제 입니다.


배열 선언은 못하는대신에 토큰으로 구현할 수 있습니다.
2011/03/09 - [SCRIPTING] - [JAVA/JSTL] JSTL Tokenizer, 배열대용


변수 선언
<c:set var="testVar" value="${param.testVar}" />


루프, FOREACH STATEMENT
<c:forEach items="${resultList}" var="resultList" varStatus="status">
${status.count}
...CODE...
</c:forEach>


루프, FOR STATEMENT
<c:forEach var="i" begin="0" end="5" step="1">
...CODE...
</c:forEach>


비교, IF
<c:if test="${i==0}">
...CODE...
</c:if>

2011. 2. 1. 15:19 COMPUTER/JAVA, JSP
[JAVA/JSP] 쌩 JSP, 레알 초간단 파일 다운로드 소스

인터넷에 떠도는 '초간단 파일다운로드 소스'는 IBboard라는 라이브러리가 필요합니다.
그 소스는 개초보는 사용할 수 없습니다.
당신이 개초보라면 이 소스를 사용하는것이 정신건강에 좋습니다.

1. 소스에 '절대경로'를 실제 다운로드 받을 파일이 있는 위치로 수정하세요.
    윈도우라면 (C:\디렉토리\...), 리눅스라면 (/디렉토리/디렉토리/...)
2. 수정한 내용을 서버 루트에 'download.jsp'로 저장하십시요. (물론 이렇게 안해도 좋습니다.)
3. 브라우저를 키고 'http://서버주소/download.jsp?file=파일명' 으로 테스트하면 됩니다.
* 파일명은 서버에 존재해야합니다.

<%@ page contentType="application;" %>
<%@ page import="java.util.*,java.io.*,java.sql.*,java.text.*"%>
<%
String strFilename=java.net.URLDecoder.decode(request.getParameter("file"));
String strFilenameOutput=new String(strFilename.getBytes("euc-kr"),"8859_1");
File file=new File("절대경로"+strFilename);
byte b[]=new byte[(int)file.length()];
response.setHeader("Content-Disposition","attachment;filename="+strFilenameOutput);
response.setHeader("Content-Length",String.valueOf(file.length()));
if(file.isFile()){
 BufferedInputStream fin=new BufferedInputStream(new FileInputStream(file));
 BufferedOutputStream outs=new BufferedOutputStream(response.getOutputStream());
 int read=0;
 while((read=fin.read(b))!=-1){outs.write(b,0,read);}
 outs.close();
 fin.close();
}
%>

이것도 안되면,
아래 댓글창에 질문을 올리거나,
머리를 쥐어뜯어버리세요.
2010. 12. 7. 17:37 COMPUTER/JAVA, JSP
[JAVA] DTO VO Value Object
http://en.wikipedia.org/wiki/Data_transfer_object

VO는 Value Object의 약자로 보통 두 가지 의미로 사용됩니다. 

예전에는 여러 값을 담아두고 다른 곳에 전달하는 목적으로 객체를 쓸 때 그 
객체를 Value Object라고 했습니다. 
그런데 요즘은 DTO라는 더 정확한 명칭으로 바꾸어서 말하고 있습니다. 

요즘 말하는 Value Object는 말 그대로 값을 나타내는 객체입니다. 
대체로 불변성이고 
equals() 로 비교할 때 객체의 모든 값을 비교해야 하고 필드 수가 많지 않습니다. 
java의 Integer, Date, Long, String 같은 것이 대표적인 VO이고 여기에 돈을 
나타내는 Money, 좌표를 나타내는 Point , 우편번호 ZipCode, 주소 Address 
같은 것을 만들었다면 Value Object라고 할 수 있습니다. 

2010. 10. 11. 17:54 COMPUTER/JAVA, JSP
[JAVA/JSP] java.lang.NoClassDefFoundError: org/apache/xpath/XPathAPI
jdk1.5이상 버전에서 import org.apache.xpath.XPathAPI; 가 포함되면 에러가 납니다.

1.5부터는 XPathAPI의 경로가 com.sun.org.apache.xpath.internal 로 변경됬습니다.

1. 임포트 줄을 변경하거나
2. 예전 xpath를 넣어주는것으로 문제를 해결 할 수 있습니다.

xalan-2.4.1에 XPathAPI가 포함되어있습니다.
WEB-INF/lib폴더에 복사하면 됩니다.



2010. 10. 5. 12:45 COMPUTER/JAVA, JSP
[JAVA/JSP] 날짜용 유틸 함수
자바에서 날짜처리할때 사용하는 함수들 입니다.
파일명.java로 저장
클래스명은 파일명과 맞춰주세요.

package common.util;

import java.util.*;
import java.text.*;

public class 클래스명
{
    private static Date date;
    private static Calendar cal;
    private static String result;
    private static String pattern = "yyyy년 M월 d일  a h시 m분";
    private static SimpleDateFormat formatter;
    private static Locale nation = new Locale("ko","KOREA");

    /**
     * 내용  : 오늘 날짜를 Default Format으로 return
     * 입력 값 :
     * 출력 값 : String result
     */
    public static String getToday()
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
        result = formatter.format(date);
        return result;
    }
   
    /**
     * 내용  : 오늘 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern
     * 출력 값 : String result
     */
    public static String getToday(String datePattern)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
        result = formatter.format(date);
        return result;
    }

    /**
     * 내용  : 원하는 시기의 일단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : int change
     * 출력 값 : String result
     */
    public static String getDayDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 일단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getDayDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 주단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : int change
     * 출력 값 : String result
     */
    public static String getWeekDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        change = change * 7;
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 주단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getWeekDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        change = change * 7;
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.DATE, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 월단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getMonthDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.MONTH, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 월단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getMonthDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.MONTH, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 년단위로 입력한 숫자에 해당하는 날짜를 Default Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getYearDate(int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(pattern, nation);
  cal.add(Calendar.YEAR, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

    /**
     * 내용  : 원하는 시기의 년단위로 입력한 숫자에 해당하는 날짜를 입력한 Format으로 return
     * 입력 값 : String datePattern, int change
     * 출력 값 : String result
     */
    public static String getYearDate(String datePattern, int change)
    {
        date = new Date();
        cal = Calendar.getInstance();
        cal.setLenient(true);
        cal.setTime(date);
       
        formatter = new SimpleDateFormat(datePattern, nation);
  cal.add(Calendar.YEAR, change);
  Date setDate = cal.getTime();
  result = formatter.format(setDate);
  return result;
    }

 /**
     * 내용  : form부터 to까지 일수를 구하여 결과값 return
     * 입력 값 : String from, String to, String pattern
     * 출력 값 : int result
     */
 public static int daysBetween(String from, String to, String pattern)
 {
  SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.KOREA);
  Date date1 = null;
  Date date2 = null;

  try
  {
   date1 = format.parse(from);
   date2 = format.parse(to);
  }
  catch(ParseException e)
  {
   return -999;
  }

  if(!format.format(date1).equals(from))
  {
   return -999;
  }
  
  if(!format.format(date2).equals(to))
  {
   return -999;
  }

  long duration = date2.getTime() - date1.getTime();

  return (int)(duration/(1000 * 60 * 60 * 24));
 }
}



2010. 3. 24. 12:15 COMPUTER/JAVA, JSP
[JAVA/JSP] 정규표현식 스크립트 제거 Regex Replace Function
<script~, onclick=~, onmouseover=~, onmouseout=~ 제거함수

정규표현식 클래스 임포트
import java.util.regex.*;

함수 
public String getRemoveScript(String strContent){
  Pattern patternTag=Pattern.compile("\\<(\\/?)(\\w+)*([^<>]*)>");
  Pattern patternScript=Pattern.compile("(?i)\\<script(.*?)</script>");
  Pattern patternMouseOver=Pattern.compile("(?i) onmouseover=[\"']?([^>\"']+)[\"']*");
  Pattern patternMouseOut=Pattern.compile("(?i) onmouseout=[\"']?([^>\"']+)[\"']*");
  Pattern patternMouseClick=Pattern.compile("(?i) onclick=[\"']?([^>\"']+)[\"']*");
  Matcher matcherContent=patternScript.matcher(strContent);
  strContent=matcherContent.replaceAll("");
  Matcher matcherMouseOver=patternMouseOver.matcher(strContent);
  strContent=matcherMouseOver.replaceAll("");
  Matcher matcherMouseOut=patternMouseOut.matcher(strContent);
  strContent=matcherMouseOut.replaceAll("");
  Matcher matcherMouseClick=patternMouseClick.matcher(strContent);
  strContent=matcherMouseClick.replaceAll("");
  return strContent;
 }
2010. 3. 12. 04:46 COMPUTER/JAVA, JSP
[JSP/JAVA] 최상위, 파일 경로 알아내기
JSP/Servlet 사이트 경로 1 (드라이브:\사이트경로\)
String strRoot=request.getSession().getServletContext().getRealPath("/");
out.println(strRoot);

JSP/Servlet 사이트 경로 2 (드라이브:\사이트경로\)
String strRoot=getServletContext().getRealPath("/");
out.println(strRoot);

JSP/Servlet 특정 페이지 경로
String strRealPath=getServletContext().getRealPath("경로/파일명");
strRealPath=strRealPath.substring(0,strRealPath.lastIndexOf(System.getProperty("file.separator")));
out.println(strRealPath);

JSP/Servlet 현재 페이지 경로
String strRealPath=getServletContext().getRealPath(request.getRequestURI());
strRealPath=strRealPath.substring(0,strRealPath.lastIndexOf(System.getProperty("file.separator")));
out.println(strRealPath);

JAVA - 현재 클래스 경로
this.getClass().getResource("").getPath();


JAVA - 클래스 디렉토리 경로
this.getClass().getResource("/").getPath();
2010. 2. 11. 17:12 COMPUTER/JAVA, JSP
[JAVA/JSP] JSP Request 객체에서 모든변수 뽑기, 출력, Request, Enumeration

Request는 페이지에서 넘어오면 생성되는 JAVA객체입니다.
이 문서는 enumeration을 이용해 Request객체 안에 들어있는 모든 변수를 출력하는 예제입니다.

JSP용이므로,
JAVA에서는 out.println대신에 system.out.println을 사용하시면 됩니다.

<%
String query="";
Enumeration enum = request.getParameterNames();
while(enum.hasMoreElements()){  
	String key=(String)enum.nextElement();
	String value=request.getParameter(key);
	query+="&"+key+"="+value;
}
query="?"+query.substring(1);
out.println(query);
%>

최근에 올라온 글

최근에 달린 댓글