WebApp Cookie Test

황제낙엽 2007.08.27 12:15 조회 수 : 280 추천:144

sitelink1 http://blog.naver.com/goni9071?Redirect=...0020791214 
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

 

1. Cookie

쿠키는 간단한 텍스트 형태의 파일로 클라이언트에게 보내진다. 따라서 어떤한 보안 매커니즘도 가지고 있지 않다. 이러한 보안의 문제 때문에 종종 사람들은 쿠키기능을 거부할 때도 있다. 쿠키 기능을 거부한다면 쿠키는 더 이상 사용하지 못하게 된다. 하지만, 쿠키에 대해서 그렇게 민감한 사람이 얼마나 있을까하는 의문도 든다. 또 하나 쿠키가 가지는 단점은 사이트당 20개의 쿠키, 모두 합쳐서 300개의 쿠기가 최대이며 각 쿠키는 4 킬로바이트를 넘을 수 없다.

이러한 단점에도 불구하고 쿠키는 널리 사용되고 있고 우리의 목적은 쿠키를 어떻게 사용할 수 있느냐는 것이므로 JSP에서는 어떻게 쿠키를 사용하는지를 보도록 하자.



2. Cookie API

쿠키는 javax.servlet.http 패키지에 들어 있는 클래스이다. 쿠키를 설정해서 보내는 일은 대충 3 단계의 순서로 이루어진다.

① 쿠키 객체를 생성한다

② 쿠키의 속성을 설정한다

③ 쿠키를 전송한다



쿠키 API 에 대해서 구체적으로 알아보자.

생성자는 Cookie(String name, String value)로 되어있다. name 과 value를 한 쌍으로 쿠키를 셋팅한다. 속성의 설정은 대부분 setXxx 로 되어 있다. 반대로 속성을 살펴보려면 getXxx 메쏘드를사용하면 된다.



public int getMaxAge() : 쿠키의 유효 시간을 얻어온다. 파기되기까지의 시간을 초단위로 리턴한다.



public void setMaxAge(int MaxAge) : 쿠키의 유효 시간을 설정한다. 물론 초단위이다. 디폴트 값은 .1 이며 이는 현재 세션이 살아있는 동안 계속 살아있다는 것을 의미한다.



public String getDomain() : 쿠키가 적용되는 도메인을 가져온다.



public void setDomain(String Domain) : 쿠키가 적용될 도메일을 설정한다.

브라우저는 쿠키를 서버쪽으로 보낼 때 원래 그 쿠키를 보낸 서버 호스트에게만 돌려준다. 따라서 setDomain 메쏘드를 사용해서 셋팅을 하면 그 도메인에 속해있는 다른 호스트도 이 쿠키를 접근할 수 있으므로 같은 도메인내에서 쿠키를 공유할 수가 있게 된다. 주의할 점은 . 을 2개이상 설정해야 한다는 것이다. 도메인의 이름을 .javatown.net 과 같이 해야지 그냥 javatown.net 으로 해서는 안된다.



public String getPath() : 쿠키가 적용될 수 있는 path를 가져온다.



public void setPath(String path) : 쿠키의 적용 path를 설정하게 되는데, 만약 이 설정을 하지 않으면 쿠키를 보낸 path의 하위 path에서는 접근이 가능하지만 다른 path에서는 접근이 불가능하다. 무슨 이야기인고 하니, jsp.boolpae.com/jsp/example.jsp 에서 쿠키를 보냈다면 jsp의 하위 폴더의 웹페이지에서는 이 쿠키에 접근할 수 있지만 jsp.boolpae.com/xml 이라는 폴더의 하위 폴더에서는 접근할 수 없다. 따라서 웹어플리케이션의 모든 곳에서 접근이 가능하도록 하려면 setPath(“/”) 와 같이 설정해 주면 된다. / 는 루트 디렉토리를 가리키므로…



public void setValue(String value) : 쿠키의 value(값)을 설정한다. 이미 생성되어 있는 쿠키이므로 값을 바꾸는 메쏘드로 이해하면 될 것이다.



public String getValue() : 쿠키의 값을 가져온다.



public void setComment(String purpose) : 쿠기에 주석을 넣는다.



public String getComment(String purpose) : 쿠기에 주석을 가져온다. 주석설정이 안됐을 경우 null을 리턴한다.



3. jsp내에서 간단한 Cookie 사용법

<%

//설정하기

Cookie cookie = new Cookie("test","cookie"); //name : test, value : cookie 로 Cookie 생성

cookie.setMaxAge(60*60*24*30); //유효시간 설정 : 60*60*24*30(초) = 30일

cookie.setDomain("www.javatown.net"); //도메인 설정

cookie.setVersion(1); //버젼설정

cookie.setComment("javatown test"); //주석

//cookie.setValue("value_change"); //value를 cookie에서 value_change로 바꾼다.

response.addCookie(cookie); //쿠키전송

%>



<%

//사용하기

Cookie[] cookies = request.getCookies(); //Cookie 객체가 생성된 순서의 배열로 들어온다.



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

out.println(cookies[i].getName()); //Cookie 이름 얻기

out.println(cookies[i].getValue()); //Cookie 값 얻기

.......................

}

%>

 

번호 제목 글쓴이 날짜 조회 수
103 J2SE 5.0 - 제네릭(GENERIC) 황제낙엽 2007.08.27 389
» Cookie Test file 황제낙엽 2007.08.27 280
101 쿠키 유틸리티 클래스 CookieBox 만들기 file 황제낙엽 2007.08.27 420
100 통합을 위한 요소 기술, Java와 XML 황제낙엽 2007.08.27 419
99 중복 로그인 제한 기법에 대하여 황제낙엽 2007.08.23 457
98 interface와 abstract클래스의 차이점 황제낙엽 2007.07.28 520
97 javadoc - The Java API Documentation Generator 황제낙엽 2007.07.25 574
96 자바의 I/O 예제 [3] file 황제낙엽 2007.07.16 454
95 자바의 I/O 예제 [2] file 황제낙엽 2007.07.14 292
94 계층형(답변형) 게시판 로직(최근 답변 하단으로) 황제낙엽 2007.07.11 434
93 J2SE 5.0 - 주석(annotation,표식) 개요 황제낙엽 2007.07.03 393
92 include문과 logging 설정 황제낙엽 2007.03.23 551
91 [BPP] 게시판 페이징 로직 분석 - M1.1 - 샘플 다운로드 및 사용법 file 황제낙엽 2007.06.15 440
90 [BPP] 게시판 페이징 로직 분석 - (5) 페이지 계산 file 황제낙엽 2007.06.15 438
89 [BPP] 게시판 페이징 로직 분석 - (4) 쿼리문의 자동완성 file 황제낙엽 2007.06.14 489
88 [BPP] 게시판 페이징 로직 분석 - (3) 검색과 정렬 file 황제낙엽 2007.06.13 354
87 [BPP] 게시판 페이징 로직 분석 - (2) 간단한 페이징 기법 황제낙엽 2007.06.08 826
86 [BPP] 게시판 페이징 로직 분석 - (1) 클래스 목록 file 황제낙엽 2007.06.06 393
85 문자열의 앞뒤space제거처리 성능체크 황제낙엽 2007.06.03 418
84 간단한 서블릿 예제들 file 황제낙엽 2007.05.12 323