쿠키(cookie)
-HTTP 프로토콜은 상태가 없다. 이전에 무엇을 했고, 지금 무엇을 하는지에 대한 정보를 갖고 있지 않다.
-따라서 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다.
-쿠키는 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법이다.
-쿠키는 웹 브라우저의 정보를 웹 브라우저에 저장하며, 이후에 서버로 전송되는 요청에는 쿠키가 가지고 있는 정보가 같이 포함되어서 전송된다.
-웹 서버는 웹 브라우저의 요청에 포함되어 있을 쿠키를 읽어서, 새로운 웹 브라우저인지 이전에 요청을 했던 웹 브라우저인지를 판단할 수 있다.
1)쿠키는 웹 사이트에 접속할 때 생성되는 정보를 저장한 임시 팡리이다.
2)쿠키는 4KB 이하의 크기로 일반적으로 생성된다.
3)사용자의 정보를 유지하거나, 사이트에 접속하는 사용자들이 해당 사이트에 쉽게 접속하기 위해 만들어졌다.(사생활 및 정보를 침해를 소지가 있음)
쿠키 생성 및 사용
-쿠키는 이름,값,유효기간,도메인,경로 등의 요소로 이루어져 있는데, 이 중 쿠키의 이름과 값이 가장 중요하다.
-쿠키를 식별하는데 사용되는 것이 이름 원하는 작업을 수행하려면 해당 쿠키에 대한 값이 있어야 하기 때문
1.JSP에서 쿠키를 생성하려면 다음과 같이 Cookie 클래스를 사용
ex)
Cookie cookie = new Cookie(String name, String value);
2.쿠키를 생성한 후에는 반드시 response 객체의 addCookie()메소드를 사용해서 쿠키를 추가해 주어야한다.
그래야 생성된 쿠키가 response 객체에 실려서 웹 브라우저에 응답시 브라우저에 저장된다.
ex)
response.addCookie(cookie);
3.쿠키 생성 후 쿠키의 값을 새 값으로 변경할 때는 setValue()메소드를 사용
ex)
cookie.setValue(newValue);
4.웹 브라우저의 요청과 함께 request 객체에 실려 온 쿠키를 읽어 올 때는 request 객체의 getCookies()메소드를 사용한다. 즉 getCookies()메소드를 사용해서 웹 브라우저에 저장된 쿠키를 읽어 온다.
ex)
Cookie[] cookies = request.getCookies();
5.쿠키의 수명(지속 시간)은 cookie 객체의 setMaxAge() 메소드를 사용해서 지정
ex)
cookie.setMaxAge(int expiry)
세션(Session)
-웹 서버 쪽의 웹 컨테이너에 상태를 유지하기 위한 정보를 저장한다.
-사용자의 정보를 유지하기 위해 javax.servlet.http 패키지의 HttpSession 인터페이스를 구현해서 사용한다.
-사용자의 정보를 유지하기 위해서는 쿠키보다는 세션을 사용한 웹 브라우저와 웹 서버의 상태 유지가 훨씬 안정적이고 보안상의 문제도 해결할 수 있다.
-웹 브라우저당 1개씩 생성되어 웹 컨테이너에 저장된다.
메소드 : 리턴 타입 | 설명 |
getAttribute(java.lang.Stringname) : java.lang.Object | 세션 속성명이 name인 속성의 값을 Object 타입으로 리턴한다. 해당되는 속성명이 없을 경우에는 null값을 리턴한다. |
getAttributeNames() : java.util.Enumeration | 세션 속성의 이름들을 Enumeration 객체 타입으로 리턴한다. |
getCreationTime() : long | 1970년 1월 1일 0시 0초를 기준으로 하여 현재 세션이 생성된 시간가지 경과한 시간을 계산하여 1/1000초 값으로 리턴한다. |
getId(): java.lang.String | 세션에 할당된 고유 식별자를 String 타입으로 리턴한다. |
getMaxInactiveInterval() : int | 현재 생성된 세션을 유지하기 위해 설정된 세션 유지 시간을 int형으로 리턴한다. |
removeAttribute(java.lang.Stringname) : void | 세션 속성명이 name인 속성을 제거한다. |
setAttribute(java.lang.String name, java.lang.Object value) : void | 세션 속성명이 name인 속성에 속성값으로 value를 할당한다. |
setMaxInactiveInterval(intinterval) : void | 세션을 유지하기 위한 세션 유지 시간을 초 단위로 설정한다. |
invalidate() : void | 현재 생성된 세션을 무효화시킨다. |
-세션을 사용해서 정보를 유지하려면 먼저 session 객체의 setAttribute() 메소드를 사용해서 세션 속성부터 설정한다.
ex)
session.setAttribute("id","aaaa@king.com");
-설정된 세션의 속성을 이용해 정보를 유지하려면 session 객체의 getAttribute()메소드를 사용한다.
ex)
String id = (String)session.getAttribute("id");
-세션의 속성을 삭제하려면 session 객체의 removeAttribute()메소드를 사용
ex)
session.removeAttribute("id");
-세션의 모든 속성을 삭제할 때는 session객체의 invalidate()메소드를 사용한다.
ex)
session.invalidate()
'language > JSP' 카테고리의 다른 글
DBCP API를 이용한 커넥션 풀 (0) | 2020.11.15 |
---|---|
JQuery 사용법 (0) | 2020.11.15 |
Ajax+JQuery (0) | 2020.11.15 |
액션 태그(Action tag) (0) | 2020.11.14 |
JSP 내장 객체(Implied Object) (0) | 2020.11.13 |
댓글