前面阐述了下session的工作机制,下面接着说下我对session过期的看法及处理。
在Java中,session默认情况下是有tomcat控制的,在tomcat——>conf——>web.xml文件中定义:
<!-- ==================== Default Session Configuration ================= --> <!-- You can set the default session timeout (in minutes) for all newly --> <!-- created sessions by modifying the value below. --> <session-config> <session-timeout>30</session-timeout> </session-config>
默认时间为30分钟。
当在系统中需要对session有效时间重新设置,可以在系统的web.xml中添加如下设置:
<!-- 设置session过期时间,10表示10分钟 --> <session-config> <session-timeout>10</session-timeout> </session-config> <listener> <listener-class>com.hnnd.common.HttpSessionListener.HttpSessionListenerImp</listener-class> </listener>
listener是对session的监听,HttpSessionListenerImp继承了javax.servlet.http.HttpSessionListener,并且要实现HttpSessionListener中的两个方法:sessionCreated和sessionDestroyed。
sessionCreated是在当session被创建时所要触发执行的,因此根据需要可以在这里做许多相应的处理,例如在做在线人数统计时,用户登录时在sessionCreated中执行让计数器加1等等。