博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2 过滤器学习
阅读量:5218 次
发布时间:2019-06-14

本文共 1893 字,大约阅读时间需要 6 分钟。

 

 作用:在访问action前,后 拦截,验证或进行相应处理。本人使用拦截器是要实现登录验证功能,在访问每个action前,验证是否存在用户session

1. 编写struts2 web.xml

/index.jsp
/Error.jsp
/Error.jsp
/Error.jsp
/UserManage.jsp

2. 自定义拦截器com.zzbj.util.LoginInterceptor

1 public class LoginInterceptor extends AbstractInterceptor {    2     @Override   3     public String intercept(ActionInvocation invocation) throws Exception {   4         System.out.println("映射"); 5         // 取得请求相关的ActionContext实例   6         ActionContext ctx = invocation.getInvocationContext();   7         Map session = ctx.getSession();   8         String userRule = (String) session.get("RULE");   9         // 如果没有登陆,或者权限rule首位不为1(没有该类权限),都返回重新登陆  10         if (userRule != null && userRule.charAt(0)=='1') {  11             System.out.println("已登录");  12             return invocation.invoke();  13         }  14         ctx.put("return", "你还没有登录");  15         return Action.LOGIN;  16     }    17 }

最后bug 出现在我是使用的struts2,servlet 共存,所以 struts2 在web.xml中url-pattern 过滤的不是所有而是*.aciton   *.jsp.悲剧的发现对直接登录jsp页面毫无作用,决定使用servlet 的过滤器(ps:发现不是对.jsp文件没有过滤作用,而是开发过程中为了方便将首页.jsp设为了起始页,所以首页打开无.jsp后缀,无法过滤。只要将起始页设为登录页即可)

转载于:https://www.cnblogs.com/sjzq/p/3906693.html

你可能感兴趣的文章