问答详情
源自:6-1 登录案例

哪位童鞋知道在3.0版本用注解怎么配置noLoginPaths吗?

哪位童鞋知道在3.0版本用注解怎么配置noLoginPaths吗?

提问者:qq_与赠_03193390 2018-03-26 09:38

个回答

  • Ready丨Go
    2018-03-27 17:24:09
    已采纳

    过滤器并没有noLogginPaths这个参数, 要是想实现只能在过滤器的初始化时候设置上哪些不要过滤。下面是练习写的一个demo

    @WebFilter(urlPatterns = { "*.jsp" },initParams ={@WebInitParam(name = "myNoLoginPaths", value = "/cc.jsp;/dd.jsp") })
    public class MyFilter implements Filter {

        private FilterConfig config;  
        
        @Override
        public void destroy() {
        }
        @Override
        public void doFilter(ServletRequest arg0, ServletResponse arg1,
                FilterChain arg2) throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest) arg0;  
            
            //判断是否需要拦截
            boolean needFilte = true;
            //获取 不拦截的路径列表
            String noLoginPaths = config.getInitParameter("myNoLoginPaths");  
            if(noLoginPaths!= null && !"".equals(noLoginPaths)){
                String[] strings = noLoginPaths.split(";");
                for (String tempUrl : strings) {
                    if(request.getRequestURI().indexOf(tempUrl)!=-1 ){  
                        needFilte = false;
                        break;
                    }
                    
                }
                
            }        
            
            if(needFilte){
                //具体的拦截处理逻辑
                System.out.println("过滤器处理业务"+request.getRequestURI());
            }
            
            arg2.doFilter(arg0, arg1);
            
            
            
            
        }

        @Override
        public void init(FilterConfig arg0) throws ServletException {
            config = arg0;
        }

    }

  • 好难受啊
    2018-07-27 21:24:15

    好厉害呀

  • 为彭十七加油oO
    2018-06-07 23:09:14

    在web.xml里面有一个init_param属性:

    <init-param>

      <param-name>encoding</param-name>

      <param-value>UTF-8</param-value>

      </init-param>

      <init-param>

      <param-name>ignoreExistEncoding</param-name>

      <param-value>true</param-value>

      </init-param>

    用这个配置就可以实现获取属性的