본문 바로가기

[Servlet] 세션 : Session

인포꿀팁 발행일 : 2020-11-26

세션 : session

  • 둘이상의 page request에서 사용자를 식별하거나, 웹 사이트를 방문하고 해당 사용자에 대한 정보를 저장하는 방법을 제공한다.
  • Servlet Container 는 HttpSession를 사용하여 HTTP client- HTTP server 간의 세션을 생성한다.
  • 세션은 한 명의 사용자에 해당한다.(브라우저 당 하나의 세션 객체가 생성된다.)
  • 서버는 Cookie, rewriting URL와 같은 방법으로 세션을 유지하면서 관리할 수 있다.
  • 객체를 세션에 바인딩하여 사용자 정보를 유지할 수 있다.

주요 메소드

주요 메소드 설명
String getId() 세션에 할당된 고유 실별자가 포함된 문자열을 반환
long getCreationTime() 세션이 생성된 시간을 반환
long getLastAccessedTime() 클라이언트가 1970년 1월 1일 0시 부터의 밀리초 단위로 세션과 관련된 요청을 보낸 마지막 시간을 반환
int getMaxInactiveInterval() 서블릿 컨테이너의 세션을 유지할 시간을 초 단위 반환한다.
void setMaxInactiveInterval(int interval) 서블릿 컨테이너가 세션을 유지할 시간을 인터벌에 저장된 초 값으로 설정한다.
기본 30분
void invalidate 현재 세션을 무효화하고 세션에 바인드된 모든 객체의 바인딩을 해제한다.
boolean isNew() 클라이언트 세션ID를 할당하지 않은 경우 true값을 리턴한다. false를 반환한다면 이미 세션이 설정되어 있는 경우다.
void setAttribute(String key, Object value) 지정된 이름을 사용하여 세션에 주어진 객체를 바인딩한다.
Object getAttribute(String key) 세션에 지정된 이름으로 바인드된 객체를 반환하며, 주어진 이름으로 바인드된 객체가 없으면 null을 반환한다.
void removeAttribute(String key) 세션에 저장된 주어진 이름으로 바인드된 객체를 제거한다.

 

세션 객체

  • 세션 객체 받아오기
  • HttpServletRequest의 getSession() 메소드에서 HttpSession 객체를 생성하거나 반환 받는다.
    • 인수에 true를 지정하면 세션이 설정되어 있지 않는 경우 새로운 세션을 생성하며, 설정된 경우에는 현재의 세션을 돌려준다.
    • 인수에 false를 지정하면 세션이 설정되어 있지 않는 경우는 null를 돌려준다. 
    • 인수를 지정하지 않으면 getSession() 메소드는 인수에 true를 지정했을 경우와 같은 동작을 한다.
  • JSP에서 세션 객체
    • session이라는 내장 객체를 사용한다.
  • Servlet에서의 세션 객체 받아오기 예
    • HttpSession session = request.getSession();

 

 

'Web > JSP&SERVLET' 카테고리의 다른 글

[Servlet] GET & POST  (1) 2020.11.24
[Servlet] 필터 : Filter  (0) 2020.11.11
[Servlet] 쿠키 : Cookie  (0) 2020.11.10
[Servlet] 서블릿 이란?  (0) 2020.11.06
[WEB] URL과 URI  (0) 2020.10.28

댓글