서블릿에서 세션 API 이용하기
1. 다음과 같이 세션 테스트를 위한 실습 파일인 SessionTest 클래스를 준비합니다.

2. SessionTest 클레스를 다음과 같이 작성합니다. request의 인지 없는 getSession() 메서드를 호출하여 세션이 없으면 새로 생성하고, 세션이 있으면 기존 세션을 가져옵니다. 또한 세션 객채의 getMaxInactiveInterval()를 호출하여 생성된 세션의 유효 시간을 가져옵니다.
package sec03.ex01;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
@WebServlet("/sess")
public class SessionTest extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
out.println("세션 아이디 : " + session.getId() + "<br>");
out.println("최초 세션 생성 시각 : " + new Date(session.getCreationTime()) + "<br>");
out.println("최근 세션 접근 시각 : " + new Date(session.getLastAccessedTime()) + "<br>");
out.println("세션 유효 시간 : " + session.getMaxInactiveInterval() + "<br>");
if (session.isNew()) {
out.print("새 세션이 만들어졌습니다.");
}
}
}
3. 브라우저에 최초 요청 시 생성된 세션 객체에 할당된 세션 id와 여러 가지 정보를 출력합니다. 최초 생성된 세션이므로 "새 세션이 만들어졌습니다."라고 메시지가 출력됩니다.

4. 같은 브라우저에서 다른 탭을 열고 요청하면 같은 세션 id를 출력하므로 최초 생성된 세션을 재사용합니다. 따라서 "새 세션이 만들어졌습니다."라는 메시지는 출력되지 않습니다.

다음은 서블릿에서 생성된 세션 id, 즉 브라우저로 전송되어 세션 쿠키에 쿠키 이름 jsessionID로 저장된 세션 id입니다.

'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| 세션을 이용한 로그인 정보 바인딩 실습 (4) | 2025.08.17 |
|---|---|
| 다른 브라우저에서 새 세션 만들기 (3) | 2025.08.14 |
| 세션 API의 특징과 기능 (1) | 2025.08.11 |
| 세션 기능 실행 과정 (1) | 2025.08.09 |
| 세션을 이용한 웹 페이지 연동 기능 (2) | 2025.07.31 |