Servlet获取URL地址

阅读更多
Servlet获取URL地址这里来说说用Servlet获取URL地址。在HttpServletRequest类里,有以下六个取URL的函数:

getContextPath 取得项目名
getServletPath 取得Servlet名
getPathInfo 取得Servlet后的URL名,不包括URL参数
getRequestURL 取得不包括参数的URL
getRequestURI 取得不包括参数的URI,即去掉协议和服务器名的URL

具体如下图:

Servlet获取URL地址_第1张图片


相对应的函数的值如下:

getContextPath:/ServletTest
getServletPath:/main
getPathInfo:/index/testpage/test
getRequestURL:http://localhost:8080/ServletTest/main/index/testpage/test
getRequestURI:/ServletTest/main/index/testpage/test

以上内容转自https://my.oschina.net/idiotsky/blog/198352

获取完整(包含参数)的地址、及相对地址的方法:
	/**
	 * 获取Servlet的全地址,包括参数等信息
	 * 
	 * @param request
	 *            作者:wallimn
* 时间:2017年2月21日
* 联系:[email protected]
*/ protected String getRequestURL(HttpServletRequest req) { StringBuffer url = req.getRequestURL(); Map map = req.getParameterMap(); boolean bFirst = true; for (Entry entry : map.entrySet()) { for (String v : entry.getValue()) { if (bFirst == true) { url.append("?"); bFirst = false; } else { url.append("&"); } url.append(entry.getKey()).append("=").append(v); } } return url.toString(); } /** * 返回短地址,不包含协议、主机、端口、上下文等信息。 * * @param request * 作者:wallimn
* 时间:2017年2月21日
* 联系:[email protected]
*/ protected String getRequestShortURL(HttpServletRequest req) { StringBuffer url = new StringBuffer(); String str = req.getServletPath(); if (str != null) url.append(req.getServletPath()); str = req.getPathInfo();// 这个值有时为null if (str != null) url.append(req.getPathInfo()); Map map = req.getParameterMap(); boolean bFirst = true; for (Entry entry : map.entrySet()) { for (String v : entry.getValue()) { if (bFirst == true) { url.append("?"); bFirst = false; } else { url.append("&"); } url.append(entry.getKey()).append("=").append(v); } } return url.toString(); }
  • Servlet获取URL地址_第2张图片
  • 大小: 29.3 KB
  • 查看图片附件

你可能感兴趣的:(servlet)