Java 获取servlet中的请求URL

Java 获取servlet中的请求URL,java,servlets,Java,Servlets,我想知道下面两种在servlet中获取请求URL的方法之间的区别 方法1: String url = request.getRequestURL().toString(); 方法2: url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getRequestURI(); 上述两种方法是

我想知道下面两种在servlet中获取请求URL的方法之间的区别

方法1:

String url = request.getRequestURL().toString();
方法2:

url = request.getScheme()
      + "://"
      + request.getServerName()
      + ":"
      + request.getServerPort()
      + request.getRequestURI();
上述两种方法是否有可能给出两个不同的URL?

当方案为http时,端口为80,或者当方案为https时,端口为443,则忽略端口

因此,只要使用
getRequestURL()
,就可以获得整个URL。但是,这不包括GET查询字符串。然后,您可能希望按照以下方式构造它:

StringBuffer requestURL = request.getRequestURL();
if (request.getQueryString() != null) {
    requestURL.append("?").append(request.getQueryString());
}
String completeURL = requestURL.toString();