Проблема Tomcat с узором URL - PullRequest
       2

Проблема Tomcat с узором URL

1 голос
/ 08 февраля 2012

В моем web.xml моего простого приложения у меня есть

<servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/Hai</url-pattern>
</servlet-mapping>

и теперь, если у меня есть

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

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

<url-pattern>/Projekt/*</url-pattern>

и попробуйте войти в Projekt / Hai. У меня не спрашивают пароль, почему?

1 Ответ

4 голосов
/ 08 февраля 2012

URL-шаблон, который вы указываете в web.xml, всегда является шаблоном, относящимся к контекстному пути веб-приложения. Таким образом, /Projekt/* означает все URL-адреса в /Projekt, в контекстном пути приложения .

Поскольку ваше приложение развернуто на /Projekt, это означает, что этот шаблон URL соответствует URL http://localhost:8080/Projekt/projekt/Hai. Он не соответствует http://localhost:8080/Projekt/Hai, поскольку этот URL при записи относительно пути к контексту равен /Hai, что не соответствует шаблону /Projekt/*.

Хорошее практическое правило: ничто в коде или дескрипторе развертывания веб-приложения никогда не должно зависеть от пути контекста, выбранного для развертывания приложения. Все должно всегда указываться относительно этого пути контекста.

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