Struts拦截器实现拦截未登陆用户实例解析
程序员文章站
2022-05-28 14:13:23
本文研究的主要是struts拦截器实现拦截未登陆用户,具体实现如下。
首先建立一个工具类:
checkprivilegeinterceptor:这个类继承inte...
本文研究的主要是struts拦截器实现拦截未登陆用户,具体实现如下。
首先建立一个工具类:
checkprivilegeinterceptor:这个类继承interceptor,这是一个接口,要实现三个方法,要是觉得比较多的话,可以继承他的实现类abstractinterceptor,继承这个类以后只需要重写一个方法,就是在这个方法里面控制,是否登录,登录以后有哪些权限,等等,代码如下;
package com.cjdx.utils; import javax.annotation.resource; import org.hibernate.session; import org.hibernate.sessionfactory; import com.cjdx.domain.user; import com.opensymphony.xwork2.actioncontext; import com.opensymphony.xwork2.actioninvocation; import com.opensymphony.xwork2.interceptor.abstractinterceptor; //检查是否有权限,这里只检查知否登录 public class checkprivilegeinterceptor extends abstractinterceptor { @override public string intercept(actioninvocation invocation) throws exception { user user = (user) actioncontext.getcontext().getsession().get("user"); string namespace = invocation.getproxy().getnamespace(); string actionname = invocation.getproxy().getactionname(); string privilegeurl = namespace + actionname; if (user == null) { // 如果用户没有登录 if (privilegeurl.startswith("/user_login")) { //如果用户准备去登录,则放行 return invocation.invoke(); } { return "loginui"; //如果用户不是去登录,又没有登录,则转到登录页面 } } else { return invocation.invoke(); //如果用户已经登录,则执行相应的方法 } } }
然后再配置struts2.xml里:
<!-- 登录拦截器的声明 --> <interceptors> <!-- 声明你已经写好的拦截器 --> <interceptor name="checkprivilege" class="com.cjdx.utils.checkprivilegeinterceptor"></interceptor> <!-- 将已经声明的拦截器加到默认的拦截器里面去 --> <!-- 这个拦截器的名字就叫做defaultstack,这样就直接覆盖了原来的defaultstack --> <!-- 如果不这样写,还可以在像注释这样添加 --> <interceptor-stack name="defaultstack"> <interceptor-ref name="checkprivilege"></interceptor-ref> <interceptor-ref name="defaultstack"></interceptor-ref> </interceptor-stack> <!-- <interceptor-stack name="mystack"> <interceptor-ref name="checkprivilege"></interceptor-ref> <interceptor-ref name="defaultstack"></interceptor-ref> </interceptor-stack> <interceptor-stack name="defaultstack"> <interceptor-ref name="mystack"></interceptor-ref> </interceptor-stack> --> </interceptors>
总结
以上就是本文关于struts拦截器实现拦截未登陆用户实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
上一篇: 清除浮动的4种方式
下一篇: mysql查询时不区分大小写