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 값 얻기
.......................
}
%>
쿠키는 간단한 텍스트 형태의 파일로 클라이언트에게 보내진다. 따라서 어떤한 보안 매커니즘도 가지고 있지 않다. 이러한 보안의 문제 때문에 종종 사람들은 쿠키기능을 거부할 때도 있다. 쿠키 기능을 거부한다면 쿠키는 더 이상 사용하지 못하게 된다. 하지만, 쿠키에 대해서 그렇게 민감한 사람이 얼마나 있을까하는 의문도 든다. 또 하나 쿠키가 가지는 단점은 사이트당 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 값 얻기
.......................
}
%>