我想知道以下两种在servlet中获取请求URL的方法之间的区别。
方法1:
String url = request.getRequestURL().toString();
方法2:
url = request.getScheme()
+ "://"
+ request.getServerName()
+ ":"
+ request.getServerPort()
+ request.getRequestURI();
上述两种方法是否有可能提供两种不同的URL?
getRequestURL()
在80岁时省略了端口,而方案是http
,或者当它是443而方案是https
时省略。
所以,如果你想要的只是获取整个URL,只需使用getRequestURL()
。但这不包括GET查询字符串。您可能希望按如下方式构造它:
StringBuffer requestURL = request.getRequestURL();
if (request.getQueryString() != null) {
requestURL.append("?").append(request.getQueryString());
}
String completeURL = requestURL.toString();