java中获取url路径类似的有好几个方法。如:

request.getServletPath()
request.getContextPath()
request.getRequestURI()
request.getRequestURL()
request.getPathInfo()
request.getServletContext().getRealPath("/")

用spring boot(用来测试web程序真是太方便了)试了一下,先贴代码吧:

@RequestMapping("/say/{param}/{type}")
	public String say(HttpServletRequest request, @PathVariable("param") String param,
			@PathVariable("type") String type) {
		// 如果url是(http://localhost:8080/hello/say/lifeng/1),需要获取出后两个字符串
		String servletPath = request.getServletPath();
		String contextPath = request.getContextPath();
		String requestURI = request.getRequestURI();
		StringBuffer requestURL = request.getRequestURL();
		String pathInfo = request.getPathInfo();
		String realPath2 = request.getServletContext().getRealPath("/");
		String str = "servletPath是:" + servletPath + "。contextPath是:" + contextPath
				+ "。requestURI是:" + requestURI + "。requestURL是:" + requestURL + "。pathInfo是:"
				+ pathInfo +"。realPath2是:"+realPath2;
		return str;
	}

测试结果:

java后台获取前台的值 java获取当前页面的url_应用程序


getServletPath()返回的是请求资源路径。

getContextPath()返回的是应用程序路径。

getRequestURI()返回的是uri路径(相当于ContextPath+ServletPath)。

getRequestURL()返回的是绝对路径。

getServletContext().getRealPath()返回的是应用程序在本地计算机上的的位置。

上面这些方法的路径都不包含参数。

还有一些其他的方法:

//获取请求方法
request.getMethod();        //返回"GET
//获取请求协议
request.getScheme();        //返回"http"
//获取请求域名(IP地址);
request.getServerName();    //返回"localhost"
//获取请求端口号
request.getServerPort();    //返回"8080"