java中怎么设置一个session在整个web中的时间

如题所述

java中设置session存在整个web的时间方法如下:
(1)在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);
参数900单位是秒,即在没有活动15分钟后,session将失效。
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。
(2)也是比较通用的设置session失效时间的方法,就是在项目的web.xml中设置
Xml代码
[xhtml] view plaincopy
<session-config>
<session-timeout>15</session-timeout>
</session-config>
这里的15也就是15分钟失效.
(3)直接在应用服务器中设置,如果是tomcat,可以在tomcat目录下conf/web.xml中
找到<session-config>元素,tomcat默认设置是30分钟,只要修改这个值就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-09
1.在 [项目名]/WEB-INF/web.xml 配置文件中添加如下内容(单位为分钟,只针对该项目起作用)
<session-config>
<session-timeout>60</session-timeout>
</session-config>

2.[tomcat_home]/conf/web.xml 中的 修改配置(此配置数全局的,表明该tomcat下所有的应用session的过期时间)
<session-config>
<session-timeout>60(此处修改为自己想要的)</session-timeout>
</session-config>
注:第一个方法优先级高于第二个,有一项配置了 第二项就不起作用了。本回答被提问者和网友采纳
第2个回答  2014-01-09

两种方式,一种是在代码中

public class MyHttpSessionListener implements HttpSessionListener{
  public void sessionCreated(HttpSessionEvent event){
    event.getSession().setMaxInactiveInterval(15*60); //in seconds
  }
  public void sessionDestroyed(HttpSessionEvent event){}
}

<webapp>
...
  <listeners>
    <listener-class>com.example.MyHttpSessionListener</listener-class>
  </listeners>
</webapp>

一种是在配置文件中:  

<webapp>
...
  <session-config>
    <session-timeout>15</session-timeout> <!-- in minutes -->
  </session-config>
</webapp>

第3个回答  2014-01-09
<!-- session超时定义,单位为分钟 --> <session-config> <session-timeout>120</session-timeout> </session-config>
相似回答