JAVA怎么设定SESSION超时?
介绍
本教程主要介绍如何设定基于 Servlet web 应用的 Session 超时。
在 web.xml 中配置全局 Session 超时
所有的http Sessions
可以配置在 WEB 应用的 web.xml
中:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<session-config>
<session-timeout>10</session-timeout>
</session-config>
</web-app>
需要注意的是,这里的单位是分钟,而不是秒。有趣的是,在未来可能会用注解来代替 Servlet 3.0+ XML 配置。另外,目前暂时不支持通过编程的方式来设定全局 Session 超时,不过 Java jira 中有存在这样的开放问题,开发期还待定。
单个 Session 超时
通过 Java API javax.servlet.http.HttpSession
只可以设定单个 Session 超时:
HttpSession session = request.getSession();
session.setMaxInactiveInterval(10*60);
需要注意的是<session-config>
单位是分钟,这里的setMaxInactiveInterval
单位是秒。
Tomcat Session 超时
所有 Tomcat 服务默认提供了全局 web.xml 配置文件,它将应用于该服务下的所用应用。路径位于位于:$tomcat_home/conf/web.xm
。
默认情况下,它同<session-timeout>
一样都配置了30分钟的超时。
单独部署的应用中的 web.xml <session-timeout>
设定将优先于位于$tomcat_home/conf/web.xm
的全局配置。
需要注意的是,Jetty 的路径位于 $jetty_home/etc/webdefault.xml
总结
该教程解决了JAVA怎么设定SESSION超时
的问题。我们还举例说明了这些配置的优先级别,无论是 Jetty 还是 Tomcat。希望可以帮到你^_^