С приложением сервлетов Java (частью, но не общей суммой Java EE - Java Enterprise Edition) приложения имеют сервлеты под так называемым «контекстным путем».Этот «контекстный путь» должен быть указан для сопоставления любого запроса приложению.
Apache Tomcat делает этот путь контекста довольно простым в настройке, либо через server.xml (не рекомендуется), либо через отдельные файлы контекста (рекомендуется).Оба способа указывают, где найти каталог веб-приложения (распакованный архив веб-приложения или файл WAR) и где разместить его на сервере по контекстному пути.
Как уже сказал Влад, если вы развернете свойфайл war в каталоге веб-приложений Tomcat и при автоматической установке (я полагаю, он включен по умолчанию), Tomcat распакует .war в каталог под этим местоположением и использует имя войны в качестве пути к контексту.Его пример файла war называется «helloapp.war», поэтому с настройками по умолчанию он получит любой запрос на http://localhost:8080/helloapp
, потому что его путь к контексту становится helloapp.
Конечно, после отправки запроса напуть контекста, что-то должно соответствовать этому.Вот тут и начинает играть web.xml.Хотя в качестве сопоставителя можно использовать корень (каждый запрос к пути контекста обрабатывается одним и тем же процессом), обычно используется шаблон (например, * .do, * .action и т. Д.), Так что отдельные запросыhelloapp легко различим (по моему мнению, его легче читать и отлаживать http://localhost:8080/helloapp/login.action
и http://localhost:8080/helloapp/doSomethingElse.action
, чем то, что распознается через некоторые параметры и тот же путь http://localhost:8080/helloapp
)
Итак, путь к контекстув вашем приложении, то ваше приложение должно выполнить поиск в файле web.xml, чтобы увидеть, куда отправить фактический запрос.В вашем примере, если ваше веб-приложение было развернуто по контекстному пути helloapp, для доступа к нему с надлежащим отображением вы просто добавили бы / hello, поэтому запрос становится http://localhost:8080/helloapp/hello