쿠키와 다르게 사용자의 정보가 서버에 저장
세션을 클라이언트마다 개별적으로 유지하기 위해 HttpSession 객체가 생성될때 요청을 보내온 클라리언트 정보, 요청시간 정보 등을 조합한 세션ID가 부여되며, 이 세션ID가 쿠키 기술로 저장
세션 생성와 객체 삭제
세션 생성을 생성하기 위해서는 HttpServletRequest 객체의 getSession() 메소드를 이용
getSession( ) 메소드는 클라이언트가 가지고 있는 세션 ID와 동일한 세션 객체를 찾아서 주솟값을 반환
HttpSession session = null;
session = req.getSession();
// isNew( ) 메소드는 getSession( )에서 반환 받은 세션객체가
// 새로 생성된 객체인지 기존의 세션 객체가 반환된 것인지 판단합니다.
if(session.isNew())
{
msg = "새로운 객체가 생성";
}else{
msg = "기존의 세션 객체가 리턴";
}
getSession(boolean create) 메소드는 세션을 생성할때 만일 세션이 존재하지 않으면, 매개변수 create 값이 true인지 false인지에 따라 다르게 동작
true일때, 세션 객체가 존재하지 않을 경우 새로운 HttpSession 객체를 생성하여 반환
session = req.getSession(true);
//세션 객체에 "msg"라는 이름의 세션 데이터를 얻어옵니다.
session.setAttribute("msg","메시지입니다.");
msg = "세션 객체에 데이터 등록 완료";
false일때, 세션 객체가 존재하지 않을 경우 새로운 HttpSession 객체를 생성하지 않고 null을 반환
session = req.getSession(false);
if(session == null)
{
msg = "삭제할 세션 존재하지 않음";
}else{
// 세션객체의 invalidate( ) 메소드는 현재의 세션을 삭제한다.
session.invalidate()
msg = "세션 객체 삭제 작업 완료";
}
세션 데이터 추출와 삭제
session = req.getSession(false);
if(session == null)
{
msg = "데이터를 추가하거나 삭제할 세션 객체가 존재하지 않음";
}else{
// 세션에서 msg 이름의 데이터 추출
msg = session.getAttribute("msg");
// 세션에서 msg 이름의 데이터를 삭제
session.removeAttribute("msg");
}
'JSP' 카테고리의 다른 글
HttpServletRequest (0) | 2023.03.13 |
---|---|
RequestDispatcher (0) | 2023.03.13 |
쿠키 - Cookie (0) | 2023.03.13 |
질의 문자열 (0) | 2023.03.13 |
웹서버의 처리순서 (0) | 2023.03.13 |