1. Введение
DispatcherServlet
играет важную роль в приложениях Spring и обеспечивает единую точку входа для приложения. Принимая во внимание, что контекстный путь определяет URL-адрес, по которому конечный пользователь будет получать доступ к приложению.
В этом руководстве мы узнаем о различиях между контекстным путем и путем сервлета.
2. Контекстный путь
Проще говоря, контекстный путь — это имя, с помощью которого осуществляется доступ к веб-приложению. Это корень приложения. По умолчанию Spring Boot обслуживает содержимое по пути корневого контекста («/»).
Таким образом, к любому загрузочному приложению с конфигурацией по умолчанию можно получить доступ как:
http://localhost:8080/
Однако в некоторых случаях мы можем захотеть изменить контекст нашего приложения. Существует несколько способов настроить контекстный путь , и application.properties
— один из них. Этот файл находится в папке src/main/resources
.
Настроим его с помощью файла application.properties :
server.servlet.context-path=/demo
В результате главная страница приложения будет:
http://localhost:8080/demo
Когда мы развертываем это приложение на внешнем сервере, эта модификация помогает нам избежать проблем с доступностью.
3. Путь сервлета
Путь сервлета представляет собой путь главного DispatcherServlet
. DispatcherServlet является настоящим Servlet
и наследуется от базового
класса HttpSerlvet .
Значение по умолчанию аналогично контекстному пути, т.е. («/»): `` `` ****
spring.mvc.servlet.path=/
В более ранних версиях Boot это свойство находилось в классе ServerProperties
и называлось server.servlet-path =/
.
Из версии 2.1.x это свойство перемещено в класс WebMvcProperties
и переименовано в spring.mvc.servlet.path =/
.
Давайте изменим путь сервлета:
spring.mvc.servlet.path=/foreach
Поскольку сервлет принадлежит контексту сервлета, изменение пути контекста также повлияет на путь сервлета . Итак, после изменений путь сервлета приложения станет http://localhost:8080/demo/foreach.
Другими словами, если таблица стилей использовалась как http://localhost:8080/demo/style.css,
теперь она будет использоваться как http://localhost:8080/demo/foreach/style.css.
Обычно мы не настраиваем DispatcherServlet самостоятельно. Но если нам действительно нужно это сделать, мы должны указать путь к нашему пользовательскому DispatcherServlet
.
4. Вывод
В этой быстрой статье мы рассмотрели семантику пути контекста и пути сервлета. Мы также увидели, что представляют собой эти термины и как они работают вместе в приложении Spring.