java web.xml设置session过期时间为15分钟,超时却不会过期 5
<context-param><param-name>sessionMaxInterval</param-name><param-value>1200</param-va...
<context-param>
<param-name>sessionMaxInterval</param-name>
<param-value>1200</param-value>
</context-param>
采用监听方式
15分钟以上都不会过期,如果把过期时间改为15分钟以下,却可以过期,请问大神,有没有遇到过,是什么情况,服务器为tomcat 展开
<param-name>sessionMaxInterval</param-name>
<param-value>1200</param-value>
</context-param>
采用监听方式
15分钟以上都不会过期,如果把过期时间改为15分钟以下,却可以过期,请问大神,有没有遇到过,是什么情况,服务器为tomcat 展开
2个回答
展开全部
你可以试试这么做
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
}
}
}
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);的方式,不行,把时间改小一点是可以的,这是为什么呢
2013-05-15
展开全部
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永不过期。
追问
我是采用的第三种方式,为什么不行呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询