servlet session失效时间整理

问题:要使当前会话时间维持1小时,应在 setMaxInactiveInterval() 中填多少?
       解答:3600 
       setMaxInactiveInterval(int   i)   i的单位是秒。

如果设置的值为零或负数,则表示会话将永远不会超时。常用于设置当前会话时间。

设置session立即失效:
req.getSession().invalidate();

测试例子:

public class MsgServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// resp.addHeader("Content-Type", "text/html;");
		resp.setCharacterEncoding("gbk");
		if (req.getSession().getAttribute("viewtimes") == null) {
			req.getSession().setAttribute("viewtimes", 1);//因为session失效,所以一直会执行session set操作
		}

		req.getSession().invalidate();//设置session失效
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doPost(req, resp);
		System.out.println(req.getContextPath());
	}
}

一般web系统都需要控制session自动失效的时间,从而控制用户访问系统超时。设置session失效有以下三种方式:

1、在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);参数900单位是秒,即在没有活动15分钟后,session将失效。

 注意:这里session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端

2、较通用的设置session失效时间的方法:

在项目的web.xml中设置:

  <!-- 设置session失效,单位分 -->

  <session-config>

  <session-timeout>1</session-timeout>

  </session-config>

3、直接在应用服务器中设置,

例如:若容器是tomcat,可以在tomcat目录下conf/web.xml中设置。

找到<session-config>元素,tomcat默认设置是30分钟,只要修改这个值就可以了。

注意:如果上述三个地方如果都设置了,有个优先级的问题,从高到低:(1)>(2)>(3)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值