【问题标题】:Specify negative path match for servlet mapping为 servlet 映射指定负路径匹配
【发布时间】:2012-01-19 18:13:43
【问题描述】:

有没有办法在web.xml 中指定负映射?例如,我想为所有请求设置一个过滤器,除了那些匹配“/public/*”的请求。

【问题讨论】:

    标签: servlets servlet-filters


    【解决方案1】:

    不,这是不可能的。您必须在 doFilter() 方法中匹配自己的 URL 模式。将过滤器映射到 /* 并执行以下工作:

    HttpServletRequest req = (HttpServletRequest) request;
    
    if (req.getRequestURI().startsWith("/public/")) {
        chain.doFilter(request, response);
        return;
    }
    
    // ...
    

    或者当实际上有上下文路径时:

    HttpServletRequest req = (HttpServletRequest) request;
    
    if (req.getRequestURI().startsWith(req.getContextPath() + "/public/")) {
        chain.doFilter(request, response);
        return;
    }
    
    // ...
    

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 1970-01-01
      • 2020-01-03
      • 2016-03-22
      • 2015-01-03
      • 2018-07-29
      • 2016-12-18
      • 2016-06-24
      • 2015-11-19
      相关资源
      最近更新 更多