关于struts 1自动登录处理

login.jsp接收用户信息输入,提交给action,判断信息是否合法,合法则再看用户是否选择“自动登录”,如果选择了,就将相关信息存入cookie。
又写了个过滤器,过滤对login.jsp的请求,过滤器里检查cookie是否存有用户信息,存了则自动跳转到登录成功的页面。
我想知道:这样的思路是否符合实际开发的情况?
另外,还想知道:从Filter里怎么跳转到成功页面,难道还用response.sendRedirect()?
[b]问题补充:[/b]
To ansjsun:
感谢你的回答。但FilterChain没有forward函数,所以按你说的实现不了。 :(
[b]问题补充:[/b]
To ansjsun:
再次感谢!
你的这种做法一开始我就想到了,但是我感觉不太好,这样使Filter与视图层耦合太紧密。
我现在的解决办法是,增加一个action,在此action中取session中保存的用户信息,取到则直接转到登录成功页面,取不到则转向login.jsp。用户登录时,请求的不再是login.jsp,而是这个新增加的action。
原来写的过滤器现在过滤对这个新action的请求。

2个回答

我刚写了个呵呵..
request.getRequestDispatcher("/login.jsp").forward(request, response) ;
这个事服务器端重定向
如果用户session为空或者且登陆失败
返回到登陆页面
request.getRequestDispatcher("/login.jsp").forward(request, response) ;

如果session不为空或者登陆成功
FilterChain.doFilter(request, response);
让系统走该走的路..

过滤器就是个验证session是否存在的地方..如果session不存在..
就冲cookie里面取出东西..给他自动登录...

在过滤器里好像是这么跳的.chain.forward(req,rpo) ;
还有你的思路是正确的..不过有一点不一样..cookie里面取出了用户名和密码后在过滤器里面进行登陆..登陆成功后重新设定cookie...

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!