У меня есть приложение для веб-приложений весны. Я хотел бы поместить некоторые общие части кода, которые будут выполняться в начале каждого HTTP-запроса, чтобы я мог проверять наличие спама. Я настроил DispatcherServlet в своем web.xml, что означает, что DispatcherServlet является первой точкой входа для каждого HTTP-запроса. Мой вопрос заключается в том, что DispatcherServlet предоставляет какой-либо метод, который будет выполняться первым, а затем элемент управления переходит к запрошенному контроллеру аннотаций?Весна ДиспетчерСервер, код для выполнения перед ним
ответ
ИМО эта функциональность будет принадлежать HandlerInterceptor
(ref docs).
Я согласен с Дейвом. То, что вы ищете, является фильтром/перехватчиком для всех запросов на отображаемом URL-адресе. Традиционно это было сделано с использованием ServletFilter. Здесь вы помещаете свой собственный код. Например.
public FooFilter implements ServletFilter {
@Override
void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException,
ServletException {
// My Custom check for spam.
}
}
После того как вы внедрили свой собственный код в ServletFilter, все, что вам нужно, настройте его в web.xml.
<filter>
<filter-name>FooFilter</filter-name>
<filter-class>com.foo.servlet.filters.FooFilter</filter-class>
<init-param>
<param-name>test-param</param-name>
<param-value>Test parameter.</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>FooFilter</filter-name>
<url-pattern>/*</url-pattern> <!-- The URL to be filtered. -->
</filter-mapping>
Его самый простой способ настроить фильтр и перехватить ваши веб-запросы.
При использовании Spring framework вы хотели бы использовать HandlerInterceptor Sping. Очень хорошая публикация, когда нужно использовать то, что можно найти here.
Надеюсь, это поможет.
Сервлет-фильтры будут работать, потому что фильтры всегда выполняются перед любым сервлетом. Фильтры будут выполняться до сервлета диспетчера, но перехватчики будут выполняться после сервлета диспетчера и перед фактическим обработчиком!
- 1. Свойства пересылки для log4j перед ним загружается
- 2. код после выполнения $ .each перед выполнением функции
- 3. страница освежает перед ним полносоставные кода JQuery
- 4. Манипулирование DisplayMember перед ним отображается
- 5. C# код выполнения для GUI перед выполнением процессов блокировки
- 6. Zend Framework - последний код для выполнения перед составлением макета
- 7. Весна mvc-вызов функции перед функциями контроллера
- 8. Оверлей можно щелкнуть через элемент перед ним
- 9. Вставить код перед сборкой
- 10. Перенаправление с www перед ним не работает?
- 11. Наведите фоном с изображением перед ним
- 12. Как запустить файл с периодом перед ним?
- 13. Журнал ошибок Apache перед ним умирает
- 14. Код выполнения перед каждой функцией Вызов класса в C++
- 15. Через phpScript для выполнения функции popen(). Что случилось с ним
- 16. Весна Интеграция - Ждите условия перед обработкой Сообщение
- 17. Код java для выполнения команд
- 18. Асинхронный код для последовательного выполнения
- 19. Весна - Код запуска с зависимой инъекцией
- 20. Как напечатать строку выполнения текста, когда какой-то текст был перед ним в python 3?
- 21. BeforeScenarioBlock для выполнения только перед оператором «Дано»
- 22. угловых JS, весна MVC Угловой JS код не работает весна
- 23. ошибка во время выполнения SQL-запроса (весна)
- 24. Выполнения анимации перед загрузкой ссылки
- 25. Весна решающего компонента во время выполнения
- 26. Весна IoC: условная инъекция во время выполнения
- 27. Весна, добавляющая бобы во время выполнения
- 28. Весна Интеграция с ftp для выполнения операции с использованием файла
- 29. Код выполнения Javascript-кода
- 30. window.onload выполнения перед веб загружается
Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). - [Из обзора] (/ review/low-quality-posts/11304032) – semirturgay
Как и я, я заключил два вопроса, которые отвечают на вопрос: один до сервлера диспетчера можно использовать фильтры, а после диспетчера и до контроллеров можно использовать перехватчиков весны, разве это недостаточно? –