application
web application server (WAS)에 저장된다.
서버에 저장되다 보니 하나의 apllication이 생성되고 소멸될 때까지 계속 유지된다.
eclipse에서 하나의 project가 하나의 application이라고 생각하면되고,
하나의 server에는 여러개의 web apllication이 존재 할 수 있다.
ServltContext 클래스에서 application 저장소를 생성할 수 있다.
// application 저장소
ServletContext application = arg0.getServletContext();
session
브라우저에 세션 정보가 저장된다.
브라우저에 저장되다 보니 브라우저가 종료되면 세션이 종료된다.
저장 형식이 Object이다.
서버가 허용하는 한 용량 제한이 없다.
쿠키보다 속도가 느리지만 보안이 좋다.
클라이언트 로그인 정보 등을 담기에 유용하다.
내장객체로서 브라우저마다 한개씩 존재하고, 고유한 sessionID 생성 후 정보를 추출할 수 있다.
//session값 설정
session.setAttribute("설정한 세션아이디", 세션에 넣을 값);
//session시간 설정
seesion.setMaxInactiveInterval(60*60); // 60분동안 세션 유지
seesion.setMaxInactiveInterval(-1); // 세션의 시간을 무한대로 설정
//session 값 가져오기
session.getAttribute("설정한 세션아이디");
//session 값 삭제
session.removeAttribute("설정한 세션아이디");
session.invalidate(); // 세션 전체 제거, 무효화
cookie
클라이언트(=접속자 PC)에 저장된다.
저장형식이 text이다.
쿠키 저장시 만료시점을 설정하며, 브라우저가 종료되어도 만료시점이 지나지 않으면 자동 삭제가 되지 않는다.
하나의 도메인당 20개의 쿠키를 만들 수 있다.
세션보다 속도가 빠르지만 보안이 취약하다.
// 쿠키는 요청객체의 getCookies 메서드로 가져올 수 있다.
Cookie[] cookies = arg0.getCookies();
application
- 사용범위 : 전역 범위에서 사용하는 저장공간
- 생명주기 : WAS가 시작해서 종료할 때 까지
session
- 사용범위 : 세션 범위에서 사용하는 저장공간
- 생명주기 : 세션이 시작해서 종료할 때 까지
cookie
- 사용범위 : web브라우저 별 지정한 path범주 공간
- 생명주기 : 브라우저에서 전달한 시간부터 만료 시간 까지