한글 안깨짐..
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 |
<c:forEach>에서 인덱스 사용법 (0) | 2013.11.27 |
---|---|
fmt:parseDate 와 fmt:formatDate (0) | 2013.05.20 |
JSP 쿠키 생성, 삭제 (0) | 2009.08.04 |
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);
}
[출처] JSP 쿠키 생성 및 삭제|작성자 열혈공대
<c:forEach>에서 인덱스 사용법 (0) | 2013.11.27 |
---|---|
fmt:parseDate 와 fmt:formatDate (0) | 2013.05.20 |
URLDecoder (0) | 2009.08.05 |
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 접근제한자 (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 |