Я работаю с приложением весны 2.5, которое имеет один DispatcherServlet. Приложение также будет интегрировано с услугами Джерси для REST.Весенний фильтр, называемый Multiple times
Я пытаюсь отфильтровать каждый запрос в приложении. Filter/OncePerRequestFilter (я пробовал оба) работают нормально, но кажется, что приложение вызывает doFilter/doInternalFilter несколько раз для одного запроса. Попробовав еще три разных запроса, оказалось, что страницы, в которых есть больше файлов стилей/скриптов, способствуют увеличению количества вызовов функций.
Я делаю что-то неправильно с фильтрующей стандартной архитектурой. Есть ли что-нибудь нужно изменить или добавить к применению ..
public class UnfepiRequestFilter extends OncePerRequestFilter{
@Override
protected void doFilterInternal (HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
System.out.println("Start filtering");
filterChain.doFilter(request, response);
System.out.println("Done Filtering");
}
}
web.xml файл:
<filter>
<filter-name>filterHeader</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>filterHeader</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApp-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<display-name>myApp</display-name>
<servlet>
<servlet-name>myApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myApp</servlet-name>
<url-pattern>*.htm</url-pattern>
<url-pattern>*.action</url-pattern>
<url-pattern>*.json</url-pattern>
</servlet-mapping>
В основном это перенаправить или отклонить запросы пользователей в определенное время (для работ по техническому обслуживанию или временно делая любую услугу недоступной). Есть ли способ предотвратить эти множественные вызовы на запрос в фильтр. Любая помощь была бы оценена.
Вы решили эту проблему? – Nitish