【问题标题】:Getting request URL in a servlet在 servlet 中获取请求 URL
【发布时间】:2011-05-01 16:54:47
【问题描述】:

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

方法一:

String url = request.getRequestURL().toString();

方法二:

url = request.getScheme()
      + "://"
      + request.getServerName()
      + ":"
      + request.getServerPort()
      + request.getRequestURI();

上述两种方法是否有可能给出两个不同的 URL?

【问题讨论】:

    标签: java servlets


    【解决方案1】:

    getRequestURL() 在方案为http 时省略端口,或者当方案为https 时为443 时省略端口。

    因此,如果您只想获取整个 URL,请使用 getRequestURL()。但是,这不包括 GET 查询字符串。您可能希望按如下方式构建它:

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

    【讨论】:

      猜你喜欢
      • 2013-01-05
      • 2013-05-06
      • 2011-02-28
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      相关资源
      最近更新 更多