Ber*_*own 9 java servlets request
我使用不同的服务器和配置.获取方案的最佳java代码方法是什么:// host:[port is not port 80].
这是我使用的一些代码,但不知道这是否是最好的方法.(这是伪代码)
HttpServletRequest ==请求
String serverName = request.getServerName().toLowerCase();
String scheme = request.getScheme();
int port = request.getServerPort();
String val = scheme + "://" + serverName + ":" port;
Run Code Online (Sandbox Code Playgroud)
这样val返回:
http(s)://server.com/
要么
http(s)://server.com:7770
基本上,除了查询字符串和'上下文'之外,我需要一切.
我也考虑使用URL:
String absURL = request.getRequestURL();
URL url = new URL(absURL);
url.get????
Run Code Online (Sandbox Code Playgroud)
dfa*_*dfa 19
试试这个:
URL serverURL = new URL(request.getScheme(), // http
request.getServerName(), // host
request.getServerPort(), // port
""); // file
Run Code Online (Sandbox Code Playgroud)
编辑
隐藏http和https上的默认端口:
int port = request.getServerPort();
if (request.getScheme().equals("http") && port == 80) {
port = -1;
} else if (request.getScheme().equals("https") && port == 443) {
port = -1;
}
URL serverURL = new URL(request.getScheme(), request.getServerName(), port, "");
Run Code Online (Sandbox Code Playgroud)