블로그 이미지
암초보

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

Tag

01-04 19:32
2009. 8. 5. 19:39 프로그래밍/Servlet&JSP
자바스크립트든 어디든, 인코딩 시켜준 타입으로 디코딩 해주면..
한글 안깨짐..

URLDecoder.decode(query, "utf-8);

'프로그래밍 > Servlet&JSP' 카테고리의 다른 글

<c:forEach>에서 인덱스 사용법  (0) 2013.11.27
fmt:parseDate 와 fmt:formatDate  (0) 2013.05.20
JSP 쿠키 생성, 삭제  (0) 2009.08.04
posted by 암초보
2009. 8. 4. 09:02 프로그래밍/Servlet&JSP

저장

 

 Cookie cook1 = new Cookie("name", "kalzas");  //쿠키객체생성

 cook1.setPath="/";  //쿠키가 적용될 웹서버의 url 경로

 cook1.setMaxAge(60*60*24*365); //쿠키가 유지되는 시간(1년) -1일경우 페이지 닫으면 삭제

 cook1.setDomain = "url"; //응답해 줄 도메인 명

 response.addCookie(cook1);  //쿠키를 클라이언트에 세팅

  

 -가져오기

 

 try(

   Cookie[] cookies = request.getCookies();

   for(int i = 0; i < cookies.length; i++){

     out.println(cookies[i].getName() + "은" + cookies[i].getValue() + "입니다.);

   }

 }catch (Exception e){

   out.println(e);

 }

 

 -삭제하기

 

 try{

   Cookie[] cookies = request.getCookies();

   for(int i=0; i< cookies.length; i++){

     cookies[i].setMaxAge(0);

     cookies[i].setPath("/");              // 처음 설정한 Path 로 해줘야 쿠키가 삭제된다!

     response.addCookie(cookies[i]);

   }

   out.println("쿠키가 삭제되었습니다.");

 }catch(Exception e){

   out.println(e);

 }

 

특정 도메인과 연결된 경우에는 그 도메인의 요청에 의해서만 삭제해야 한다.

 

try{

   Cookie[] cookies = request.getCookies();

    for(int i=0; i< cookies.length; i++){

        Cookie cook = cookies[i];

        if(cook.getName().equals("ucc_login")) {

           cook.setPath = "/";

           cook.setDomain = "url"; 

           cook.setMaxAge(0);

           response.addCookie(cook);
        }

     }

} catch(Exception e) {

   out.println(e);

 }

'프로그래밍 > Servlet&JSP' 카테고리의 다른 글

<c:forEach>에서 인덱스 사용법  (0) 2013.11.27
fmt:parseDate 와 fmt:formatDate  (0) 2013.05.20
URLDecoder  (0) 2009.08.05
posted by 암초보
2009. 7. 29. 21:34 프로그래밍/Java

IBM RSAEE(Rational Software Analyzer Enterprise Edition)라는 도구는 JAVA 코드를 입력받아 Static analysis를 수행한다. 


아래는 대상 샘플 코드이다.


static void test1() {

int l_cnt = 0;


System.out.println(System.currentTimeMillis());

String l_str = new String(new StringBuffer(10000));

for (; l_cnt < 3000; l_cnt++) {

l_str += "긍" + "정" + "적" + "으" + "로" + "생" + "각" + "한" + "다.";

}

System.out.println(System.currentTimeMillis());

System.out.println(l_str);

}


static void test2() {

int l_cnt = 0;


System.out.println(System.currentTimeMillis());

StringBuffer sb = new StringBuffer(10000);

for (; l_cnt < 3000; l_cnt++) {

sb.append("긍");

sb.append("정");

sb.append("적");

sb.append("으");

sb.append("로");

sb.append("생");

sb.append("각");

sb.append("한");

sb.append("다.");

}

System.out.println(System.currentTimeMillis());

System.out.println(sb.toString());

}


static void test3() {

int l_cnt = 0;


System.out.println(System.currentTimeMillis());

StringBuilder sb = new StringBuilder(10000);

for (; l_cnt < 3000; l_cnt++) {

sb.append("긍");

sb.append("정");

sb.append("적");

sb.append("으");

sb.append("로");

sb.append("생");

sb.append("각");

sb.append("한");

sb.append("다.");

}

System.out.println(System.currentTimeMillis());

System.out.println(sb.toString());

}


test1()결과=>

1244458513307

1244458513557

(250 msec)


test2()결과=>

1244458513572

1244458513572

(0 msec)         // 약간 증가하기도 함


test3()결과=>

1244458513588

1244458513588

(0 msec)         // 약간 증가하기도 함


여러번 수행하였으나 test1()의 수행시간이 크게 나타났다.


RASEE의 설명은 다음과 같다.

When two strings are concatenated using + operator the new string is allocated. Thus, concatenating strings inside of loops is likely to lead to performance problems.

출처 : 중희의 블로그(http://blog.daum.net/jhmoon77/17454990)

'프로그래밍 > Java' 카테고리의 다른 글

Java 접근제한자  (0) 2011.09.18
Java transient  (0) 2011.09.05
Class.forName() 과 DriverManager  (0) 2011.08.31
org.apache.commons.lang.StringEscapeUtils  (0) 2011.08.25
참 쉬운 숫자 변환 DecimalFormat  (0) 2010.09.17
posted by 암초보