jsp页面session超时

本文详细介绍了如何在Web应用程序中配置Session的超时时间,包括通过代码、web.xml文件和服务器设置来实现Session的失效。同时,讨论了Session失效的处理方式,以及在用户退出系统时清除Session的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



转:http://lhp--2006.iteye.com/blog/1312273

http://blog.sina.com.cn/s/blog_5db0dfe40100h7du.html

http://www.cnblogs.com/binger/archive/2013/03/19/2970171.html

默认情况下Session在内存中保存,设置时间过长保存的数据过大的话会导致内存不足。

        在主页面或者公共页面中加入:session.setMaxInactiveInterval(600);参数600单位是秒,即在没有10分钟活动后,session将失效。  Tomcat中Session的默认失效时间为30分钟。
  这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。 

session的超时是指在一定时间里没有向服务器端发送请求,并不是从用户登录进入时开始算时间

只要你没有向服务器端发送销毁的请求,那么该session的活动期就是服务器端设置的session超时时间

在web.xml里面设置session的有效时间:
  <!-- 设置session失效,单位分 -->
  <session-config> 
  <session-timeout>1</session-timeout> 
  </session-config>
   // 设置为0,-1 表示永不超时

      直接在应用服务器中设置,如果是tomcat,可以在tomcat目录下conf/web.xml中找到<session-config>元素,tomcat默认设置是30分钟,只要修改这个值就可以了。 
  需要注意的是如果上述三个地方如果都设置了,有个优先级的问题,从高到低:(1)>(2)>(3)

safe.jsp

<%
String s=(String)session.getAttribute("id");
if(s==null){
 out.println("<script language=javascript>alert('会话超时,请重新登录!');window.location.href='./site_login.jsp'; </script>");
     }
%>

其他页面:

<jsp:include page="safe.jsp"></jsp:include>

问题:每个页面都需要引入

页面深度不同,跳转页面的地址要重新获取

使用框架的程序要从最底层跳转


session失效:

<%
 session.invalidate();
 response.sendRedirect("./site_login.jsp");
 %>

在用户退出系统时,需要注销session,否则只有等到session在服务器中过期后,session对象才会被清除。

假设一个session的不活动最大时间为30分钟(默认的时间),如果不手工清除session对象,则当一个用户退出系统后再过30分钟,这些对象所占用的系统资源才会被释放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值