[java] 서블릿에서의 세션 추적 방법

서블릿은 웹 애플리케이션에서 사용되는 자바 기반의 서버 사이드 프로그래밍 모델입니다. 세션은 클라이언트와 서버 간의 연결을 유지하며 상태 정보를 저장하기 위해 사용됩니다. 이번 블로그 포스트에서는 서블릿에서 세션을 추적하는 방법에 대해 알아보겠습니다.

1. 세션 개념 이해하기

세션은 웹 어플리케이션에서 클라이언트의 상태 정보를 유지하기 위해 사용됩니다. 세션은 클라이언트와 서버 간의 연결에 의해 생성되며 클라이언트가 애플리케이션과 상호작용하는 동안 유지됩니다. 세션은 주로 사용자 인증, 쇼핑 카트 등의 기능에서 활용됩니다.

2. 세션 추적 방법

서블릿에서 세션을 추적하기 위해서는 다음의 단계를 따를 수 있습니다.

2.1 세션 생성

서블릿은 클라이언트 요청이 들어오면 세션을 생성합니다. 세션은 HttpServletRequest 객체의 getSession() 메서드를 통해 생성할 수 있습니다.

HttpSession session = request.getSession();

2.2 세션 속성 설정

세션에 속성을 설정하여 클라이언트의 상태 정보를 저장할 수 있습니다. 세션 속성은 setAttribute() 메서드를 통해 설정할 수 있습니다.

session.setAttribute("username", "john");

2.3 세션 속성 가져오기

세션에 저장된 속성을 가져오기 위해서는 getAttribute() 메서드를 사용할 수 있습니다.

String username = (String) session.getAttribute("username");

2.4 세션 종료

세션이 더 이상 필요하지 않을 때, 세션을 종료할 수 있습니다. 세션은 invalidate() 메서드를 호출하여 종료할 수 있습니다.

session.invalidate();

3. 세션 추적 예제 코드

아래는 세션 추적을 위한 예제 코드입니다.

@WebServlet("/login")
public class LoginServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        String username = request.getParameter("username");
        session.setAttribute("username", username);
        // 로그인 성공 후 다른 페이지로 리다이렉트
        response.sendRedirect("welcome.jsp");
    }
}

@WebServlet("/welcome")
public class WelcomeServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        String username = (String) session.getAttribute("username");
        response.getWriter().println("Welcome, " + username);
    }
}

위의 코드는 로그인 페이지를 통해 사용자가 입력한 “username” 값을 세션에 저장하고, 환영 페이지에서 세션에서 “username”을 가져와 출력하는 예제입니다.

4. 결론

서블릿에서 세션을 추적하는 방법을 알아보았습니다. 세션은 클라이언트와 서버 간의 연결을 유지하고 상태 정보를 저장하는데 사용됩니다. 세션을 활용하여 사용자 인증, 상태 정보 유지 등의 기능을 구현할 수 있습니다.