为servlet映射指定负路径匹配

时间:2011-12-13 21:39:58

标签: servlets servlet-filters

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

1 个答案:

答案 0 :(得分:3)

不,那是不可能的。您必须在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;
}

// ...