[java] Tomcat의 세션 관리 방법

Tomcat은 Java 웹 애플리케이션 서버로서, 세션 관리를 위한 다양한 기능을 제공합니다. 이 기능을 활용하여 세션을 효과적으로 관리할 수 있습니다. 이번 블로그에서는 Tomcat의 세션 관리 방법에 대해 알아보겠습니다.

1. 세션 관리 설정

Tomcat에서는 web.xml 파일을 통해 세션 관리 설정을 제어할 수 있습니다. 다음과 같이 web.xml 파일에서 세션 관리 설정을 할 수 있습니다.

<session-config>
    <session-timeout>30</session-timeout>
    <cookie-config>
        <secure>true</secure>
    </cookie-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>

위의 예시에서는 session-config 요소를 통해 세션 설정을 정의하고 있습니다. session-timeout 요소는 세션의 유효 시간을 설정하는 데 사용됩니다. 위의 예시에서는 세션 유효 시간을 30분으로 설정하고 있습니다.

또한, cookie-config 요소는 세션 ID를 저장하기 위한 쿠키의 속성을 설정하는 데 사용됩니다. 위의 예시에서는 secure 요소를 true로 설정하여 보안 연결에서만 세션을 사용하도록 지정하고 있습니다.

마지막으로, tracking-mode 요소는 세션을 추적하는 방법을 설정하는 데 사용됩니다. 위의 예시에서는 쿠키를 사용하여 세션을 추적하도록 설정하고 있습니다.

2. 세션 관리 API

Tomcat은 HttpServletRequest 인터페이스를 통해 세션을 관리할 수 있는 다양한 메소드를 제공합니다. 주요한 메소드들을 알아보겠습니다.

2.1. getSession()

getSession() 메소드는 현재 세션을 반환합니다. 세션이 존재하지 않는 경우에는 새로운 세션을 생성합니다.

HttpSession session = request.getSession();

2.2. getSession(boolean create)

getSession(boolean create) 메소드는 현재 세션을 반환하거나, 세션이 존재하지 않는 경우에 새로운 세션을 생성할지 여부를 지정할 수 있습니다.

HttpSession session = request.getSession(false); // 세션이 존재하지 않는 경우 null 반환
HttpSession session = request.getSession(true); // 세션이 존재하지 않는 경우 새로운 세션 생성

2.3. invalidate()

invalidate() 메소드는 현재 세션을 무효화합니다. 이는 로그아웃 등의 작업에 사용될 수 있습니다.

session.invalidate();

3. 세션 속성 관리

Tomcat은 HttpSession 인터페이스를 통해 세션 속성을 관리할 수 있는 다양한 메소드를 제공합니다. 주요한 메소드들을 알아보겠습니다.

3.1. setAttribute()

setAttribute(String name, Object value) 메소드는 세션에 속성을 추가합니다.

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

3.2. getAttribute()

getAttribute(String name) 메소드는 세션에서 지정된 이름의 속성 값을 반환합니다.

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

3.3. removeAttribute()

removeAttribute(String name) 메소드는 세션에서 지정된 이름의 속성을 삭제합니다.

session.removeAttribute("username");

세션 관리는 웹 애플리케이션 개발에서 중요한 부분입니다. Tomcat은 다양한 세션 관리 기능을 제공하여 효과적으로 세션을 관리할 수 있도록 도와줍니다.

더 자세한 내용은 Tomcat Documentation에서 확인할 수 있습니다.