IT

[스크랩] jsp 쿠키 사용하기

네모세모네모 2010. 3. 15. 21:17

Cookie

·         서버에 접속하는 사용자의 컴퓨터에 특정 정보를 저장할 수 있는 기술

·         사용자는 쿠키를 저장했던 사이트를 찾아갈 경우 자신의 컴퓨터에 저장된 정보를 가지고 가게 됨.

·         브라우저의 옵션에 따라서 쿠키를 지원하지 않는 경우도 있음

·         서버에서는 이러한 정보를 가지고 방문하는 사용자에 대한 특정 작업을 진행할 수 있음

 쿠키란 서블릿에 의해 사용자 웹 브라우저에 보내지는 일종의 데이터(정보)이다. 웹 브라우저는 그 내용을 사용자 컴퓨터에 저장한다. 그리고 서버에서 요청할 때 웹 브라우저는 서버에 쿠키를 보낸다. 쿠키는 보통 사용자를 식별하기 위해서 사용한다.
 
쿠키는 name, value, comment, path, maxinum age등을 저장할 수 있다. name은 쿠키 식별자 정도로 이해하면 되고, value name의 값, comment는 쿠키의 설명이며, 사용자가 쿠키의 내용을 이해할 때 도움이 된다. path는 저장 된 쿠키를 가져올 페이지를 설정한다. 즉 특정페이지가 열렸을 때 쿠키를 가져온다. 쿠키를 저장하고 불러오는 페이지가 다를수도 있다. maxinum age는 쿠키의 유효기간정도로 이해하면 된다.

 

·         javax.servlet.http.Cookie!

·         Cookie(String name, String value) : name은 쿠키의 이름이다. 오직 ASCII 알파벳만 사용가능하다. 안 그러면 IllegalArgumentException 예외가 발생한다. 쿠키이름은 한번 정하면 바꿀 수 없다.(이름 바꾸는 함수는 없다.). value name이 가지는 값이다. value도 까다로운 규칙이 있다. 가능하면 알파벳과 숫자만 쓰는 것이 낫다.

·         void setComment(String comment) : 설명을 저장한다.

·         String getComment() : 저장된 설명을 불러온다.

·         void setMaxAge(int expiry) : 유효기간을 설정한다. 함수 실행 시점부터 초단위로 숫자만큼 유효하다. 100을 저장하면 실행된 시점부터 100초 까지 유효하다. 음수를 입력하면 유효기간이 만료됨을 의미하며, 브라우저에서 해당 쿠키를 삭제한다.

·         int getMaxAge() : 유효기간을 불러온다. 음수가 리턴되면 브라우저가 닫히기 전까지만 쿠키가 유효하다. 브라우저가 닫히면 다음에 더이상 쿠키는 사용할 수 없다.

·         void setPath(String url) : 브라우저가 쿠키를 줘야 할 path, 즉 사용자가 path에 접속할 때 서버가 쿠키를 가져갈 수 있다.

·         String getPath() : path를 구한다.

·         String getName() : 쿠키의 name을 구한다. 참고로 setName 함수는 없다. name은 절대 한번 정하면 바꿀 수 없다.

·         void setValue(String newValue) : 값을 설정한다.

·         String getValue() : 값을 불러온다.

참고로 쿠키 사용은 사용자 브라우저에서 허용을 해야 합니다.

 

예제

<%
Cookie[] visitor = request.getCookies();
int counter=0;

if(visitor != null)
{
 for ( int i = 0; i < visitor.length; i++ )
 {
  if (visitor[i].getName().equals("visit") == true)
   counter= Integer.parseInt(visitor[i].getValue());
 }
}
counter++;
Cookie post_visitor = new Cookie("visit",Integer.toString(counter));
post_visitor.setMaxAge(7*24*60*60); //
일주일간 유효기간.
response.addCookie(post_visitor);

%>
<html>
당신은 <font color=red><b><%= counter %></b></font>번째 방문하였습니다.
</html>

 

 

출처 : 주식&프로그래밍&DB 자료
글쓴이 : shin 원글보기
메모 :