HttpServletRequest

HttpServletRequest代表的是我们的响应对象HttpServletRequest概述service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是Htt

大家好,又见面了,我是你们的朋友全栈君。

代表的是我们的响应对象

HttpServletRequest概述

service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是HttpServletRequest,HttpServletRequest是ServletRequest的子接口,功能和方法更加强大,今天我们学习HttpServletRequest。

request的运行流程

<span role="heading" aria-level="2">HttpServletRequest

 

 

 当你访问某个虚拟路径的时候,也就会发送请求给服务器,这个时候客户端会把你的请求,以及客户端的信息,按照http协议的样式封装为http请求(请求行,请求头,请求体)

发送给服务器,然后服务器是先是有tomcat引擎接收到这个请求,第一步先是解析你的请求资源,从你的虚拟路径种找到你servlet的完整的包名加类名第二步在把你的请求信息封装成

一个reqquest对象,与此同时创建一个空的response对象(所以这个时候这个request是有信息的,response是没有的),然后因为我们得到了完整的包名和类名所有走第三步 通过反射

创建一个servlet对象,并且调用service方法,把你的resqust和response以实参的方式传入到你的service方法的形参中,在service方法中我们可以用reques的方法获得请求行,头,体

也可以用response的方法设置相应行,头,体,这个response.getwrite.write()往你的缓冲区里写,写完以后tocat引擎会检测到你service方法结束了,当你service方法结束后tomcat会把你的

response缓冲区的信息按照http协议的样式封装成相应头,相应行,相应体,然后发送给你的客户端游览器,然后你的游览器接受到你的http相应后解析http相应现实页面

通过request获得请求行

<span role="heading" aria-level="2">HttpServletRequest

 

 

<span role="heading" aria-level="2">HttpServletRequest

 

 

 <span role="heading" aria-level="2">HttpServletRequest

 

 

 运行后:

<span role="heading" aria-level="2">HttpServletRequest

 

 

还有要先写一个jsp的表头 在webcontion里

<span role="heading" aria-level="2">HttpServletRequest

 

 

 其中这些

 <span role="heading" aria-level="2">HttpServletRequest

 

 

 这个比较关键 其他了解就好

通过request获得请求头

<span role="heading" aria-level="2">HttpServletRequest

 

 

 

<span role="heading" aria-level="2">HttpServletRequest

 

 

referer头的作用:获取该访问的的来源

做防盗链

<span role="heading" aria-level="2">HttpServletRequest

 

 

做一个防盗链例子:

首先创建一个jsp文件

<span role="heading" aria-level="2">HttpServletRequest

 

 创建一个servlet

 <span role="heading" aria-level="2">HttpServletRequest

 

 

叫RefererSerlvet

然后

<span role="heading" aria-level="2">HttpServletRequest

通过request获得请求体

 <span role="heading" aria-level="2">HttpServletRequest

 

 请求体只有post请求的时候才会有

<span role="heading" aria-level="2">HttpServletRequest

 

 

 测试实例:

现在webContion里创建

一个jsp

然后写一个表单

<span role="heading" aria-level="2">HttpServletRequest

 

 然后在

<span role="heading" aria-level="2">HttpServletRequest

 

<span role="heading" aria-level="2">HttpServletRequest

 

 运行后:

<span role="heading" aria-level="2">HttpServletRequest

 

 其中getparameter方法是根据k或的一个参数

<span role="heading" aria-level="2">HttpServletRequest

 

 

<span role="heading" aria-level="2">HttpServletRequest

 

 是获得一个字节数组的请求参数

<span role="heading" aria-level="2">HttpServletRequest

 

 <span role="heading" aria-level="2">HttpServletRequest

 

 是获得所有的请求参数

<span role="heading" aria-level="2">HttpServletRequest

 

 无论是get还是post请求 都获得请求参数

解决中文乱码问题:
<span role="heading" aria-level="2">HttpServletRequest

 

post请求

 <span role="heading" aria-level="2">HttpServletRequest

 

 gei请求:

<span role="heading" aria-level="2">HttpServletRequest

 

 解决单个请求参数的乱码问题

以后百分之99。9的表单提交都是post请求 所以只记住post请求的解决乱码问题就好

如果是最新的服务器的话 服务器直接就可以解决, 我们以后要学的框架也有拦截器也可以处理乱码问题

request的其他功能

<span role="heading" aria-level="2">HttpServletRequest

 

 和之前的一样的 存值 取值 删除值

注意:request域的作用范围:一次请求中

(1)request完成请求转发

<span role="heading" aria-level="2">HttpServletRequest

 

 <span role="heading" aria-level="2">HttpServletRequest

 

 请求转发特点:

1.请求的服务器1次

2.url地址栏不发生变化

3.servlet01里存的值 ,servlet02也能取到。

配合requse域使用:

首先在创建两个servlet

<span role="heading" aria-level="2">HttpServletRequest

 

 <span role="heading" aria-level="2">HttpServletRequest

 

 

<span role="heading" aria-level="2">HttpServletRequest

 

 <span role="heading" aria-level="2">HttpServletRequest

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154849.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何建立爬虫代理ip池「建议收藏」

    如何建立爬虫代理ip池「建议收藏」目录一、为什么需要建立爬虫代理ip池二、如何建立一个爬虫代理ip池原文地址:https://www.cnblogs.com/TurboWay/p/8172246.html一、为什么需要建立爬虫代理ip池在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制的,在某段时间内,当某个ip的访问量达到一定的阀值时,该ip会被拉黑、在一段时…

    2022年5月15日
  • wing是什么_分段计价的数学题

    wing是什么_分段计价的数学题给定一个由 n 行数字组成的数字梯形如下图所示。梯形的第一行有 m 个数字。从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形的顶至底的路径。规则 1:从梯形的顶至底的 m 条路径互不相交。规则 2:从梯形的顶至底的 m 条路径仅在数字结点处相交。规则 3:从梯形的顶至底的 m 条路径允许在数字结点相交或边相交。对于给定的数字梯形,分别按照规则 1,规则 2,和规则 3 计算出从梯形的顶至底的 m 条路径,使这 m 条路径经过的数字总和最大。输入格式第 1

    2022年8月11日
  • python open函数返回值_open函数 · intermediate-python · 看云

    python open函数返回值_open函数 · intermediate-python · 看云#open函数#`open`函数[open](http://docs.python.org/dev/library/functions.html#open)函数可以打开一个文件。超级简单吧?大多数时候,我们看到它这样被使用:~~~f=open(‘photo.jpg’,’r+’)jpgdata=f.read()f.close()~~~我现在写这篇文章的原因,是大部分时间我看到`ope…

    2022年5月9日
  • 华为静态路由配置[通俗易懂]

    华为静态路由配置[通俗易懂]静态路由静态路由是由管理员手动配置和管理的路由,静态路由配置简单,因此,被广泛应用于结构简单网络中,静态路由还可以实现负载均衡与路由备份。拓扑PC1位于192.168.1.0网段,它的IP是192.168.1.2,网关是192.168.1.1,掩码255.255.255.0。PC2位于192.168.2.0网段,它的IP是192.168.2.2,网关是192.168.2.1,掩码255….

    2022年9月25日
  • shell训练营 Day6「建议收藏」

    shell训练营 Day6「建议收藏」shell训练营 Day6

    2022年4月21日
  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!「建议收藏」

    python安装第三方库方法1、引言2、pip手动安装2.1在线安装2.1.1pipinstall2.1.2指定版本安装2.2离线安装2.3设置国内源2.4卸载与升级2.4.1卸载2.4.2升级3、pip.main自动安装3.1pipmain安装3.2os安装4、总结1、引言续上一篇《Python3:我低调的只用一行代码,就导入Python所有库!》,小鱼发现,别说,还真有不少懒人~~不知道是不是都跟小鱼一样,把剩下的时间来学(撩)习(妹)。为了能让体现小鱼在懒上的造

    2022年4月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号