Mic*_*ael 69
不使用ServletContextListener,而是使用HttpSessionListener.在该HttpSessionListener方法中,您可以以编程方式设置会话超时.
public class MyHttpSessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event){
event.getSession().setMaxInactiveInterval(15 * 60); // in seconds
}
public void sessionDestroyed(HttpSessionEvent event) {}
}
Run Code Online (Sandbox Code Playgroud)
并且不要忘记在部署描述符中定义侦听器:
<webapp>
...
<listener>
<listener-class>com.example.MyHttpSessionListener</listener-class>
</listener>
</webapp>
Run Code Online (Sandbox Code Playgroud)
不过,我建议为每个应用程序创建不同的web.xml文件,并在那里定义会话超时:
<webapp>
...
<session-config>
<session-timeout>15</session-timeout> <!-- in minutes -->
</session-config>
</webapp>
Run Code Online (Sandbox Code Playgroud)
Pas*_*ent 33
有没有办法以编程方式设置会话超时
基本上有三种方法来设置会话超时值:
session-timeout标准web.xml文件中的〜或〜session-timeout值(从而在服务器级别配置它)〜或〜HttpSession. setMaxInactiveInterval(int seconds)Servlet或JSP中的方法以编程方式.但请注意,后一个选项设置当前会话的超时值,这不是全局设置.