喜只狼果冻 2019-03-05 15:39 采纳率: 50%
浏览 13194

如何配置filter过滤器,如何放行而不是全部拦截

配置过滤器次次失败,比如我通过servlet验证登录,然后我允许验证登录的servlet请求通过以及注册页面,我该如何配置

web.xml

 <filter>
    <filter-name>loginFilter</filter-name>
    <filter-class>com.lero.filter.LoginFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>loginFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

为什么我写的拦截器跳不到login.jsp同事resister.jsp也通过不了

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        HttpSession session = request.getSession();
        Object object = session.getAttribute("name");
        String path = request.getServletPath();
        if ( path.indexOf("register") >-1) {

            filterChain.doFilter(servletRequest, servletResponse);
            return;
        } else {
            response.sendRedirect("login.jsp");
        }
    }

然后我这样写虽然都通过了,但页面确实空白

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        HttpSession session = request.getSession();
        Object object = session.getAttribute("name");
        String path = request.getServletPath();
        if ( path.indexOf("login") >=0) {

            filterChain.doFilter(request, response);
            return;
        } else if(path.indexOf("redister.jsp")>-1){
            filterChain.doFilter(request, response);
        }
    }
  • 写回答

5条回答 默认 最新

  • Dream_to_good 2019-03-05 16:07
    关注

    正常的系统,肯定需要都拦截吧 不然要拦截器干嘛,如果想放行一些不想拦截的 看看这个例子吧,
    https://www.cnblogs.com/liyangxj/p/4506148.html

    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容