System.out.println("Hello, World");

'Cookie'에 해당되는 글 1건

  1. 2012.04.26 Session 관리, Cookie

Session 관리

-Http프로토콜은 stateless한 특징을 가진다.

-stateless -상태유지를 못한다 -> 클라이언트의 데이터를 유지하지 못함


-Session

○하나의 클라이언트가 프로그램을 시작해서 종료할때까지

○하나의 세션동안 여려번의 요청과 응답이 반복 될 수 있다.

○하나의 세션동안 클라이언트의 데이터는 유지되어야 한다.


-Session 관리 개념

○HTTP 프로토콜의 특징은 클라이언트의 상태를 유지 못하므로 CGI에서 지원

○방식

-Cookie를 이용

-Session을 이용

-URLRewriting을 이용


-Cookie를 이용한 Session관리

○쿠키

- 서버가 브라우저(client)로 전송하는 text 데이터

- 쿠키는 클라이언트의 정보를 유지하기 위한 데이터로 Web Browser에 저장된다.

->클라이언트 단에 저장

- key-value 형태로 관리된다.

- 저장 데이터의 종류는 문자열만 가능

-Web Browser는 쿠키를 사이트 별로 관리한다.

-웹브라우저가 종료되면 쿠키는 죽어버린다.


○장점

-서버에 부하를 줄일 수 있다.


○단점

-관리 할 수 있는 데이터의 종류, 크기에 제약이 있다.

-보안상 문제가 있다.


○구문

-쿠키 생성

-javax.servlet.http.Cookie 사용 - 하나의 쿠키 값을 가지는 객체

-HttpServletResponse.addCookie(Cookie c) : 쿠키를 client로 전송

ex)Cookie c = new Cookie("name","value");

response.addCookie(c);


-쿠키값 조회

-HttpServletRequest.getCookies() : Cookie[]

ex)Cookie[] c = request.getCookies();


- Cookie 클래스 주요 메소드

-getName() : String  - name 값 조회

-getValue() : String  -value 값 조회

-setMaxAge(int 초(sec)) - 쿠키가 웹 브라우저에 저장될 시간 설정

- 초: 양수 = 지정될 시간

: 음수 = web browser가 살아있는 동안까지만

: 0초 = 삭제

- 한글 encode처리




<Cookie 예제>

개요

- SetCookie로 현재 시간을 알아내서 cookie에 저장한다. 

- GetCookie로 SetCookie에서 넘겨준 값을 출력한다.

Servlet

folder : servlet.cookie

GetCookieServlet.java

SetCookieServlet1.java

url : /getServlet

/setServlet


HTML

folder : cookie

cookie.html


[GetCookieServlet.java]


[SetCookieServlet1.java]


[cookie.html]


결과화면

1. SetCookie를 실행한다.


2. GetCookie요청을 누르면 getCookie가 실행되어 set에서 넘겨준 값을 출력한다.


SetCookieServlet을 통해 쿠키 정보를 전송하고 GetCookieServlet을 조회하면 전송된 쿠키가 출력된다. 하지만 GetCookieServlet을 통해 서버를 재 시작하면 request.getCookie()를 통해 조회한 값이 없어진다. 즉, 웹브라우저가 살아 있는 동안만 쿠키 정보를 조회할 수 있다.


Posted by 김마농