Мне нужно отправить мой запрос (в jsp, но я не думаю, что это имеет значение) из http.Filter если URI исходного запроса проходит некоторую проверку, что мой фильтр работает.
Я нашел эту страницу которая столкнулась с подобной задачей
Тем не менее мне нужно сделать следующее:
-
Как я могу получить ServletContext в методе
doFilter()
(для вызова API переадресации вызовов)getServletContext()
не вызывается -
Должен ли я иметь
call chain.doFilter()
перед переходом, после переадресации или вообще нет? Кроме того, мне нужно вызватьchain.doFilter()
, если моя проверка прошла или только если она терпит неудачу (потому что в этом случае я не буду продолжать пересылать мою страницу)?
Этот вопрос действительно продолжит эту тему, чтобы быть более очевидным, код может быть примерно таким:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
HttpServletRequest httpServletRequest = ((HttpServletRequest)request);
String requestURI = httpServletRequest.getRequestURI();
String contextPath = httpServletRequest.getContextPath();
if (<this is my implementation of the validation of this filter>){
getServletContext().getRequestDispatcher(
"MySpecific.jsp").forward(request,response);
}
}
chain.doFilter(request,response);
}