1. 개요

이 예제은 Servlet 기반 웹 애플리케이션에서 세션 시간 초과 를 설정하는 방법을 보여줍니다 .

2. web.xml의 글로벌 세션 시간 초과

모든 Http 세션의 제한 시간은 웹 애플리케이션 web.xml 에서 구성 할 수 있습니다 .

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>

    ...
    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>

</web-app>

시간 제한 값은 초가 아닌 단위로 설정 됩니다 .

흥미로운 측면 노드는 XML 배치 디스크립터 대신 어노테이션을 사용할 수있는 Servlet 3.0 환경에서 글로벌 세션 시간 제한을 프로그래밍 방식으로 설정할 방법없다는 것 입니다. 세션 시간 초과에 대한 프로그래밍 방식 구성에는 Servlet Spec JIRA에 대한 미해결 문제가 있지만 문제는 아직 예약되지 않았습니다.

3. 개별 세션 당 프로그래밍 방식의 제한 시간

현재 세션 의 시간 제한은 javax.servlet.http.HttpSession 의 API를 통해 프로그래밍 방식으로 지정할 수 있습니다 .

HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60);

받는 반대로 <세션 타임 아웃> 분 값으로 한 소자의 setMaxInactiveInterval 방법은 허용 값 (초)를 .

4. Tomcat 세션 시간 초과

모든 Tomcat 서버 는 전체 웹 서버에 대해 전역 적으로 구성 할 수 있는 기본 web.xml 파일제공 합니다.이 파일 은 다음 위치에 있습니다.

$tomcat_home/conf/web.xml

이 기본 배포 설명자는 30 분 값으로 <session-timeout>구성합니다 .

고유 한 web.xml 설명자 에 자체 시간 초과 값을 제공하는 개별 배포 된 응용 프로그램 은 우선 순위를 가지며이 전역 web.xml 구성을 재정의 합니다.

Jetty에서도 동일한 작업이 가능 합니다. 파일은 다음 위치에 있습니다.

$jetty_home/etc/webdefault.xml

5. 결론

이 예제에서는 Servlet Java 애플리케이션에서 HTTP 세션의 제한 시간을 구성하는 방법 의 실제적인 측면을 설명했습니다 . 또한 Tomcat과 Jetty 모두에서 웹 서버 수준에서이를 설정하는 방법도 설명했습니다.

이 예제의 구현은 github 프로젝트 에서 찾을 수 있습니다. 이것은 Eclipse 기반 프로젝트이므로 그대로 가져 와서 실행하기 쉽습니다.

프로젝트가 로컬에서 실행되면 다음 위치에서 홈페이지 html에 액세스 할 수 있습니다.