我想知道下面两种在servlet中获取请求URL的方法的区别。
方法一:
String url = request.getRequestURL().toString();
方法二:
url = request.getScheme()
+ "://"
+ request.getServerName()
+ ":"
+ request.getServerPort()
+ request.getRequestURI();
上述两种方法是否有可能给出两个不同的 URL?
最佳答案
getRequestURL()
当方案为 http
时为 80 或方案为 https
时为 443 时省略端口。
所以,如果您只想获取整个 URL,只需使用 getRequestURL()
。但是,这不包括 GET 查询字符串。您可能希望按如下方式构建它:
StringBuffer requestURL = request.getRequestURL();
if (request.getQueryString() != null) {
requestURL.append("?").append(request.getQueryString());
}
String completeURL = requestURL.toString();
关于java - 在 servlet 中获取请求 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4040094/