获取访问 URL 信息

1
2
3
4
5
6
7
8
String serverName = request.getServerName();
// 192.168.0.99

String port = request.getServerPort();
// 8080

String context = request.getContextPath();
// scm-web

获取参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 排除分页、排序等参数
public StringBuilder getRequestParams(HttpServletRequest request, String methodName) {
StringBuilder requestPara = new StringBuilder(methodName);
Enumeration parameterNames = request.getParameterNames();
while(parameterNames.hasMoreElements()){
String paramName = (String)parameterNames.nextElement();
String values = request.getParameter(paramName);
if(!StringEx.isNull(values) && !"page".equals(paramName) && !"rows".equals(paramName)
&& !"sort".equals(paramName) && !"order".equals(paramName)) {
requestPara.append(values);
}
}
return requestPara;
}

获取客户端、服务器信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
request.getServerName()
返回被请求服务器域名,如果没有域名则返回IP地址:10.0.4.214

request.getServerPort()
返回被请求服务器端口:8081

request.getRemoteHost()
返回远程主机(客户端)域名,没有域名就返回IP:123.10.23.12,如果服务端和客户端在同一台机子上且使用了localhost进行访问,那么此处得到的将是0:0:0:0:0:0:0:1,这是由于host文件导致的。

request.getRemoteAddr()
返回远程主机(客户端)IP地址:123.10.23.12,同上

request.getLocalName()
返回本地(服务端)域名,没有域名就返回IP:10.0.4.214,如果服务端和客户端在同一台机子上且使用了localhost进行访问,那么此处得到的将是0.0.0.0,这是由于host文件导致的。

request.getLocalAddr()
返回本地(服务端)域名,没有域名就返回IP:10.0.4.214,同上

request.getLocalPort()
返回本地(服务端)端口:8081

InetAddress.getLocalHost().getAddress()
返回本地(服务端)IP(数组形式):[10, 0, 2, 88]
此处需要注意:如果服务器用的是windows那么可以正确获取到IP,但,如果服务器是linux,则只能获取到[127, 0, 0, 1] 。

request.getRequestURL()
获取请求的网址全路径:https:``//10``.0.4.214:8081``/vasportal/index``.action

request.getRequestURI()
获取工程名和请求路径:vasportal``/index``.action

request.getContextPath()
获取当前请求的上下文(可以理解为工程名): ``/vasportal

request.getServletContext().getRealPath(``"/temp"``)
获取项目中webapp下的temp文件夹

request.getServletPath()
得到当前服务器servlet映射的路径:index.action

request.getProtlcol()
得到当前请求的协议版本:HTTP1.1

request.getScheme()
得到当前请求的协议类型:https