HttpServletRequest对象,请求行、请求头、请求体
HttpServletRequest
公共接口类HttpServletRequest继承自ServletRequest。客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。对象包含了客户端请求信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。HttpServletResponse继承了ServletResponse接口,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie。
request就是将请求文本封装而成的对象,所以通过request能获得请求文本中的所有内容,请求头、请求体、请求行 。
1.请求行(https://baike.baidu.com/item/HTTP请求/10882159)
String getRemoteAddr()
返回发送请求的客户端或最后一个代理的Internet协议**(IP)地址**。对于HTTP servlets,与cgi变量remote_addr的值相同。
返回:
包含发送请求的客户端的IP地址的字符串String getMethod()
返回用于发出此请求的HTTP方法的名称,例如GET、POST或PUT。与CGI变量REEST方法的值相同。
返回:
指定用于发出此请求的方法的名称的字符串String getQueryString()
返回路径后请求URL中包含的查询字符串。如果URL没有查询字符串,则此方法返回空值。与CGI变量查询字符串的值相同。
返回:
包含查询字符串的字符串,如果URL不包含查询字符串,则为空。该值未被容器解码。String getRequestURI()
返回从协议名到HTTP请求第一行查询字符串的该请求的URL部分。Web容器不解码此字符串。
返回:
包含从协议名到查询的URL部分的字符串String getRequestURL()
重新构造客户端用于发出请求的URL。返回的URL包含协议、服务器名称、端口号和服务器路径,但不包含查询字符串参数。
如果此请求已使用RequestDispatcher.Forward(javax.servlet.servletRequest、javax.servlet.servletResponse)转发,则重建的URL中的服务器路径必须反映用于获取RequestDispatcher的路径,而不是客户端指定的服务器路径。
由于此方法返回的是StringBuffer,而不是字符串,因此可以轻松修改URL,例如附加查询参数。
此方法对于创建重定向消息和报告错误很有用。
返回:
包含重建的URL的StringBuffer对象String getServletPath()
返回此请求的URL中调用servlet的部分。此路径以“/”字符开头,包括servlet名称或servlet的路径,但不包括任何额外的路径信息或查询字符串。与cgi变量script_name的值相同。
如果用于处理此请求的servlet使用“/”模式匹配,则此方法将返回空字符串(“”)。
返回:
包含被调用servlet的名称或路径的字符串,如请求URL中指定,已解码,或者如果用于处理请求的servlet使用“/”模式匹配,则为空字符串。String getContextPath()
返回请求URI中指示请求上下文的部分。上下文路径总是位于请求URI的第一位。路径以字符开头,但不以字符结尾。对于默认(根)上下文中的servlet,此方法返回“”。容器不解码此字符串。
servlet容器可能通过多个上下文路径匹配上下文。在这种情况下,此方法将返回请求使用的实际上下文路径,并且可能与servletcontext.getContextPath()方法返回的路径不同。servletContext.getContextPath()返回的上下文路径应被视为应用程序的第一个或首选上下文路径。
返回:
指定请求URI的一部分的字符串,该部分指示请求的上下文
String remoteAddr = request.getRemoteAddr();String remoteUser = request.getRemoteUser();String method = request.getMethod();String contextPath = request.getContextPath();String servletPath = request.getServletPath();String queryString = request.getQueryString();String requestURI = request.getRequestURI();StringBuffer requestURL = request.getRequestURL();
0:0:0:0:0:0:0:1nullGET/JdbcTemplate_war_exploded/aage=18&name=jack/JdbcTemplate_war_exploded/ahttp://localhost:8999/JdbcTemplate_war_exploded/a
2.请求头
key-value
请求头(Request Header)
请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。
重要方法
String getHeader(String name)//返回指定请求头的值
String getHeader(String name)以字符串形式返回指定请求头的值。如果请求不包含指定名称的头,则此方法返回空值。如果有多个具有相同名称的头,此方法将返回请求中的第一个头。头名称不区分大小写。您可以将此方法用于任何请求头。
参数:
名称-指定头名称的字符串
返回:
包含请求头的值的字符串,如果请求没有该名称的头,则为空。Enumeration<String> getHeaderNames()
返回此请求包含的所有头名称的枚举。如果请求没有头,则此方法返回空枚举。
某些servlet容器不允许servlet使用此方法访问头,在这种情况下,此方法返回空值
返回:
与此请求一起发送的所有头名称的枚举;如果请求没有头,则为空枚举;如果servlet容器不允许servlet使用此方法,则为空
枚举遍历类似迭代器
Enumeration<String> headers = request.getHeaderNames();while (headers.hasMoreElements()){System.out.println(headers.nextElement());}
结果
host
connection
cache-control
upgrade-insecure-requests
user-agent
sec-fetch-mode
sec-fetch-user
accept
sec-fetch-site
accept-encoding
accept-language
cookie
3.请求体
post方法才有请求体
HttpServletRequest对象,请求行、请求头、请求体相关推荐
- Request —— 获取请求行数据 获取请求头数据 获取请求体数据
1. request对象和response对象的原理 1. request和response对象是由服务器创建的.我们来使用它们 2. request对象是来获取请求消息,respon ...
- HTTP请求行、请求头、请求体详解
HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE.HEAD. ...
- web核心 4-response响应对象 servletContext对象 响应行响应体 请求转发 重新定向 从服务器下载与上传资源 切换验证码 网站统计访问次数
内容介绍 1 ServletContext对象2 response响应对象 ServletContext对象 概述 ServletContext:servlet的上下文对象(全局管理者) 一个项目有且 ...
- 【校招面试 之 网络】第3题 HTTP请求行、请求头、请求体详解
1.HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE.HEA ...
- 通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解
一. HTTP请求报文解剖 HTTP Request :HTTP请求 Request Line:请求行 Header:请求头 Request Body:请求体 HTTP请求报文由3部分组成(请求行+请 ...
- HTTP请求报文(请求行、请求头、请求体)
HTTP协议 1.简介 HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...
- HTTP请求报文(请求行、请求头、请求体),响应报文
转载:https://www.cnblogs.com/lmh001/p/9928517.html 一.HTTP请求报文 HTTP请求报文由3部分组成(请求行+请求头+请求体): 请求行: ①是请求方法 ...
- HTTP请求行、请求头、请求体解
HTTP请求行.请求头.请求体详解 HTTP响应头和请求头信息对照表 HTTP请求方法对照表 HTTP状态码对照表 HTTP请求报文解剖 HTTP Request :HTTP请求 Request Li ...
- 请求消息详解(请求头、get、post、请求体)
简述 我们在servlet的service方法中有两个参数,分别是ServletRequest和ServletResponse,如果想掌握这两个参数,我们必须对请求消息和响应消息有个深入的理解. 请求 ...
最新文章
- 如何正确地运用人工智能模型?
- python文件的后缀名-python文件后缀是什么
- 【pmcaff1220】三个案例教你如何玩转跨界
- Java HttpClient使用小结
- linux apache php显示源码,linux 源码安装apache PHP 问题
- 《Web异步与实时交互——iframe AJAX WebSocket开发实战》—— 1.4 内容安排
- 数据结构——归并排序
- main函数argc,argv操作
- MTK 驱动开发(29)---TP 驱动移植
- 【Kafka】Kafka Schema Registry 原理
- IIS装好了无法访问localhost
- 关于页面 reflow 和 repaint
- 可视化修改SQL服务器名字,修改sql server服务器名称
- TarBase:有实验数据支持的miRNA靶基因数据库
- VS2019项目自动包含bin或obj文件夹的问题
- C语言中abs和fabs的区别
- 基于芯科Host-NCP解决方案的Zigbee 3.0 Gateway技术研究(三)-移植到ESP32平台(1)
- 分享---蔡康永情商课201集全
- Java:实现​lz4格式解压缩算法(附完整源码)
- 【CSAPP+电流+梯度下降法】九阳神功-速览1