Java SpringBoot Thymeleaf获取当前页面完整URL地址-获取项目访问地址(根目录、域名)

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

获取当前页面URL的方法

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

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

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

看一下效果

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项目,所以项目工程根目录为/

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写法与上方大致相同

<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.csdn.net/Lott0419/article/details/115215436
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞