05 过滤器案例之-权限验证过滤器

SecurityFilter

public class SecurityFilter implements Filter {

    public void destroy() {
        // TODO Auto-generated method stub

    }

    public void doFilter(ServletRequest req, ServletResponse resp,
            FilterChain chain) throws IOException, ServletException {
        //强制转换
        HttpServletRequest request = (HttpServletRequest)req;
        HttpServletResponse response = (HttpServletResponse)resp;
        //是否登录判断逻辑
        //先判断有无session对象存在
        HttpSession session = request.getSession(false);
        if(session==null){
            //没有登录
            response.sendRedirect(request.getContextPath()+"/noAuth.html");
            return;
        }else{
            String user = (String)session.getAttribute("user");
            if(user==null){
                //没有登录成功
                response.sendRedirect(request.getContextPath()+"/noAuth.html");
                return; 
            }
        }
        
        //如果已经登录成功了,则放行!
        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub

    }

}

问题:
现在有

login.jsp
modify.jsp
index.html
noAuth.html

几个页面,很明显login.jsp和noAuth.html没有必要拦截,因为这些本来就是拦截后的结果,是要接着做出处理的,那怎么针对性的对其他页面做出拦截配置呢?

  1. filter配置文件中
    <url-pattern>/modify.jsp</url-pattern>
    <url-pattern>/noAuth.html</url-pattern>
  1. 可以把要拦截的页面统一放到一个文件夹下
    <url-pattern>/文件夹/*</url-pattern>
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容