一尘不染

Java HttpServletRequest完成URL

java

我有一个HttpServletRequest对象。

如何获取导致此调用到达我的servlet的完整且准确的URL?

或至少尽可能准确,因为可能会重新生成某些东西(可能是参数的顺序)。


阅读 276

收藏
2020-03-18

共1个答案

一尘不染

HttpServletRequest有以下几种方法:

  • getRequestURL() -在查询字符串分隔符之前返回完整URL的一部分 ?
  • getQueryString() -在查询字符串分隔符之后返回完整URL的一部分 ?
    因此,要获取完整的URL,只需执行以下操作:
public static String getFullURL(HttpServletRequest request) {
    StringBuilder requestURL = new StringBuilder(request.getRequestURL().toString());
    String queryString = request.getQueryString();

    if (queryString == null) {
        return requestURL.toString();
    } else {
        return requestURL.append('?').append(queryString).toString();
    }
}
2020-03-18