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>
'IT' 카테고리의 다른 글
[스크랩] powershell배치파일을 windows예약작업에 등록하는 방법 (0) | 2010.04.09 |
---|---|
[스크랩] JSP_MYSQL 연동 (0) | 2010.03.15 |
[스크랩] JSP 코드 작성 표준 양식 - 펌 (0) | 2010.03.15 |
[스크랩] java 특수문자 (0) | 2010.03.15 |
[스크랩] JSP 자주쓰는 메서드 정리 (0) | 2010.03.15 |