java web.xml设置session过期时间为15分钟,超时却不会过期
<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> java public 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
为您推荐:
align="center,center" class="BAIDU_SS_HHIFRAME" src="http://entry.baidu.com/rp/home?di=u2115503&rsi0=450&rsi1=25&type=pageembed&version=1&titff=sans-serif%2Ctahoma%2C%22MicrosoftYaHei%22&titfs=14&rss2=%232d64b3&rss3=%232d64b3&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<u=http%3A%2F%2Fzhidao.baidu.com%2Flink%3Furl%3Dw4ipcavoOXdHZSbMvfLEqyaSSvVzNPwqA6IwvaTrPnMYtoQuRKcdf3-WdBZVPHLBxW2f5riz8lETyW5QcYIxz_&ref=http%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3Dw4ipcavoOXdHZSbMvfLEqyaSSvVzNPwqA6IwvaTrPnMYtoQuRKcdf3-WdBZVPHLBxW2f5riz8lETyW5QcYIxz_%26wd%3D%26eqid%3D9ba12625000dd73100000005570465bb&pageWidth=1265&pageHeight=621&t=1459905995852&iframeWidth=1265&iframeHeight=621" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="width: 450px; height: 25px; background-color: transparent;" allowtransparency="true">
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永不过期。
<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永不过期。
追问:
我是采用的第三种方式,为什么不行呢?