Мне нужно до переслать мой запрос (в jsp, но я не думаю, что это имеет значение) из http.Filter , если URI исходного запроса передает некоторую проверку, что мой фильтр работает.Переслать запрос с фильтра
Я нашел это page that faced similar task
Тем не менее мне нужно понять следующее:
Как я могу получить ServletContext в
doFilter()
метод (для вызова вперед API)getServletContext()
не recignizedДолжен ли я до
call chain.doFilter()
перед форвардом, после переезда или совсем нет? Кроме того, мне нужно позвонитьchain.doFilter()
, если моя проверка прошла или только если она не сработала (потому что в этом случае я не буду продолжать пересылать мою страницу)?
Этот вопрос на самом деле продолжают this thread, быть более очевидным, код может быть что-то вроде:
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);
}
оба ответа были в порядке. Другой был первым. – Spiderman
Храните фильтр FilterConfig во время инициализации и вызывайте FilterConfig.getServletContext() Это мой предпочтительный метод, так как у меня нет сеанса явно: – Gurnard