日期:2014-05-18  浏览次数:20658 次

jsp 登录机制的一个难题
假设用户通过 POST 方式发一个请求给一个jsp程序,例如 a.do
在 Filter 哪里判断没有登录,就转到登录页面。

登录验证以后,我希望能够直接重定向到原来的 a.do ,而且保留
原来的参数,也就是用户不需要重新输入。

这个如何实现?如何保存及恢复原来的参数?

谢谢!

------解决方案--------------------
可以在filter的时候可以获取到访问地址request.getRequestURL()
然后判断用户是否登陆
如果没有登陆
就将这个访问地址传到登陆页面
可以在登陆页面里设一个隐藏域保存这个访问地址
用户一登陆以后判断是否这个隐藏域是否为空
不为空就重定向过去
------解决方案--------------------
用cookie保存用戶的ID,信息等,用户下次访问就可以通过检索获得以前的信息。
這樣用戶就可以不用重新輸入
------解决方案--------------------
设置一个KEY,放到SESSION里。
登陆成功时就将KEY值改一下。
在FILTER时取SESSION里的这个KEY,如果改过就继续;如果没改就说明还未登陆,就拦截。
参数也可以一一放进SESSION里。
------解决方案--------------------
LZ问的关键是要怎么保存登录前提交的数据吧

1.放到session里去
2.作为参数加到URL里(数据太多不行)
3.提交时用cookie保存,a.do开始先检查cookie,如果cookie存在就优先读取cookie内容,读取完就清除cookie
------解决方案--------------------
如果你用对象来封装你的数据的话,那就在判断后,把Object放在session中,提交回去。
------解决方案--------------------
把用户请求的URL放到session中保存起来,登录完成之后再读出来用
------解决方案--------------------
用个javabean来保存提交的参数吧。
------解决方案--------------------
对于post把request保存到session中不可以吗?
------解决方案--------------------
session里或者在filter里处理