기본 콘텐츠로 건너뛰기

톰캣 세션 타임 아웃 설정

web.xml 파일이 있습니다.

이 파일을 열어서 session이라고 검색해 보십시오.
<session-config>
  <session-timeout>360</session-timeout>
</session-config>

위 단락을 찾을 수 있습니다. session-timeout 시간 360이 바로 자동로그아웃 세션 시간입니다. 
단위는 분이고요. 30분으로 하고 싶으시면 30으로 바꿔서 저장해주시면 되는 것이죠~


Tomcat 내에서 Session Timeout 를 설정하는 우선 순위가 존재 한다.
  1. session.setMaxInactiveInterval() 프로그램내에서 time out 를 설정했을 경우
  2. Web application 내의 WEB-INF/web.xml
  3. Tomcat 내의 conf/web.xml

실제로 Tomcat(conf/web.xml)내에 Default 로 설정되어 있는 것은 다음과 같다.

< HttpSession 메서드 >


getCreationTime() - 세션 생성 시간
getLastAccessedTime() - 마지막 요청 시간
setMaxInactiveInterval() - 최대허용시간 설정 (초)
getMaxInactiveInterval() - 최대허용시간
invalidate() - 세션 제거

< 타임아웃 설정하기 > - 일정 시간 동안 요청이 없으면 세션을 제거한다 


1. DD에서 전체 세션 타임아웃 설정

      web.xml
1. DD에서 전체 세션 타임아웃 설정
      web.xml
<web-app ... >
    <servlet>
         ...
    </servlet>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
</web-app>
※ 단위는

2. 특정 세션만 타임아웃 설정
session.setMaxInactiveInterval(1800);
session.setMaxInactiveInterval(30*60);
※ 단위는

2. 특정 세션만 타임아웃 설정


session.setMaxInactiveInterval(1800);
session.setMaxInactiveInterval(30*60);
※ 단위는 초

Web Application을 만들고 세션 관리를 적절하게 해주지 않고 세션 타임아웃을 무한으로 걸어놓고

시간이 조금 지나면 메모리가 풀이 나서 WAS가 죽어버리는 일이 종종 있다.

이런 문제를 미연에 방지하고 현재 세션 수가 얼마나 되는지 확인하기 위해서 세션 체크하는 리스너를 등록해보자.

HttpSessionListener를 상속받아 구현한 클래스를 만든다.

package com.test.java.listener;

import javax.servlet.http.HttpSessionEvent;
 import javax.servlet.http.HttpSessionListener;

public class SessionCounterListener implements HttpSessionListener {
    
 static private int activeSessions;

    public static int getActiveSessions() {
         return activeSessions;
     }

    @Override
     public void sessionCreated(HttpSessionEvent arg0) {
         activeSessions++;
         System.out.println("Created!! activeSessions : " + activeSessions);
     }

    @Override
     public void sessionDestroyed(HttpSessionEvent arg0) {
         activeSessions--;
         System.out.println("Destoryed!! activeSessions : " + activeSessions);
     }
 }


다음으로 web.xml에 리스너를 등록합니다.

 <listener>
  <listener-class>com.test.java.listener.SessionCounterListener</listener-class>
 </listener>

또한 세션 종료시간을 정합니다.

 <session-config>
        <session-timeout>15</session-timeout>

댓글

이 블로그의 인기 게시물

UltraEdit Professional Version 18.20.0.1014 라이센스 키 넣기

Step 1: unpack rar archive      Step 2: run the setup   Step 3: Use the given keygen to activate    Add the line   127.0.0.1 licensing.ultraedit.com         to your %WINDOWS%\system32\drivers\etc\hosts file                 Enter any data for license-id and password (license-id must be a         number)                 Choose Offline activation and generate corresponding activation         codes for your user codes   Step 4: Enjoy and Support Developers, Buy It, They Deserved It!

gsjava WeGuardia™ SSLplus 특징(퓨쳐시스템 => 퓨쳐텍정보통신으로 이관)

☎ 문의 :  010-3240-0041 김성은 소장 01.   웹기반   인터페이스   제공 ……. –  웹기반   인터관리   및   사용   편리성을   제공 ……. –  실시간 터널수, 실시간 위반 사용자 등   복잡   정교한   정보   표시를   구현 02.   사용자를   위한   다양한   클라이언트   제공 ……. –  윈도우 , IOS,MAC, 안드로이드   및   리눅스   클라이언트   제공 ……. –  항시   암호화된   네트워크   연결성 ,  보안성   및   단말  Compliance  등  NAC  기능 03.   사용자   친화적   앱   목록 ……. – OS 별 앱 목록을 등록후 사용 가능 ……. –  사용자는   접속   정보   기억   불필요 ,  접속   후 ,  앱   목록에서   원하는   앱을   선택하여   클릭 ……. –  기업   필수   앱   배포   가능 04.   효율적인  VPN Tunneling ……. – Non Split Tunneling 과  Split Tunneling 을   지원 ,  업무   트래픽과   일반   인터넷   트래픽   분리   처리   가능 ……. – WeGuardia™SSLplus  보안설정을 ...