[ jsp ] 세션(Session) 세션바인딩(Session Binding)
페이지 정보
작성자 웹지기 댓글 0건 조회 6,685회 작성일 21-02-02 10:19본문
❖ 세션(Session)이란?
- 연결 지속성을 제공하기 위해 서버와 클라이언트에 저장되는 정보
- 서버에 정보를 요청 할 때 생성되는 상태정보
❖ HttpSession 인터페이스
HttpSession 인터페이스는 둘 이상의 page request에서 사용자를 식별하거나, 웹사이트를 방문하고 새당 사용자에 대한 정보를 저장하는 방법을 제공.
Servlet container는 HttpSession을 사용하여 HTTP client - HTTP server 간의 세션을 생성한다. 이때, 세션은 한명의 사용자에 해당한다(개별관리). 서버는 Cookie, rewriting URL와 같은 방법으로 세션을 유지하면서 관리할 수 있다. 객체를 세션에 바인딩하여 사용자 정보를 유지 할 수 있다.
이를 세션바인딩이라 한다.
• 세션바인딩
- WAS의 컨테이너가 관리하는 세션을 서블릿에서 사용할 수 있도록 제공하는 작업
• 세션트레킹(Session Tracking)
- 클라이언트에서 전달된 세션아이디와 동일한 세션을 찾는 작업
• 관련 메서드
-HttpSession's setAttribute("Key", Value)
"Key"를 사용하여 객체를 세션에 바인딩한다.
Value는 값으로 들어올 자료형을 예측할 수 없기에 Object형으로 업캐스팅하여 모두 받아낸다.
- HttpSession's getAttribute("Key")
"Key"로 바인딩된 객체를 돌려주고, "Key"로 바인딩된 객체가 없다면 null를 돌려준다.
Value는 세션을 저장할 때 Object형으로 업캐스팅을 했으므로, 가져올 땐 원래대로 다운캐스팅 해야 한다.
- HttpServletRequest's getSession(true)
이미 세션이 있다면 그 세션을 돌려주고, 세션이 없으면 새로운 세션을 생성한다.
request.getSession()로 쓸 수 있다.
- HttpServletRequest's getSession(false)
이미 세션이 있다면 그 세션을 돌려주고, 세션이 없으면 null을 돌려준다.
❖ 세션ID
• 서버가 특정 세션중에 단일 사용자의 작업을 식별하고 추적할 수 있는 방법.
• 이를 추적하는 방법으로 쿠키, URL(Uniform Resource Locator) 등 다양한 방법을 사용할 수 있다.
• 세션 ID는 일반적으로 세션 시작시 생성되며 해당 세션 동안 지정된 사용자에게 고유하게 부여된다.
• JSESSIONID 라는 이름으로 영문자 숫자로 32자의 값을 만든다.
크롬에서 세션 확인 - Cooke : JSESSION 으로 저장 되어있다.
❖ 세션바인딩(Session Binding)
- 세션을 가지고와서 비교(getSession())를 해서 있다면 객체바인딩을 한다.
- HttpSession session = request.getSession(); //세션확인
- session.setAttribute("vo", vo1); //회원정보를 세션에 담는다.
❖ 실습파일 실습파일
댓글목록
등록된 댓글이 없습니다.