request.requestURL
时间: 2024-10-20 13:19:46 浏览: 14
`HttpServletRequest` 类提供了几种方法来获取请求的 URL 或其组成部分。其中,`request.getRequestURL()` 方法返回的是完整的 URL,包括协议(如 HTTP/HTTPS)、主机名、端口号以及应用路径。例如:
```java
String requestUrl = request.getRequestURL().toString();
// 如果请求地址为 http://localhost:8080/CarsiLogCenter_new/idpstat.jsp,则输出:http://localhost:8080/CarsiLogCenter_new/idpstat.jsp
```
`request.getRequestURI()` 返回的是 URL 的相对路径部分,不包括协议、主机名和端口号,只保留应用路径和可能存在的查询参数。例如:
```java
String requestUri = request.getRequestURI();
// 对于上面的示例,输出:/CarsiLogCenter_new/idpstat.jsp
```
`request.getContextPath()` 和 `request.getServletPath()` 分别返回应用的上下文路径和当前请求的Servlet路径,它们组合起来构建了`request.getRequestURI()`。
如果你只想获取URL的基本形式(不带查询字符串),可以先调用`getRequestURI()`再去除查询字符串,或者直接使用`request.getRequestURL().substring(0, request.getRequestURL().indexOf('?'))`获取不含查询字符串的部分。
阅读全文