Ответ 1
Рассмотрение сервлета (называемого EmailVerification
), отображаемого на /ev/*
:
Будет ли URL
http://example.com/ev/ce52320570
запускать сервлетEmailVerification
?
Да. В версиях Servlet версии 2.5 и 3.0 (возможно, раньше) он получит подпуть, если вы сопоставляете его с *
, например /ev/*
, как и вы.
Как я могу получить эту
ce52320570
часть URLhttp://example.com/ev/ce52320570
?
-
request.getRequestURI()
вы получите запрошенный URL какString
, например/ev/ce52320570
. -
request.getPathInfo()
получает вас (если существует) все после/ev/
.- Итак, в запросе
/ev/123
,getPathInfo()
предоставит вам/123
. Точно так же запрос/ev/some/other
,getPathInfo()
даст вам/some/other
.
- Итак, в запросе
-
request.getQueryString()
следует использовать, если вам нужна часть параметров запроса URL-адреса.- Имейте в виду, что
getRequestURI()
иgetPathInfo()
предоставляют вам только запрошенный путь. Если вам нужно получить параметры запроса, то есть те, что после?
, например/ev/something?query1=value1&other=123
, толькоrequest.getQueryString()
вернут частьquery1=value1&other=123
.
- Имейте в виду, что
-
request.getParameter(parameterName)
, если вам нужно значение конкретного запроса параметра.- Прибегать к
.getParameterValues()
, если это многозначный параметр
- Прибегать к
Дополнительные примеры частей URL в запросе здесь.