JAVA怎么设定SESSION超时?

2016-06-10  本文已影响298人  caobug

介绍

本教程主要介绍如何设定基于 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。希望可以帮到你^_^

上一篇下一篇

猜你喜欢

热点阅读