Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP 세션 관리 방법: HttpSession 인터페이스 이해하기

JSP 세션 관리의 기본 원리

JSP는 서블릿(Servlet)이 제공하는 HttpSession 인터페이스를 활용하여 세션을 관리합니다. 이 인터페이스를 통해 다음과 같은 상황에서도 특정 사용자를 지속적으로 식별할 수 있습니다.

  • 단일 페이지 요청 시
  • 웹사이트 방문 시
  • 해당 사용자에 대한 정보를 저장할 때

즉, HttpSession은 여러 요청 사이에서 사용자 상태를 유지(stateful)할 수 있게 해주는 핵심 메커니즘입니다.

세션 추적의 기본 설정과 비활성화 방법

기본적으로 JSP는 세션 추적(session tracking)이 활성화되어 있으며, 새로운 클라이언트가 접속할 때마다 새로운 HttpSession 객체가 자동으로 생성됩니다.

만약 세션 추적을 비활성화하고 싶다면, page 디렉티브의 session 속성을 false로 명시적으로 설정해야 합니다.

<%@ page session = "false" %>

이렇게 설정하면 해당 JSP 페이지에서는 세션이 자동으로 생성되지 않으므로, 불필요한 리소스 낭비를 줄일 수 있습니다.

암시적(Implicit) session 객체 활용하기

JSP 엔진은 HttpSession 객체를 암시적(implicit) 객체인 session을 통해 JSP 개발자에게 제공합니다. session 객체는 이미 JSP 프로그래머에게 제공된 상태이기 때문에, 별도의 초기화 과정이나 getSession() 호출 없이도 즉시 데이터를 저장하거나 조회할 수 있습니다.

<%
// 세션에 데이터 저장
session.setAttribute("username", "hong");

// 세션에서 데이터 가져오기
String name = (String) session.getAttribute("username");
%>

위 예제처럼 setAttribute()와 getAttribute() 메서드를 사용하면 로그인 정보, 장바구니 항목 등 사용자별 데이터를 손쉽게 관리할 수 있습니다. 필요에 따라 setMaxInactiveInterval() 메서드로 세션의 유효 시간(타임아웃)을 조절하는 것도 가능합니다.