当前课程知识点:Web后端开发技术 > 第2章 Servlet技术基础 > 2.7 HttpServletRequest接口 > 2.7.1 获取请求报文信息
好
欢迎大家回来继续学习
web后端开发技术
这一小节我们将学习如何获取报文
信息
HttpRequest这个接口它继承于
ServletRequest的接口
它是用于封装HTTP请求的这样一个接口
当一个请求发送给服务器的时候
在Servlet的容器当中
首先会创建一个ServletRequest对象
在Servlet当中进而将它转化为一个
HttpServletRequest对象
那么这是HttpServletRequest的对象的是怎么
产生的
是这样一个过程
那么对于HttpServletRequest接口
它所提供的功能体现在以下几个方面
一个是关于获取请求报文信息的方法
比如获取请求行
请求头请求正文
第2类方法是关于获取网络链接信息
的方法
比如获取用户的IP地址等等
第3类方法是关于获取请求与属性
信息的方法
首先我们介绍一下请求报文
这是一个请求报文的格式
一个请求报文有请求行
请求头和请求正文构成
请求行包含了请求的方法
URI以及协议的版本
然后请求头是由请求字段名和值构成
的一个集合下边请求的正文了
我们看一个事例
这个事例这个是请求行
post的指明了请求的方式是post的方法
然后这是URI
这是他的协议及版本
下边这一部分是请求头的一些数据
一会我们会看一个表格
会对这些数据有一个解释
最下边是发送的请求的正文
这是常见的Http
请求头
请求头
这里面包括了host
connection
content-Length等等很多
的名称
我不一一讲解了
这里面我们说一下几个比较重要的
一个就是content-Length
它指明了消息正文的长度
指的就是请求当中正文包的这部分的
长度
最下边有一个Cookie这个就是说浏览器
在发送请求的时候
它会携带上客户端Cookie的一些信息
请求的报文我们是可以通过某些工具
看到的
比如在我们使用的IE浏览器
firefox和chrome这些
浏览器它都有查看报文的功能
下面我就以firefox为例给大家简单的说
一下查看报文的过程
当前是一个百度的首页
在这首页当中我们右击菜单
右击页面选择查看元素
然后在这里面我们点击网络
点击完网络以后
我们选择左边的一条记录
右边就会看到关于请求的一些信息
这里面我们可以看到消息头
以及Cookie等相关的一些信息
firefox的工具还有很好的
特点
它可以允许用户重新编辑一个请求
进行发送
这是这样一个页面
那么对于请求来讲
我们知道有get的方法
有post的方法
实际上除此之外还有很多的方法
下面的表格把我们常用到的get的方法
和post方法做了一个简单的比较
我简单的给大家介绍一下
对于get的方法
它的数据类型是文本类型
它的数据量是有限制的
是255个字符
然后可见性这块对于get的方法
他是在地址栏里面显示出来的
是可以见到的
这个数据是否缓存
对于get的方法
对于浏览器他要缓存数据的
对于post的方法
它所传递的数据类型是文本
或者是二进制数据
他传输的数据量是没有限制的
这个数据不会在地址栏上面看到
然后它这个数据是不在浏览器当中
缓存的
下面我们看一下如何获取请求行
一些数据
获取请求行的方法
这里面有getMethod
就是你的请求类型是哪种方法
比如说get类型的
还是post类型的
还有获取请求的URI请求的协议
请求的串
QuesyString
下边那是getServletPath
那么这个Servlet的路径
好
我们看一个获取请求行的例子
这是发送的一个请求
我们看到后边有相关的参数
那么这是一个get的请求
我们把这个代码放在这里
看一下它的每个方法返回的值
希望大家能够把获取方法以及对应的
这个请求当中
哪个部分对应起来
第1个是getMethod
那么这是一个get的方法
第二是获取协议
那么这个是HTTP/1.1传输协议
下面是get
requestURI那么这
URI是这样
是从这个位置包括斜线到问号之间的
这部分是URI接下来
是get
QueryString指的就是问号后边的这部分
然后是getServletPath
这个是指的Servlet到达的路径
这个路径也是以斜线开始的
接下来是获得ContextPath
获取请求头
那么获取请求头就指的这部分数据
如何进行获取
那么这里面这个表格列出来了
获取请求头的很多方法
这里我就不一一给大家进行讲解了
通过这个方法的名称
我们就应该知道他是什么样的一个意思
获取请求的正文
就指的是下边的这部分
获取请求正文我们分为两种情况
一种情况是对于get的请求
它实际上是没有正文的
那么对于post的请求它是有正文
那么
在提交post请求的时候
我们编写代码
实际上要注意还有一个放标签当中
还有一个enctype的属性
这个属性是使用哪种编码方式
将表单数据发送给服务器
它有两个数值
那么上面这个数值是默认的
也就说当我们不添加enctype
属性的时候
默认的就是这种情况
下面这个属性用来上传文件时候使用
那么对于post的请求
他在传递数据的时候
正文是怎么发送的呢
实际上它的格式是这样一种格式的
属性 属性值
属性 属性值
然后之间通过I的符号进行相连
这个例子是我们之前看到的一个例子
我们看一下它的报文当中的正文是
什么样子的
这是它的正文
那么这个正文也是我通过
firefox中的报文查看工具所能够
抓取到的一个页面
那么对于正文发送到服务器以后如何
去获取
这是相关的方法
实际上这个方法我们在之前的课程
当中已经非常熟悉了
并且已经熟练的使用过了
这里面包括getParameter
获取指定请求的参数值
还有一个是
getParameterValues获取一组参数值
还有下边getParameterNames
获取请求参数名
下面还有一个方法
这是关于请求正文的相关的方法
那么在开发当中
我们经常会用到前面这三个方法
好
我们这节课就讲到这里
谢谢
谢谢
-1.0 导学
--1.0.1 导学
-1.1 Web应用开发概述
--1.1.3 测试
-1.2 准备Java Web应用开发环境
--1.2.2 测试
-1.3 任务实现:Hello World Web项目
--1.3.2 测试
-1.4 小结
--1.4.1 小结
-本课程所有代码
--课程参考代码
-2.0 导学
--2.0.1 导学
-2.1 Servlet概述
--2.1.3 测试
-2.2 创建Servlet
--2,2,3 作业
-2.3 Servlet应用
--2.3.4 测试
-2.4 任务实现:某高校毕业生信息发布系统-注册与登录(Servlet版)
--2.4.3 测试
-2.5 ServletConfig接口
-2.6 ServletContext接口
-2.7 HttpServletRequest接口
--2.7.5 测验
-2.8 HttpServletResponse接口
--2.8.3 测试
-2.9 任务实现:某高校毕业生信息发布系统-简历添加
--2.9.1 任务实现:某高校毕业生信息发布系统-简历添加
-2.10 小结
-动画演示:Java Web应用服务器处理客户端请求的过程
-3.0 导学
--3.0.1 导学
-3.1 Cookie技术
--3.1.3 测试
-3.2 Session技术
--3.2.2 Session技术-Session技术应用购物车
--3.2.3 测试
-3.3 URL重写与隐藏表单域
--3.3.2 测试
-3.4 任务实现:某高校毕业生信息发布系统-简历修改
--3.4.1 任务实现:某高校毕业生信息发布系统-简历修改
-3.5 小结
--3.5.1 小结
-4.0 导学
-4.1 jsp概述
--4.1.2 测试
-4.2 脚本元素
--4.2.2 测试
-4.3 指令元素
--4.3.2 测试
-4.4 动作元素
--4.4.3 测试
-4.5 内置对象
--4.5.3 测试
-4.6 JavaBean
--4.6.3 测试
-4.7 任务实现:某高校毕业生信息发布系统-首页(JSP版)
--4.7.1 任务实现:某高校毕业生信息发布系统-首页(JSP版)
-4.8 小结
--4.8.1 小结
-5.0 导学
--5.0.2 测试
-5.1 el语法
--5.1.2 测试
-5.2 el隐含对象
--5.2.2 测试
-5.3 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.1 任务实现:某高校毕业生信息发布系统-学生详细信息展示
--5.3.2 测试
-5.4 小结
--5.4.1 小结
-6.0 导学
--6.0.2 测试
-6.1 核心标签库
--6.1.5 测试
-6.2 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.1 任务实现:某高校毕业生信息发布系统-首页(JSTL版)
--6.2.2 测试
-6.3 小结
--6.3.1 小结
-7.0 导学
--7.0_导学
-7.1 过滤器
--7.1.3 测试
-7.2 监听器
--7.2.1.1与ServletContext相关的监听器
--7.2.4 测试
-7.3 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.1 任务实现:某高校毕业生信息发布系统-单态登录
--7.3.2 测试
-7.4 小结
--7.4.1小结
-8.0 导学
--8.0_导学
-8.1 JDBC API
--8.1.2 测试
-8.2 JDBC API访问MySQL基本步骤
--8.2.2 测试
-8.3 任务实现:某高校毕业生信息发布系统-注册与登录
--8.3.1 任务实现:某高校毕业生信息发布系统-注册与登录(JDBC版)
--8.3.2 测试
-8.4 小结
--8.4.1小结
-9.0导学
--9.0导学
-9.1 技术准备
--9.1.5 测试.
-9.2 系统设计
-9.3 系统实现
-9.4 小结
--9.4.1小结




