У меня есть вопросы по отправке запроса в сервлете.
Подводя итог, я развернул веб-сайт на общедоступном сервере, что вынуждает меня иметь шаблон URL, такой как / servlet / *, для всех моих сервлетов (я слышал, что в любом случае это была конфигурация по умолчанию).
Проблема в том, что при разработке приложения у меня не было таких ограничений, и поэтому я не создавал его для поддержки таких шаблонов ... теперь мое приложение просто не работает из-за URL-адресов. Допустим, сервлет объявлен и сопоставлен так:
<servlet>
<servlet-name>MainController</servlet-name>
<servlet-class>controller.controllers.MainController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MainController</servlet-name>
<url-pattern>/servlet/MainController</url-pattern>
</servlet-mapping>
Проблема в том, что я использую этот код в своем сервлете:
this.getServletContext()
.getRequestDispatcher(destination).forward(request, response);
Параметр destination
всегда равен *.jsp
в корне моего веб-приложения, например "/index.jsp", "home.jsp" и т. Д.
Когда я использовал свое приложение на локальном хосте, у моего сервлета был следующий шаблон URL:
<url-pattern>/MainController</url-pattern>
и все работало нормально, потому что диспетчер запросов всегда искал .jsp в корне веб-приложения. Но теперь, используя мой новый шаблон url, он пытается подключить все мои файлы .jsp к сервлету / * точно так же, как servlet/index.jsp
, и, конечно же, бросить мне
HTTP Status 404 - /servlet/index.jsp
Я прекрасно понимаю, почему он так себя ведет, поскольку, если я хорошо помню, сервлеты не могут выходить за пределы их текущего контекста.
Но мой вопрос: я обречен? Разве нет способа сообщить диспетчеру запросов перейти к .jsp, который я спрашиваю, не заботясь о шаблоне "/ servlet / *"?
Мне абсолютно необходим объект запроса, потому что я работаю с ним перед его пересылкой.
Я действительно не знаю, как пройти через это, поэтому я ищу здесь некоторую помощь в надежде, что кто-то уже сталкивался с этой ситуацией или, по крайней мере, имеет более ясное видение ситуации, чем я.
Спасибо, что нашли время прочитать это и помогли мне.
С уважением,
Sampawende.