перенаправление запросов на основе тела кота - PullRequest
2 голосов
/ 06 июля 2011

У меня есть приложение tomcat 7. Я могу получать запросы из внешних источников.

Большинство из них называют мой запрос следующим образом:

http://localhost:8080/MyWeb/exRequest

, и япостроить сервлет с шаблоном URL внутри приложения MyWeb.

Однако один внешний источник должен отправить запрос следующим образом:

http://localhost:8080/

и в теле:

<xml name="test" />

Поскольку я не хочу объявлять общий сервлель (например, по умолчанию для tomcat), поскольку это означает, что любой запрос должен проходить через мой сервлет, я подумал изменить index.jsp ROOT для перенаправления на мой сервлет.

Это лучший вариант?

Можно ли создать сервлет по умолчанию, который будет вызываться, только если в теле есть специальный параметр?

EDITED

Обратите внимание, что я получаю запросы к localhost: 8080, а не localhost: 8080 / MyWeb - обычно это tomcat, а не определенное веб-приложение

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Вы не можете выбрать сервлет для вызова на основе тела запроса, но вы можете установить сервлет в качестве "welcome-файла" в вашем файле web.xml.

<servlet>
  <servlet-name>index</servlet-name>
  <servlet-class>com.y.MyWelcomeServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>index</servlet-name>
  <url-pattern>/index</url-pattern>
</servlet-mapping>

<welcome-file-list>
  <welcome-file>index</welcome-file>
</welcome-file-list>

Если вы хотите сохранить функцию "welcome" в каком-либо существующем index.jsp, ваш сервлет может перенаправлять запросы без правильного XML в теле в файл index.jsp, расположенный в каталоге WEB-INF.

1 голос
/ 06 июля 2011

Нет, но вы можете создать Filter и перенаправлять / перенаправлять на определенный сервлет всякий раз, когда запрос удовлетворяет определенным условиям.

Если вы используете сервлет 3.0, сопоставьте его с @WebFilter, в противном случае используйте web.xmlи <filter> + <filter-mapping>.Вы должны отобразить его на выполнение перед сервлетом по умолчанию.

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