作者:手机用户2502941585_336 | 来源:互联网 | 2023-05-26 09:31
1> BalusC..:
这是预期的行为吗?
是.
默认情况下,过滤器仅映射到REQUEST
调度程序.下面
UrlRewriteFilter
/*
相当于
UrlRewriteFilter
/*
REQUEST
这意味着,过滤器仅在"原始"传入请求上触发,而不是在转发请求或错误页面请求上触发.
还有另外两名调度员:FORWARD
和ERROR
.错误页面通过ERROR
调度程序在内部调度.如果你想让你的过滤器挂钩,那么添加它:
UrlRewriteFilter
/*
REQUEST
ERROR
请注意,您需要在REQUEST
此处明确指定调度程序,否则它将假设您完全覆盖它并且只对ERROR
调度程序感兴趣.
在过滤器内部,您可以检查是否存在RequestDispatcher#ERROR_REQUEST_URI
触发的请求属性,如果它是否被触发.
String errorRequestURI = (String) request.getAttribute(RequestDispatcher.ERROR_REQUEST_URI);
if (errorRequestURI != null) {
// Error page was triggered on the given URI.
}