做一个用户session失效重新登录的问题有一些疑问想问问各位前辈!
用户 A在点击“提交”的时候,发现用户A长时间没有操作session已经失效了,要求其重新登录,登录后不需要再点击“提交”了,而是直接给其提交了。
做法是:将“提交”的对应的url以及参数放到session中 ,等登录后取出这个url直接跳转即可。问题一:session说是和一个用户与服务端的会话,那么一个session就是针对某一个特点的用户而言。
        这里session都失效了,为什么还能往里面放url
问题二:A用户重新登录后,此时为什么能判定这个url就是A用户的。也就是说A用户重新登录后,得到的是个 
        新的session啊。怎么能拿到重新登录前那个session中的url值
问题三:如果第二点理解有误的话就会有第三个问题。假如A用户正要重新登录,此时另一个新注册的用户B
       登录进来,那么这个B会拿到session中那个url么。session url  重新登录 失效

解决方案 »

  1.   

    session 虽然是保存在服务端,但session其实是客户端与服务端连接时会在客户端建立一个cookie存放sessionId的,没个sessionId不一样的。所以不用担心A、B会拿错
    建议不要过多的使用session,因为存服务器端嘛比较耗内存。
      

  2.   

    你这种问题一般通过拦截器实现
    单用户点击提交时,拦截器拦截请求,查看session有无失效
    如果没有失效,直接提交,如果失效,则跳转到登陆页面
    这时你就要想办法保存这次的用户请求信息啦,提交URL呀,提交参数呀,你都要想办法保存,具体是cookie呀,session呀还是request呀,自己觉得怎么爽怎么玩吧
    登录后再继续完成请求
      

  3.   

    哎呀!刚刚测试了下,A用户准备提交一个数据(数据已经准备好只是没有点击提交按钮),但是A用户中午吃饭去了。等下午上班A用户发现自己还没有提交数据,于是直接点击“提交”【假如提交的路径是 xxx.action?id=1000&name=A】
    这个时候系统要求A用户重新登录,并且把路径【xxx.action?id=1000&name=A】存放到session中去了然后跳到登录界面,A用户准备重新登录。就在这个时候一个B用户比A用户先一步登录进来了。结果发现既然,B用户莫名其妙的看一个页面跳转了,也就是说B用户刚进来就得到了session的中的个xxx.action?id=1000&name=A路径。显然这是错的啊!!!这个路径应该是A用户的。B用户应该没有!
      

  4.   

    少年啊,你应该在提交页面隐藏一个用户id值,然后可以用这个id来判断用户了