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

Отображение сервлета: url-шаблон для URL-адресов с завершающим слэшем

У меня проблема, связанная с отображением сервлета. У меня есть следующее в web.xml:

<servlet>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>test.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

Если я получаю доступ к http://localhost:<port>/MyApp/HelloWorld, вызывается сервлет HelloWorldServlet.

Я также хочу, чтобы мой сервиз отвечал на http://localhost:<port>/MyApp/HelloWorld/. Как я могу достичь этого эффекта? Я разрабатываю NetBeans, но это не позволяет мне создать шаблон, заканчивающийся /.

4b9b3361

Ответ 1

После того, как вы добавили свой шаблон в свой <url-pattern>

<url-pattern>/HelloWorld/*</url-pattern>

Вы можете получить дополнительный путь, связанный с URL, используя HttpServletRequest.getPathInfo().

например.

http://localhost:<port>/MyApp/HelloWorld/one/

Результат будет

/one/

Из JavaDoc:

Возвращает любую дополнительную информацию о пути связанный с URL-адресом клиента отправлен, когда он сделал этот запрос. дополнительная информация о пути следования сервлета, но предшествует запросу string и начнется с символа "/" характер.

Ответ 2

Используйте подстановочный знак. Вы можете перенаправить весь трафик на определенный URL-адрес на тот же сервлет. Например, вы можете добавить следующее:

<servlet-mapping>
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/HelloWorld/*</url-pattern>
</servlet-mapping>

Это приведет к перенаправлению URL-адреса с косой чертой в исходный сервлет.

Одна мысль - это перенаправит что-либо на этот шаблон URL-адреса на сервлет. Если вы хотите, чтобы другой URL-адрес прошел через этот URL-адрес, вы должны создать сервлет, который будет перенаправлен на правильный URL-адрес (просмотрев указанный URL-адрес). Кроме того, вы можете использовать фреймворк, который обеспечивает отображение для вас.