세션 시작하기


서블릿 클래스에서 세션을 시작하기 위해서는 doGet,doPost 메서드의  HttpServletRequest 파라미터에 대해

getSession 이라는 메서드를 호출해야 한다. 

이메서드는 세션 정보를 포함하는 javax.servlet.http.HttpSession 타입의 객체를 리턴한다.


세션영역에 데이터 저장


getSession 메서드가 리턴한 HttpSession 객체에 대해 setAttribute 라는 메서드를 호출하면

세션 데이터 영역에 데이터를 저장할수 있다. 이메서드는 데이터 이름과 데이터 값을 파라미터로 넘겨줘야한다.

이중 데이터 이름은 String 타입이어야 하고 데이터 값은 객체이기만 하면 어떤 타입이든 상관없다.

setAttribute 메서드는 같은 이름의 데이터가 이미 있으면 기존 값을 지우고 새로운 값을 저장하므로

데이터 수정 기능을 구현하기 위해서도 사용할수 있다.


1
2
3
4
HttpSession session = request.getSession(); //세션시작
        
session.setAttribute("ID""lee77"); //세션영역에 데이터 저장
 
cs


세션 정보 가져오기


세션 영역에 저장된 데이터는 같은 웹 애플리케이션 디렉터리에 있는 다른 웹 컴포넌트에서도

읽을수 있다. 그것은 HttpSession 객체가 필요하다 그럴경우에도 getSession 메서드를 이용해서

객체를 구할수 있다. 이 메서드는 진행중인 세션이 없을때는 새로운 세션을 시작하지만

이미 진행중인 세션이 있을때는 그 세션 정보를 HttpSession 객체로 만들어서 리턴한다.


세션영역의 데이터 가져오기


이렇게 구한 HttpSession 객체에 대해 getAttribute라는 메서드를 호출하면 세션 데이터 영역의 데이터를 가져올수 있다.

이 메서드는 데이터 이름을 파라미터로 받고 그에 해당하는 데이터 값을 리턴한다 이 메서드의 리턴타입은

object 타입이므로 데이터 값을 본래의 타입으로 사용하려면 캐스트 연산을 해야한다. 


 

1
2
3
4
HttpSession session = request.getSession(); //세션의 정보를 가져옴
 
String str = (String) session.getAttribute("ID"); //세션영역의 데이터 가져오기
 
cs


세션 데이터 삭제

HttpSession 객체를 이용하면 세션 데이터를 삭제할 수도 있다. 

이 객체에 대해 removeAttribute 메서드를 호출해서 한다 이메서드는 삭제할 데이터의 이름을 파라미터로 넘겨야한다.


1
session.removeAttribute("ID"); //세션 데이터 삭제     
cs


세션 종료

세션을 이용해서 할일이 끝나고 나면 invalidate 라는 메서드를 호출해서 세션을 끝낼수 있다.

이 메서드는 HttpSession 객체에 대해 호출해야 한다.


1
session.invalidate(); // 세션 종료        
cs


 

'JSP&Servlet' 카테고리의 다른 글

서블릿의 초기화 파라미터 / init-param  (0) 2017.02.26
서블릿 클래스의 init 메서드/destroy 메서드  (0) 2017.02.26
include  (0) 2017.02.26
forward  (0) 2017.02.26
servlet 에서 파일 업로드  (0) 2017.02.26

+ Recent posts