今天写代码,要在servlet客户端请求的路径,于是专门找了下。在这里总结下,备忘
请求为: http://localhost:8081/ReverseGeoCoding/o.jsp?i=113.91919,22.54545
HttpServletRequest
这两个都能获取客户端请求的路径,只是范围不同
getRequestURI 请求获得的是 相对路径得到的值是:
/ReverseGeoCoding/o.jsp
getRequestURL 获取的是完整路径:
http://localhost:8081/ReverseGeoCoding/o.jsp
顺便,今天还用到了转发请求,参数也一起转发出去,这里就有一个获取所有参数的办法。
请求为: http://localhost:8081/ReverseGeoCoding/o.jsp?i=113.91919,22.54545
HttpServletRequest
String uri = request.getRequestURI();
StringBuffer url = request.getRequestURL();
这两个都能获取客户端请求的路径,只是范围不同
getRequestURI 请求获得的是 相对路径得到的值是:
/ReverseGeoCoding/o.jsp
getRequestURL 获取的是完整路径:
http://localhost:8081/ReverseGeoCoding/o.jsp
顺便,今天还用到了转发请求,参数也一起转发出去,这里就有一个获取所有参数的办法。
StringBuilder sbExpandUrl = new StringBuilder();
sbExpandUrl.append(expandUrl);
sbExpandUrl.append("/o.jsp?");
Enumeration paramValues = request.getParameterNames();
while (paramValues.hasMoreElements()) {
String param = (String) paramValues.nextElement();
String value = request.getParameter(param);
sbExpandUrl.append(param);
sbExpandUrl.append("=");
sbExpandUrl.append(value);
sbExpandUrl.append("&");
}
response.sendRedirect(sbExpandUrl.toString());