Нет, у вас это полностью в ваших руках. Он не обязательно называется своим именем, он называется url-pattern
. Вы можете назвать это как угодно, например /pages/*
будет запускать сервлет всякий раз, когда вы вызываете http://example.com/pages/foo.jsp
или http://example.com/pages/foo
(что, в свою очередь, возвращает информацию о пути обратно на request.getPathInfo()
, чтобы вы могли определить, какое действие предпринять и / или куда направить запрос). Или *.page
, который запускает сервлет всякий раз, когда вы вызываете http://example.com/foo.page
(который, в свою очередь, возвращает URI на request.getRequestURI()
).
Для предварительной обработки запросов (когда кто-то запрашивает страницу для просмотра) вы обычно используете метод doGet()
. Для постобработки запросов (после отправки формы POST) обычно используется метод doPost()
.
Вы можете создать столько сервлетов, сколько захотите, например, RegisterServlet
прослушивание /register
, которое поддерживается register.jsp
в качестве вида и LoginServlet
прослушивание /login
и login.jsp
в качестве вида и так далее. Вы можете скрыть JSP от прямого доступа, поместив их в /WEB-INF
, чтобы пользователи были вынуждены вызывать их через сервлет.
В мире MVC обычно существует способ прослушивания только одного сервлета на определенном url-pattern
, который называется Front Controller . Например, в Sun JSF есть FacesServlet
, который запускается всякий раз, когда вызывается URL, соответствующий по умолчанию *.jsf
или /faces/*
. Например, в Apache Struts есть ActionServlet
, который по умолчанию прослушивает *.do
. Они определяют, какое действие предпринять и / или какое представление (файл JSP) отображать, основываясь на URL-адресе, параметрах запроса и / или сопоставлениях. Однако вы можете изменить эти значения по умолчанию url-pattern
s. Вы даже можете изменить url-pattern
по умолчанию JspServlet
в servlercontainer web.xml
, который по умолчанию прослушивает *.jsp
. Однако рекомендуется придерживаться разумного и стандартизированного url-pattern
.
Может быть интересно знать, что любые другие «неопределенные» шаблоны URL-адресов покрываются сервлетом «по умолчанию». Проверьте сервлет-контейнер web.xml
, вы увидите один сервлет, который прослушивает /
и, таким образом, фактически обслуживает все . Он также управляет отображением списков директой. Например, в Tomcat он называется DefaultServlet
и описан здесь .