声明:引用本文时请注明出处。
问题描述:有些WEB业务系统,比如物流、ERP等用户比较习惯把浏览器一直打开,当有新业务发生时,用户会即时录入,当通过SESSION时,由于会话已过期,经常会导致提交失败,用户不得不又要重新登陆并录入单据,影响系统的使用。
分析:做WEB开发的用户基本都会遇到保持用户会话的问题,由于HTTP协议是一个无状态的协议,所以我们不得不利用Cookie(客户端方式)或利用SESSION(服务器方式,新打开的浏览器时会自动创建一个SESSIONID,名称随应用服务器而不同),用Cookie时不安全,因为它是附在HTTP请求的头信息里的,在浏览器地址栏中输入“javascript:document.write(document.cookie)”可显示COOKIE信息(IE6和IE7中均可以),Session又受服务器限制,一般会限制十几至几十分钟以内。下面介绍一种折衷的办法,利用Cookie与Session相结合的办法,保持服务器一直在线。
解决办法:(JAVA代码)
1,用户登陆时,在保存SESSION信息同时,将登陆信息以加密的方式保存到Cookie中。
//以下为代码片段,拷贝后需要处理
public static String checkAuth(HttpServletRequest request,HttpServletResponse response,String mark,String userid,String pwd){
UserAuthClient userAuth= new UserAuthClient();
String info=userAuth.getUserAuthHttpPort().check(userid,pwd,request.getRemoteAddr());
if(info.equals("ok")){
HttpSessi

本文探讨了如何解决HTTP协议无状态特性导致的用户会话过期问题,尤其是在物流、ERP等系统中。提出了一种混合使用Cookie和Session的方法,以确保用户在浏览器长时间打开时仍能保持在线状态。在用户登录时,将加密后的用户信息存储在Cookie中,并在服务器端通过Session保存。当会话过期时,通过Cookie中的信息重新验证用户,实现无感知的重新登录。

2万+

被折叠的 条评论
为什么被折叠?



