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에 액세스 할 수 있습니다.
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/servlet-session-timeout
'Java' 카테고리의 다른 글
SpringData JPA 사양을 사용한 REST 쿼리 언어 (0) | 2021.03.30 |
---|---|
SpringData JPA 및 Querydsl을 사용한 REST 쿼리 언어 (0) | 2021.03.30 |
Java에서 IP 별 위치 정보 (0) | 2021.03.29 |
SpringMVC의 양식 태그 라이브러리 탐색 (0) | 2021.03.29 |
자바 스크립트에서 Spring MVC 모델 객체에 접근하기 (0) | 2021.03.29 |