为了账号安全,请及时绑定邮箱和手机立即绑定

session失效客户端页面跳转到登陆页面,应该在js中写吧?

session失效客户端页面跳转到登陆页面,应该在js中写吧?

ITMISS 2019-04-13 08:36:22
如题,session失效客户端页面跳转到登陆页面,应该在js中写吧?怎么写,请高手帮忙分析下,谢谢!需要实现的功能是:session失效(用户长时间未操作客户端页面)后,客户端页面跳转到登陆页面,请用户重新登陆.下面是从tomcat的web.xml页面中复制的.1440我自己做的实验:(1)A.前提,将1session失效时间改为1分钟.B.在home.jsp(我项目的首页)中添加js,内容为每隔10秒钟向后台java请求一次,查询当前登录用户的ID.C.测试没用,这种情况下,session永不失效.D.将B中的ajax去掉,改为在js中直接请求,也是每10秒检验一次,效果也是session永不失效.(2)前提和(1)一样,失效时间为1分钟.只是将B中的间隔10秒,改为间隔1分钟,这时测试到的session失效了.我很高兴,以为这样就可以写我的跳转登陆页面的代码了.但是....发现问题:A.先描述正常的情景:用户不活动的情况下,1分钟间隔后,js检验到session失效,执行跳转到登陆页面.B.有疑问的情景:用户活动的情况下,间隔为1分钟,从0分钟开始,0.2分钟时,用户操作了页面,session-timeout重置为从0.2分钟开始,但是,js是从0分钟开始的.这样我的js就出现漏洞了.没想通怎么改正.或者这个思路不对,应该用其他办法来实现这个功能,请高手指点!
查看完整描述

2 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

提供一种思路,是否可行有待实验
服务端
添加一个过滤器,在过滤器内写入一个cookie,cookie的过期时间与session过期时间一致
客户端
不发起ajax请求查找session,而是设置一个定时器检查cookie内是否存在那个服务器过滤器写入的那个cookie,如果不存在,则表示在这段时间内,客户端未与服务器交互,session过期。然后重定向到login页面。
另一种简单的处理方式是,完全在客户端进行处理,在客户端设置定时器检查session时间内是否有鼠标或键盘进行操作,如果没有则重定向。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 286 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号