[JSP] 세션
세션이란?
특정 클라이언트와의 대화 상태를 유지하는 방법(Data Persistence)
- 클라이언트가 접속을 시도하면 서버에 클라이언트의 정보를 저장
- 클라이언트에 response를 보낼 때 JSESSIONID를 클라이언트에 저장
- 클라이언트가 접속을 시도하면 JSESSIONID를 읽어와서 서버의 JSESSIONID와 비교
è 처음 접속한 사용자인지, 기존 사용자인지 확인
명령 형식 <Servlet> HttpSession session = request.getSession(); |
명령 형식 <JSP> 기본적으로 페이지 지시어에 선언되어 있어서 사용만 함 <%@ page session="true" %> |
위 명령으로 JSESSIONID가 생성되며, JSESSIONID를 클라이언트에 저장하기 위해 Cookie object를 생성, 이 쿠키 object 안에 JSESSIONID를 넣고 Response에 생성된 쿠키를 추가시켜서 응답. JSESSIONID가 존재하지 않으면 새로운 세션을 만들고 JSESSIONID를 발급하여 쿠키에 저장 |
명령 형식 <새로운 세션인지 확인하는 명령> HttpSession session = request.getSession(); //true면 항상 새로 만듬. if(session.isNew()) {//새로운 세션입니다.} |
명령 형식 <사용중인 세션인지 확인하는 명령> HttpSession session = request.getSession(false); if(session==null) { System.out.println("로그인되지 않은 상태"); } else { System.out.println("로그인한 상태"); } |
명령 형식 <web.xml 세션 유효 시간 설정> <session-config> <session-timeout>3</session-timeout> //단위는 분 </session-config> |
명령 형식 <JSP/Servlet 세션 유효 시간 설정> session.setMaxInactiveInterval(180); //단위는 초 |
명령 형식 <세션 종료> session.invalidate(); //session scope의 Attribute 및 session이 서버에서 제거 |