본문 바로가기
카테고리 없음

Session 사용방법, 개념

1. Session이란?

 

Session은 클라이언트의 정보가 서버에 저장되는 공간을 말한다.

클라이언트가 서버에 접속하면 클라이언트마다 고유의 Session공간이 생기는데 이 영역에 클라이언트의 정보를 저장하여 필요시에 사용하는데 주로 로그인정보를 담아 특정페이지로 이동시 해당페이지의 열람권한이 있는지 없는지 여부를 세션에 저장된 아이디값을 가져와 체크를 하는데 사용한다.

 

 

 

 

 

2. Session 사용방법

 

Session은 HttpServletRequest객체에서 얻어올 수 있다.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	HttpSession session = request.getSession();
}

 

 

 

 

 

3. Session에 값 저장

 

세션에 세션 변수를 선언하고 값을 담아 웹서버가 끊기지 않는 이상 데이터를 유지한다. 값을 담기 위해서는 setAttribute 함수를 사용한다.

session.setAttribute("id", vo.getId());
session.setAttribute("name", vo.getName());

 

 

 

 

 

4. Session의 값 가져와서 사용하기

 

아래의 코드와 같이 사용하면 되며 JSP에서도 동일하게 스크립트영역에서 사용이 가능하다.

그리고 기본적으로 object타입으로 session에 저장되기 때문에 값을 꺼내서 사용할 때에는 형변환이 필수이다.

 String id = (String)session.getAttribute("id");
 String name = (String)session.getAttribute("name");

 

 

 

 

 

5. Session의 유지시간

 

Session의 유지 시간은 기본적으로 30분이다. 개발자의 의도대로 Session의 유지시간을 세팅하는 방법은 두가지가 있다

 

첫번째로는 web.xml에서 설정하는 방법이다. 단위는 분단위로 계산된다.

<?xml version="1.0" encoding="utf-8"?>
 
<web-app xmlns = "http://java.sun.com/xml/ns/javaee" version = "3.0">
 
      <session-config>
             <session-timeout>50</session-timeout>
      </session-config>
</web-app>

 

 

두번째로는 Session객체가 제공하는 setMaxInactiveInterval() 메소드를 이용하는 방법이다. 단위는 초단위로 계산된다.

session.setMaxInactiveInterval(60*60);

 

 

 

 

 

6. Session의 삭제

 

Session은 지정한 시간이 지나거나 브라우저를 종료하면 자동으로 만료가 되며

지정된 함수를 이용하여 강제로 제거할수도 있다.

 session.invalidate(); // 전체 세션 삭제
 session.removeAttribute("id") // 세션에 저장된 특정값만 삭제

 

 

 

 

댓글