Session 관련해 개발하면서 궁금한 점이 생겼다. Tomcat에 내장된 세션의 최대값은 90인데, 어떻게 세션 값을 그 이상으로 부여할 수 있는 거지?
보통 tomcat에 감싸서 배포할 텐데, 톰캣이 허용하는 시간 이상의 세션을 부여해 버리면 tomcat 시간이 끝날 때 자동으로 세션도 내려가는 것이 아닐까?
이 궁금증에서부터 Session의 우선 순위를 공부하게 되었다.
결론부터 말하자면 다음과 같다.
1순위. 세션 객체에 직접 setMaxInactiveInterval(int interval) 시간을 지정한 경우
public void sessionTest(HttpServletRequest request){
HttpSession session = request.getSession();
session.setMaxInactiveInterval(60); //초
}
2순위. WEB-INF/web.xml 시간을 지정한 경우
<session-config>
<!-- 분으로 지정 -->
<session-timeout>30</session-timeout>
</session-config>
3순위. [tomcat 디렉토리]/conf/web.xml에 시간을 지정한 경우
<session-config>
<session-timeout>90</session-timeout>
</session-config>
항상 디테일하게 설계하고 개발할수록 우선순위가 된다고 느꼈는데, 세션도 마찬가지였다.