Весна: Как перенаправить не диспетчерские запросы диспетчеру? - PullRequest
0 голосов
/ 10 июня 2011

У меня стандартное отображение сервлетов для сервлета Dispatcher - /app/*. У меня есть контроллер, который обрабатывает /notify запросов. Мне нужно выставить этот контроллер как сервлет на http://[SERVER]/notify. Как просто перенаправить все запросы с http://[SERVER]/notify на http://[SERVER]/app/notify (но без других инструментов, таких как urlrewrite )? Я знаю, что могу написать простой сервлет вместо него и установить отображение сервлетов в web.xml, но хочу иметь контроллер, а не сервлет;)

<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/app/*</url-pattern>
</servlet-mapping>

Контроллер:

@Controller
public class PaymentNotificationController {

    @RequestMapping("/notify")
    void notify() { ... }
}

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Не сбрасывайте со счетов urlrewrite - для его выполнения требуются только наносекунды, а на то, чтобы сделать его максимально быстрым, ушли годы.

Если вы бросите другой сервлет Spring MVC, вы получитевторой контекст приложения, который может быть нежелателен.DispatcherServlet - это фронт-контроллер, среди которого должен быть один, так что да, вы можете поместить столько, сколько захотите, но они почти как маленькие мини-приложения внутри вашей WAR.

1 голос
/ 10 июня 2011

Вы можете поместить другой сервлет-диспетчер в

<servlet-mapping>
    <servlet-name>Notification Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>/notify/*</url-pattern>
</servlet-mapping>

и настроить его для того же XML-файла, что и ваш главный сервлет-диспетчер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...