Session 객체로 상태 값 저장하기
- Application 객체
: Application 전역에서 쓸 수 있다.
- Seesion 객체
: Session 범주 내에서 쓸 수 있다.
- Session이란 현재 접속한 사용자를 의미한다.
- 이것은 Session별로, 사용자별로 사용하는 공간이 달라진다는 의미이다.
- Session ID가 동일하면 같은 사용자로 본다.
HttpSession session = request.getSession();
// Session 객체 생성
웹 서버가 Session을 구분하는 방식
- application --> 공용공간
- Session --> 개인사물함
- 연결을 할 때 session ID가 존재해야지 Session 공간을 사용가능하다.
- application 공간은 사용가능
- 서버에서 session ID 부여하면 session 공간 사용가능
- void setAttribute(String name, Object value)
지정된 이름으로 객체를 설정
- Object getAttribute(String name)
지정한 이름의 객체를 반환
- void invalidate()
세션에서 사용되는 객체들을 바로 해제
- void setMaxInactiveInterval(int interval)
세션 타임아웃을 정수(초)로 설정
- boolean isNew()
세션이 새로 생성되었는지를 확인
- Long getCreationTime()
세션이 시작된 시간을 반환 1970년 1월 1일을 시작으로 하는 밀리초
- long getLastAccessedTime()
마지막 요청 시간, 1970년 1월 1일을 시작으로 하는 밀리초
Cookie를 이용해 상태 값 유지하기
- 쿠키는 웹 사이트에 접속할 떄 생성되는 정보를 담은 임시 파일이다.
- 쿠키는 서버가 사용자의 웹 브라우저에 저장하는 데이터를 말한다.
- 쿠키는 key-value 형태이다.
- 쿠키는 문자열 형태, url에 들어갈 수 있는 형태로만 저장되어야한다.
addCookie() / getCookies()
- 쿠키 저장하기
Cookie cookie = new Cookie("c", String.valueOf(result));
response.addCookie(cookie);
Cookie[] cookies = request.getCookies();
String _c = "";
if (cookies != null)
for (Cookie cookie : cookies)
if("c".equals(cookie.getName()))
_c = cookie.getValue();
Cookie의 path 옵션
- 해당되는 url에서만 Cookie를 가져올 수 있도록 할 수 있다.
Cookie cookie = new Cookie("name", "v");
cookie.setPath("/add/"); // 경로설정 방법
response.addCookie(cookie)
Cookie의 maxAge 옵션
- 쿠키에 대한 저장기간(만료날짜)을 설정할 수 있다.
Cookie cookie = new Cookie("name", "v");
cookie.setMaxage(24*60*60); // 저장기간 설정
Application/Session/Cookie
## 동적인 페이지(서버 페이지)의 필요성
- 요청이 있으면 문서가 만들어진다. 이를 동적인 페이지라고 말한다.
27~35