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

SSH开发中避免用户饶开登陆直接访问页面的好方法请教
按照流程,用户应当登陆后才能访问后面操作的页面,比如http://xxx.xxx.com/login.jsp,登陆成功后被struts导向到一个新的info.jsp,如果用户不访问login.jsp直接打开Browser访问http://xxx.xxx.com/info.jsp,请问大家比较好的符合SSH编程的框架的方法

通常的方法包括:
1.JSP页面代码方法,在后续jsp文件中用EL/JTSL写一些代码判断session中某个状态是否被设置来判断用户是否登陆.但是这样感觉逻辑和表现层没有分开,不符合MVC的框架
2.所有后续的连接,通过Struts   ActionForward的方法不直接导向具体JSP页面,而是产生一个新的action,经过action类判断一下再导向具体页面,如所有link用struts   EL写成: <html:link   action= "/abc.do "...> .   这样是符合MVC的框架可是这样一来是否写的Action类又太多了,每个连接都写一个,非常麻烦.

请问高手达人,有无更简洁高效的方法进行实现?

------解决方案--------------------
重复,请删除此贴
------解决方案--------------------
直接加个过滤器就是了
------解决方案--------------------
你可以把登陆信息放在作用域中,然后在页面判断一下如果这个值为空就返回首页,另外也可以用过滤器
------解决方案--------------------
在登录的时候在SESSION保存用户信息,然后加个过滤器对每个URL过滤,看SESSION是否有该用户信息,如果没有就跳转到提示没有登录的页面
------解决方案--------------------
加个过滤器
------解决方案--------------------
加过滤器
在action中判断session
------解决方案--------------------
使用过滤器,在过滤器中存个session值
过滤你不登录不能打开的页面
------解决方案--------------------
在action中判断啊..
String userName = (String)request.getSession("userName");

if(userName != null && !userName.trim().equals("")) {
-------------------
}
------解决方案--------------------
探讨
在action中判断啊..
String userName = (String)request.getSession("userName");

if(userName != null && !userName.trim().equals("")) {
-------------------
}

------解决方案--------------------
探讨
在action中判断啊..
String userName = (String)request.getSession("userName");

if(userName != null && !userName.trim().equals("")) {
-------------------
}

------解决方案--------------------
通常情况下,是如楼上诸位所说的,使用过滤器来进行登陆验证,很好,很方便
但是既然采用了SSH的架构,为什么不充分利用下spring强大的aop功能呢

建议而已,呵呵
------解决方案--------------------
也可以写个JSP页面来判断.

需要登陆的,INCLUDE一下.
------解决方案--------------------
加过滤器比每个页面都验证SESSION要优雅了
建议把相同权限的页面放在一个文件内,然后用过滤器来拦截
例如后台的都放在admin里,用过滤器拦截所有访问/admin/*的用户


------解决方案--------------------
参考一下这个jsf的权限控制思路,
http://www.hahaxiao.net/faces/website/website.jsp?id=10
------解决方案--------------------
如果用spring的话不妨试一下acegi,权限可以控制到方法级别