写项目的时候,有个需求
要求显示当前页面的URL以及根目录(也就是获取localhost,如果是域名则获取域名)

获取当前页面URL的方法

使用javax.servlet.http
假设访问地址为:localhost:4000/Project/index.html
其中Project是项目工程,index.html是页面

1
2
3
4
5
6
7
8
getRequestURL()  
// 获取当前页面的完整路径(不包含请求参数,需要加上getQueryString()才能获取请求参数)
getRequestURI()
// 返回除去Localhost(域名或者ip)部分的路径 注意这和上面是不同的一个是`URL`一个是`URI`
getContextPath()
// 返回工程名,如果工程映射为/,返回"空"
getServletPath()
// 返回除去host和工程名部分的路径

还有很多方法我这里就不过多

看一下效果

1
2
3
4
getRequestURL()  // http://localhost:4000/Project/index.html
getRequestURI() // /Project/index.html
getContextPath() // /Project
getServletPath() // /index.html

实际代码演示

请求地址:http://127.0.0.1/article/bbbbb?name=abc
由于我建的是SpringBoot项目,所以项目工程根目录为/

1
2
3
4
5
6
7
8
9
10
11
12
System.out.println("getRequestURI:"+request.getRequestURI());
System.out.println("getRequestURL:"+request.getRequestURL());
System.out.println("getContextPath:"+request.getContextPath());
System.out.println("getServletPath:"+request.getServletPath());
System.out.println("getQueryString:"+request.getQueryString());
System.out.println("根目录:"+request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort());
//getRequestURI:/article/bbbbb
//getRequestURL:http://127.0.0.1/article/bbbbb
//getContextPath:
//getServletPath:/article/bbbbb
//getQueryString:name=abc
//根目录:http://127.0.0.1:80

Thymeleaf写法与上方大致相同

1
2
3
4
5
<div th:text="${#httpServletRequest.requestURL}"></div>
<!-- http://127.0.0.1/article/bbbbb -->

<div th:text="${#httpServletRequest.getScheme() + '://' + #httpServletRequest.getServerName() + ':' + #request.getServerPort()}"></div>
<!-- 根目录:http://127.0.0.1:80 -->
文章作者: Lete乐特
文章链接: https://blog.lete114.top/article/Thymeleaf-GetUrl.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Lete乐特's Blog
  • alipay
  • wechat

评论