JSP
11.29.(화) JSP(4): Session
콜라든포비
2022. 11. 30. 23:15
Session
Session은 클라이언트가 서버에 접속하면 자동으로 할당되는 값이다.
세션에 기록한 정보는 세션객체가 없어지면서 같이 사라진다.
세션의 소멸시간은 접속 종료를 기준으로 일정 시간(기본 30분)이 지나면 지워진다.
우선 소멸시간을 확인하는 방법은 web.xml을 들어가서 확인할 수 있다.
기본 30분으로 설정되어있고, 숫자만 바꾸면 원하는 소멸시간으로 설정할 수 있다.
/jsp04_session 폴더에 sessionSave.jsp와 sessionDel.jsp를 생성하자.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>sessionSave.jsp</title>
</head>
<body>
<h1>Session 처리하기</h1>
<pre>
Session 내장객체는 클라이언트가 서버에 접속하면 자동할당된다.
Session에 기록한 정보는 session객체가 없어지면 기록 정보도 사라진다.
Session의 소멸 시간은 접속 종료를 기준으로 일정 시간(30분)이 지나면 지워진다.
</pre>
Session ID : <%= session.getId() %> -> 16진수<br>
<%
// Session영역에 정보 기록하기
session.setAttribute("username", "smg1024");
session.setAttribute("name", "Sangmin Kim");
session.setAttribute("nickname", "poby");
%>
</body>
</html>
setAttribute()에 세션이름과 값을 할당해주면 세션이 등록된다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
// 로그아웃처럼 현재 접속에서 사용된 모든 정보를 제거하고자 할때
// session 객체를 지우면, 세션에 저장된 모든 데이터를 지우고
// 서버가 새로운 session을 자동으로 할당한다.
session.invalidate();
response.sendRedirect(request.getContextPath());
%>
session.invalidate()으로 한번에 모든 세션을 지울 수 있다.