【发布时间】:2012-01-19 18:13:43
【问题描述】:
有没有办法在web.xml 中指定负映射?例如,我想为所有请求设置一个过滤器,除了那些匹配“/public/*”的请求。
【问题讨论】:
有没有办法在web.xml 中指定负映射?例如,我想为所有请求设置一个过滤器,除了那些匹配“/public/*”的请求。
【问题讨论】:
不,这是不可能的。您必须在 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;
}
// ...
【讨论】: