ServletRequest找不到getRequestURL()方法
时间: 2023-10-09 14:14:22 浏览: 103
如果在 ServletRequest 对象中找不到 getRequestURL() 方法,可能是因为该方法是 HttpServletRequest 接口的方法,而 ServletRequest 接口中并没有定义该方法。因此,可以将 ServletRequest 类型的对象强制转换为 HttpServletRequest 类型的对象,然后再调用 getRequestURL() 方法。示例如下:
```java
if (request instanceof HttpServletRequest) {
StringBuffer url = ((HttpServletRequest) request).getRequestURL();
// ...
}
```
另外,如果使用的是 Servlet 2.5 或更早版本的规范,可能会出现该方法不存在的情况。此时,可以使用 getScheme()、getServerName()、getServerPort() 和 getRequestURI() 方法来拼接出完整的 URL 地址。示例如下:
```java
StringBuffer url = new StringBuffer();
String scheme = request.getScheme();
int port = request.getServerPort();
url.append(scheme); // http 或 https
url.append("://");
url.append(request.getServerName());
if ((scheme.equals("http") && port != 80) || (scheme.equals("https") && port != 443)) {
url.append(":").append(port);
}
url.append(request.getRequestURI());
```
阅读全文