我有一个用EmailVerification
url-pattern映射的/ev/*
Servlet。
http://example.com/ev/ce52320570
如何在Servlet中获取此ce52320570
部分内容?
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String vid = ""; // Here I need to get the id from the URL
}
答案 0 :(得分:31)
考虑映射到EmailVerification
的Servlet(称为/ev/*
):
网址
http://example.com/ev/ce52320570
会触发EmailVerification
servlet吗?
是。在Servlet版本2.5和3.0(可能更早)中,如果你像*
那样用/ev/*
映射它,它就会得到子路径。
如何获取网址
ce52320570
的http://example.com/ev/ce52320570
部分?
request.getRequestURI()
会以String
为您提供所请求的网址,例如/ev/ce52320570
。
request.getPathInfo()
在/ev/
之后获取(如果存在)所有内容。
/ev/123
的请求中,getPathInfo()
会给您/123
。同样,对/ev/some/other
,getPathInfo()
的请求会为您提供/some/other
。
getRequestURI()
和getPathInfo()
只为您提供 路径 。如果您需要获取查询参数,即?
之后的那些/ev/something?query1=value1&other=123
,只有request.getQueryString()
只返回query1=value1&other=123
部分 request.getParameter(parameterName)
如果您需要 特定 查询参数的值。
.getParameterValues()
请求here中的网址部分的更多示例。
答案 1 :(得分:1)
使用request.getRequestURI()
并删除不需要的内容,即request.getRequestURI().replace("/ev/");