java web.xml设置session过期时间为15分钟,超时却不会过期

来源:互联网 发布:安装工怎么和淘宝合作 编辑:程序博客网 时间:2024/06/05 19:11


java web.xml设置session过期时间为15分钟,超时却不会过期

2013-05-15 12:24 岁月杀猪刀888 | 浏览 10721 次悬赏:5
java
<context-param><param-name>sessionMaxInterval</param-name><param-value>1200</param-value></context-param>采用监听方式15分钟以上都不会过期,如果把过搜索期时间改为15分钟以下,却可以过期,请问大神,有没有遇到过,是什么情况,服务器为tomcat


2013-05-15 12:46网友采纳
你可以试试这么做web.xml<listener>           <listener-class>                  com.listener.SessionListener             </listener-class>     </listener><session-config>  <session-timeout>1</session-timeout> </session-config>javapublic class SessionListener implements HttpSessionListener{             public void sessionCreated(HttpSessionEvent event) {             HttpSession ses = event.getSession();             String id=ses.getId()+ses.getCreationTime();             SummerConstant.UserMap.put(id, Boolean.TRUE);     //添加用户      }        public void sessionDestroyed(HttpSessionEvent event) {            HttpSession ses = event.getSession();            String id=ses.getId()+ses.getCreationTime();            synchronized (this) {                           SummerConstant.USERNUM--;   //用户数减一                           SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map                    }             }      }
追问:
我采用的是session.setMaxInactiveInterval(1200);的方式,不行,把时间改小一点是可以的,这是为什么呢
我采用的是session.setMaxInactiveInterval(1200);的方式,不行,把时间改小一点是可以的,这是为什么呢
评论| 给力7 不给力3

滦县华商街| 来自团队:编程中国风| 五级 采纳率58%

擅长: 电脑/网络 生活 资源共享 电子数码


为您推荐:

<iframe align="center,center" class="BAIDU_SS_HHIFRAME" src="http://entry.baidu.com/rp/home?di=u2115503&amp;rsi0=450&amp;rsi1=25&amp;type=pageembed&amp;version=1&amp;titff=sans-serif%2Ctahoma%2C%22MicrosoftYaHei%22&amp;titfs=14&amp;rss2=%232d64b3&amp;rss3=%232d64b3&amp;title=java%20web.xml%E8%AE%BE%E7%BD%AEsession%E8%BF%87%E6%9C%9F%E6%97%B6%E9%97%B4%E4%B8%BA15%E5%88%86%E9%92%9F%EF%BC%8C%E8%B6%85%E6%97%B6%E5%8D%B4%E4%B8%8D%E4%BC%9A%E8%BF%87%E6%9C%9F_%E7%99%BE%E5%BA%A6%E7%9F%A5%E9%81%93&amp;ltu=http%3A%2F%2Fzhidao.baidu.com%2Flink%3Furl%3Dw4ipcavoOXdHZSbMvfLEqyaSSvVzNPwqA6IwvaTrPnMYtoQuRKcdf3-WdBZVPHLBxW2f5riz8lETyW5QcYIxz_&amp;ref=http%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dw4ipcavoOXdHZSbMvfLEqyaSSvVzNPwqA6IwvaTrPnMYtoQuRKcdf3-WdBZVPHLBxW2f5riz8lETyW5QcYIxz_%26wd%3D%26eqid%3D9ba12625000dd73100000005570465bb&amp;pageWidth=1265&amp;pageHeight=621&amp;t=1459905995852&amp;iframeWidth=1265&amp;iframeHeight=621" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="width: 450px; height: 25px; background-color: transparent;" allowtransparency="true"></iframe>
按默认排序| 按时间排序

其他1条回答

2013-05-15 12:43 热心网友
1. 在server.xml中定义context时采用如下定义:
<Contextpath="/livsorder"docBase="/home/httpd/html/livsorder"
defaultSessionTimeOut="3600"isWARExpanded="true"
isWARValidated="false"isInvokerEnabled="true"
isWorkDirPersistent="false"/>

2. 在web.xml中通过参数指定:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
其中30表示30分钟

3. 在程序中通过servlet api直接修改
HttpSession ses = request.getSession();
ses.setMaxInactiveInterval(10);
设置单位为秒,设置为-1永不过期。
追问:
我是采用的第三种方式,为什么不行呢?
0 0
原创粉丝点击