JAVA怎么设定SESSION超时?

2025-11-28 22:01:36

本教程主要介绍如何设定基于 Servlet web 应用的 Session 超时。该教程解决了JAVA怎么设定SESSION超时的问题。我们还举例说明了这些配置的优先级别,无论是 Jetty 还是 Tomcat。希望可以帮到你^_^

方法/步骤

在 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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢