HttpSession

 

The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persists for a specified time period, across more than one connection or page request from the user.

 

서블릿 컨테이너는 javax.servlet.http의 HttpSession 인터페이스를 사용하여 세션 기능을 제공하는데 일반적으로 HttpServletRequest의 getSession()을 호출하면 세션을 가져오거나 옵션에 따라 없을 경우 생성해서 반환해준다. 

 

서블릿 컨테이너의 세션 저장소는 Map 형태로 되어 있는데 HttpSession 인스턴스가 value에 저장이 되고 httpSession 또한 내부적으로 Map 형태로 생성이 된다. 그래서 setAttribute()로 로그인 정보를 저장할 수 있다.

 

 

로그아웃을 할 때 로그인 세션 정보를 제거하기 위한 방법으로는 HttpSession의 removeAttribute()와 invalidate() 메서드가 있다,

 

 

invalidate()는 세션 자체를 무효화하고 제거하고 removeAttribute()는 현재 세션에서 특정 key-value만 제거를 한다.

removeAttribute()로 키만 제거를 하면 httpSession 인스턴스는 WAS의 세션 저장소에 남아있어서 invalidate()를 사용하는 것이 좋다.

 

 

 

[참고]

 

 

HttpSession (Java(TM) EE 7 Specification APIs)

Provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user. The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persis

docs.oracle.com

 

HttpSession은 어떻게 만들어지고 어떻게 유지될까(feat. 코드를 통해 확인하는 JSESSION의 생성 방법과

서론 클라이언트와 서버는 Stateless인 HTTP 통신을 하게 되지만 로그인과 같이 접속을 했던 정보가 저장이 되어야 할때가 있다. 이때 인증과 인가가 필요하게 된다. 인증은 클라이언트에서 보낸 정

oh-sh-2134.tistory.com

 

+ Recent posts