본문 바로가기

개발(IT)/JAVA언어

[개발/JSP]세션 시간 변경하기(Session Timeout)

728x90
반응형
반응형

업무를 진행 하던 중 세션시간을 늘려야 하는 경우가 생겨 어디서부터 접근을 해야 변경이 될까 라는 궁금증에 이와 같은 글을 쓰게 되었습니다.

 

 

우선 세션 설정을 하기 위해선 아래와 같은 3가지 방법이 있습니다.

 

1. 특정 경우에 타임아웃 설정

ex) 클라이언트가 20분동안 요청이 없으면 세션 제거

<%     session.setMaxInactiveInterval(20*60); // 초 단위 %>

 

2. DD(Deployment Descriptor)에서 전체 세션 타임아웃을 설정

ex) 클라이언트가 15분동안 요청이 없으면 세션 제거

(파일위치 : WEB-INF/web.xml)

<web-app>     <session-config>         <session-timeout>15</session-timeout> // 분 단위     </session-config> </web-app>

 

3. 설정하지 않으면 WAS 기본 디폴트 값으로 적용

ex) Tomcat(conf/web.xml)은 30분입니다.

 

만약 1번과 2번이 적용되어 있다면 1번 방법으로 설정한 값으로 적용됩니다.

즉, 어플리케이션에서 10분으로 설정을 했다면 컨테이너나 웹서버에서 20 - 30분으로 설정을 해도 아무 소용이 없다는 의미입니다.

(우선순위 : 어플리케이션 > 컨테이너 > 웹서버)

*세션 유지시간은 해당 세션을 생성한 사용자의 브라우저 요청이 있을 때마다 갱신됩니다.

 

공부 후에,

어플리케이션 내에서 HttpSession 메서드를 이용해서 세션을 컨트롤하는 부분이 있는지 찾아본 뒤에 적용된 곳이 없어 DD에서 전체 세션 타임아웃을 관리하는 코드를 찾아보았습니다. 하지만 이 파일에서도 적용이 되어 있지 않아 Tomcat 디폴트 값으로 세션이 유지되고 있음을 파악해 DD에 타임아웃을 지정하는 코드를 넣어 해결하였습니다.

 

"잘못된 부분이나 궁금하신 점은 언제든지 댓글 달아주세요."

 

 

 

728x90
반응형