java

说起来也有点傻吧,以前没有用过struts2 的 interceptor,所以不知道用户登录之后session中的数据究竟是怎么进行权限控制的,后来因为项目的需求,所以在google上面查找了一些这个方面的资料,并且照着这个方法写了一个,还真的起了很大的左右,而且上面还有的方法说,有的jsp页面是不能采用那种方法的,但是通过filter可以实现!
下面附上我的代码,希望对大家有所帮助吧!
public class AuthorityInteraptor extends AbstractInterceptor {
private static final long serialVersionUID = 5715931131999632475L;
@SuppressWarnings("unused")
private static Log log = LogFactory.getLog(AuthorityInteraptor.class);
@Override
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
ActionContext ctx = arg0.getInvocationContext();
Map<String, Object> session = ctx.getSession();
if(session.get("user") != null){
System.out.println("success!");
return arg0.invoke();
}
System.out.println("fail");
ctx.put("tip","您还没有登录,请登陆系统");
return Action.LOGIN;
}

}

struts.xml的配置:
<package name="authority" extends="struts-default">
<interceptors>
<!--定义一个名为authority的拦截器-->
<interceptor
class="com.goosteel.kdonl.interaptor.AuthorityInteraptor"
name="authority"/>
<!--定义一个包含权限检查的拦截器栈-->
<interceptor-stack name="mydefault">
<!--配置内建默认拦截器-->
<interceptor-ref name="defaultStack"/>
<!--配置自定义的拦截器-->
<interceptor-ref name="authority"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault"></default-interceptor-ref>
<global-results>
<result name="login">/login.jsp</result>
</global-results>
</package>
其他的只要是继承自struts-default的package只要继承自这个package就可以了,例:
<package name="knowledgepart" namespace="/knowledgepart" extends="authority">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值