Q1. 세션 타임아웃이란
서버와 클라이언트 사이의 연결이 일정시간 일어나지 않으면 연결 상태를 끊는 것을 의미한다.
웹에서는 장시간 자리를 비웠을 때, 자동으로 로그아웃이 되는 기능이다.
'작성자의 개발환경'
OS : Window
DB : Oracle
IDE : Eclipse+ Dbeaver
FrameWork : Spring
Server : Tomcat
Q2. 자바 기반 Session-Timeout 설정 방법
본 화자의 환경에 초점을 맞추어 세팅하는 방법을 작성하였다.
방법 1 : JAVA 코드를 작성하여 직접 설정한다. (우선 순위 높음) : 여기서는 초 단위로 입력받는다.
로그인하고나서 HttpSession에 세션 값이 생성되는 시점이 있다고 한다.
혹은 HttpServletRequest를 원하는 시점에 사용하여 세션 설정을 할 수 있다.
아래와 같이 javax.servlet.http.HttpSession 클래스의 setMaxInactiveInterval 메서드를 이용하면 된다.
(단, 0을 넣으면 세션이 종료되고, -1을 넣으면 세션이 영원히 유지된다고 한다)
HttpSession session = new HttpServletRequest().getSession();
session.setAttribute("UserVO", userVO);
session.setMaxInactiveInterval(3600); //세션 시간 설정 (초 단위)
방법 2 : WEB-INF/web.xml에 소스 수정. (우선 순위 중간) : 여기서는 분 단위로 입력받는다.
<session-config>
<session-timeout>60</session-timeout>
</session-config>
방법 3 : Tomcat의 conf/web.xml에 소스 수정. (우선 순위 낮음) : 여기서는 분 단위로 입력받는다.
<session-config>
<session-timeout>60</session-timeout>
</session-config>
Q3. 결론적으로
세 가지를 모두 적용했을 경우에 우선순위가 높은 순서 위주로 적용되며, 테스트를 위해서는 해당 시간동안 에이징 테스트를 위해 방치한 뒤에 실행했을 경우에 세션이 끊어지는지를 확인하면 된다.
'WEB 심화 > Back-End' 카테고리의 다른 글
[SPRING] AOP, Filter, Interceptor, DI, IOC 비교 정리 (0) | 2023.12.07 |
---|---|
[OS] 운영체제의 Shell과 주요 기능 (1) | 2023.11.27 |
[Java] 예외 처리 (try-catch와 throws) (2) | 2023.11.26 |
[Java] 변수/상수/리터럴/인스턴스/객체/빈이란 (1) | 2023.11.26 |
[Java] n자리 소수점까지만 출력 (0) | 2023.11.23 |