При локальной разработке имеет значение, является ли контекст «/» или «/ appname /»? - PullRequest
2 голосов
/ 25 февраля 2010

при локальной разработке, имеет ли значение, если контекст является '/' или '/ appname /'?

Предполагается, что вы развернете на http://www.example.com

Мне нравится, когда мой локальный URL:

http://localhost:8080/

но просто хочу знать, является ли URL

http://localhost:8080/appname/

если это имеет какое-то значение?

Ответы [ 4 ]

2 голосов
/ 25 февраля 2010

Вы можете использовать HttpServletRequest.getContextPath(), чтобы выяснить, где приложение развернуто во время выполнения, поэтому в теории это возможно.

На практике никто этого не делает, и путь к контексту предполагается в ссылках, изображениях, действиях с формами и т. Д.

1 голос
/ 25 февраля 2010

Вы должны быть осторожны при использовании корневого контекста, поскольку при кодировании существует возможность предположить, что вы находитесь в корневом контексте, и в результате веб-приложение будет работать только в корневом контексте. Используя именованный контекст, вы избегаете этой возможности.

1 голос
/ 25 февраля 2010

Я бы сказал, если вы планируете развернуть с Apache (или что-то еще, что обрабатывает первоначальный HTTP-запрос) перед вашим сервером приложений (tomcat?), Это не имеет значения: конфигурация Apache разберут этот аспект .

Если вы планируете работать только с вашим сервером приложений, а перед ним нет HTTP-сервера, я бы сказал, что имеет значение , так как вы хотите убедиться, что ваше приложение доступно на www.example .com, а не example.com/appname.

Под словом «имеет значение» я подразумеваю, что внутренняя конфигурация вашего сервера совпадает с производственной конфигурацией, чтобы избежать неприятных сюрпризов в будущем; Вы, конечно, можете настроить локально по-другому для производства.

Вам также необходимо помнить: у вас будет несколько веб-приложений Java, работающих на одном сервере приложений? Если это так, спланируйте, как вы будете их использовать.

1 голос
/ 25 февраля 2010

Если вы развертываете в корне, то HttpServletRequest#getContextPath() всегда будет преобразовываться в /.

Ваш интерес - pathinfo . В фильтре вы можете показать его по HttpServletRequest#getRequestURI(), а в сервлете также по HttpServletRequest#getPathInfo().

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