1、原理
第一步: 自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。
第二步:在strutx.xml中注册上一步中定义的拦截器。
第三步:在需要使用的Action中引用上述定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。
2、服务器自定义拦截器,继承AbstractInterceptor类,重写intercept方法。
@Override
public String intercept(ActionInvocation invocation) throws Exception {
User user = (User) ServletActionContext.getContext().getSession().get("user");
if(user==null) {
ActionSupport actionSupport= (ActionSupport) invocation.getAction();
actionSupport.addActionError("您还没有登录");
return "login"; //跳转到登录页面
}
return invocation.invoke(); //已经登录,放行
}
3.在struts.xml中注册拦截器(将拦截器放在和所需要拦截的action放在同一个package中,不需要拦截的action,抽出来另外写一个package放在里面)
4、代码地址:
https://github.com/xuexionghui/mavenbos.git