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

JSP 세션 객체란? 개념부터 활용법까지 한눈에 정리

세션(Session) 객체는 클라이언트가 보내는 여러 요청 사이에서 사용자의 상태를 추적하고 유지하는 역할을 하는 JSP의 핵심 내장 객체입니다. HTTP 프로토콜은 본래 상태를 저장하지 않는(stateless) 방식으로 동작하기 때문에, 서버는 하나의 요청이 끝나면 해당 사용자에 대한 정보를 잊어버리게 됩니다. 세션 객체는 바로 이러한 한계를 극복하기 위해 사용됩니다.

JSP는 서블릿(Servlet)에서 제공하는 HttpSession 인터페이스를 활용하여 세션을 관리합니다. 이 인터페이스를 통해 다음과 같은 작업이 가능합니다.

  • 여러 페이지에 걸친 요청 사이에서 동일한 사용자 식별
  • 웹사이트 방문자의 접속 상태 지속적인 유지
  • 로그인 정보, 장바구니 등 사용자별 데이터 저장

세션 트래킹의 기본 동작

기본적으로 JSP는 세션 트래킹이 활성화된 상태로 동작하며, 새로운 클라이언트가 접속할 때마다 자동으로 새로운 HttpSession 객체가 생성됩니다. 만약 세션 기능이 필요 없는 페이지라면, 아래와 같이 page 디렉티브의 session 속성을 false로 설정하여 명시적으로 비활성화할 수 있습니다.

<%@ page session = "false" %>

암시적 session 객체의 활용

JSP 엔진은 HttpSession 객체를 암시적(implicit) session 객체 형태로 JSP 개발자에게 제공합니다. 따라서 개발자는 별도의 초기화 과정이나 getSession() 메서드 호출 없이도 스크립틀릿 내에서 즉시 session 객체에 데이터를 저장하거나 조회할 수 있습니다.

<%
// 세션에 값 저장
session.setAttribute("username", "honggildong");

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

이처럼 세션 객체를 활용하면 로그인 상태 유지, 장바구니 관리, 사용자 맞춤 설정 저장 등 상태 기반 웹 애플리케이션을 손쉽게 구현할 수 있습니다.