在servlet中获取请求URL
我想知道在servlet中获取请求URL的下面两种方法之间的区别。
方法1:
String url = request.getRequestURL().toString();
方法2:
url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getRequestURI();
上述两种方法有没有可能给出两个不同的URL?
当scheme为http
, getRequestURL()
省略端口,当scheme为https
时,端口为443。
所以,只要使用getRequestURL()
就可以获得整个URL。 但是,这不包括GET查询string。 你可能想要如下构造它:
StringBuffer requestURL = request.getRequestURL(); if (request.getQueryString() != null) { requestURL.append("?").append(request.getQueryString()); } String completeURL = requestURL.toString();