getRemotePort() 、getServerPort()、getLocalPort()
request.getServerPort()
、request.getLocalPort()
和 request.getRemotePort()
这三个方法都是获取与HTTP请求相关的端口信息
的
客户端(如浏览器)通过某个随机分配的网络连接端口(7070
)
向服务器发送HTTP请求( http://example.com:8080/app/somepage.jsp
)连接到服务器端口(8080
)。
反向代理或负载均衡场景下,请求可能从端口(8080
)转发到另一个端口(9090
)进行处理。
request.getRemotePort(): 发起请求的客户端所使用的端口号 7070
request.getServerPort(): 浏览器发送请求时连接到的服务器端口 8080
request.getLocalPort(): 当前处理请求的服务器上的本地端口 9090
getContentLength():
getContentLength(): 获取客户端发送到服务器的HTTP请求主体内容的字节数(长度) 如果请求没有正文内容(如GET),或者请求头中没有包含Content-Length
字段,则该方法返回 -1
getContentType(): 获取客户端发送数据的MIME
类型(Multipurpose Internet Mail Extensions
)。 如 "text/html"
、"application/json"
或 "multipart/form-data"
等,如果请求没有指定内容类型,那么该方法将返回 null
。
request.getHeader(“name”): 获取请求头中指定名称的单个值,多个值时通常是返回最先出现的那个值 String contentLength = request.getHeader("Content-Length");
request.getHeaders(“name”): 获取请求头中所有具有指定名称的值 gree
request.getHeaderNames():
Enumeration<String> encodings = request.getHeaders("Accept-Encoding");
while (encodings.hasMoreElements()) {
String encoding = encodings.nextElement();
}
request.getIntHeader(“name”): 专门用来获取整数值类型的请求头,若请求头的值不能转换为有效的整数,则抛出NumberFormatException异常。 int contentLength = request.getIntHeader("Content-Length");
request.getDateHeader(“name”): 专门用来获取日期类型的请求头值,它会将请求头的值解析为毫秒级别的UNIX时间戳。如果请求头的值不能转换为有效日期,则抛出IllegalArgumentException异常。 long date = request.getDateHeader("Date");