java session创建时间_javaweb自定义管理session时间

首先是配置过滤器filter的步骤:

在web.xml里面配置一个SessionTimeoutFilter,过滤一切以.htm结尾的url请求。配置如下:

sessionmanager

com.xx.common.SessionTimoutFilter

sessionmanager

*.htm

然后就是过滤器的核心方法,原理就是在session里面设置一个lastAccessTime变量,保存上次访问的毫秒值,然后每次用

当前时间的毫秒值 --  上次访问毫秒值,如果大于设置的session时长,则表示过期了:

public void dofilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {

//判断是否超过规定时间没有访问

long SESSION_TIMEOUT = 30*60*1000L;//session保存时长为30分钟,单位毫秒

if (SESSION_TIMEOUT >= 1L) {

HttpSession session = request.getSession();

//获取当前时间

long crrentTime = System.currentTimeMillis();

//上次访问时间

Object obj = session.getAttribute("lastAccesTime");

long lastAccesTime = (obj == null ? crrentTime : ((Long) obj).longValue());

if (crrentTime - lastAccesTime <= SESSION_TIMEOUT) {//当前时间减去上次访问的时间,大于在线时长,则表示session过期了

// nosession 参数用在定时刷新请求上,不记录上次访问时间

session.setAttribute("lastAccesTime", crrentTime);

} else {

session.invalidate();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值