Подтвердить что ты не робот

Разница между ContextLoaderListener и RequestContextListener?

У меня есть googled, но не нашел удовлетворительного ответа, было бы здорово, если бы вы, ребята, могли объяснить разницу между ContextLoaderListener и RequestContextListener.

4b9b3361

Ответ 1

contextloaderlistener: - Слушатель загрузки для запуска Spring root WebApplicationContext. Просто делегирует ContextLoader.

requestcontextlistener: - Этот слушатель в основном предназначен для использования с сторонними сервлетами, например. JSF FacesServlet. В пределах Spring собственной веб-поддержки обработка DispatcherServlet вполне достаточна.

Ответ 2

Я читал, что если вы используете ContextLoaderListener, вам не нужен RequestContextListener или Filter. Он регистрирует текущий запрос (атрибуты) в локальном потоке, чтобы его можно было использовать с помощью прокси-серверов.

Ответ 3

Если вы используете веб-контейнер Servlet 2.5, запросы, обработанные за пределами Spring s DispatcherServlet (например, при использовании JSF или Struts), вам нужно для регистрации org.springframework.web.context.request.RequestContextListener Сервлет. Для Servlet 3.0+ это можно сделать программно с помощью Интерфейс WebApplicationInitializer. В качестве альтернативы или для старых контейнеров добавьте следующие объявление в веб-приложениях web.xml файл:

    <listener>
        <listener-class>
            org.springframework.web.context.request.RequestContextListener
        </listener-class>
    </listener>

</web-app>

Ответ 4

ContextLoaderListener - это загрузочный прослушиватель для запуска Spring root WebApplicationContext.

RequestContextListener используется, когда вы хотите, чтобы атрибуты в потоке запроса оставались в живых.

Здесь следует отметить, что наследуемый флаг установлен в false в RequestContextListener.

http://docs.spring.io/spring/docs/4.0.6.RELEASE/javadoc-api/org/springframework/web/context/request/RequestContextListener.html

Итак, если вы хотите, чтобы дочерний поток наследовал атрибуты запроса, вы должны попробовать использовать RequestContextFilter или RequestContextHolder.

http://docs.spring.io/spring/docs/4.0.6.RELEASE/javadoc-api/org/springframework/web/filter/RequestContextFilter.html