day14 HTTPServlet

news/2025/2/7 0:49:45/

HTTP协议

含义:是TCP、IP协议之上的应用层协议

作用:规定浏览器和服务器数据之间的交互格式

注意:该协议的端口为80,Tomcat是8080

http的特点

1.无状态,无记忆

2.“1.0”版本需要多次请求和响应,1.1一次连接后可以处理多个请求

3.基于请求和响应

4.简单快速,灵活

请求:浏览器访问服务器的过程

响应:服务器响应数据给浏览器

浏览器发送请求(request)的结构极其内容

请求行:请求的方式,地址,协议,版本

请求头:有键值对组成

请求体:浏览器向服务其发送想要什么数据的请求,只有post有请求体,get没有请求体,可以在html文件中设置method=“post”进行规定

请求方发post和get的区别

postget
地址栏发送的数据不在地址栏显示发送的数据会在地址栏显示
大小没有限制不能大于2k
安全性安全不安全,
缓存没有使用缓存使用了缓存

服务器响应(response)数据的结构和内容

响应行:响应的方式,地址,协议,版本

响应头:有键值对组成,服务器返回给浏览器的

响应体:服务器发送数量给浏览器

常见的状态码及其含义

状态码含义
200服务器正常响应
302页面进行跳转
304服务器告诉浏览器使用本地缓存
404请求的资源找不到
405servlet执行doget和dopost方法
500通常是java代码出问题

servlet(处理请求和响应)

含义:是一种动态的web资源,用于连接服务器

总结:servlet运行在web服务器,由java编写的程序,用于连接后端

servlet的开发方式(资源名称使用/开头)

先要导入javax.api.jar包

将一个类实现Servlet接口,并重写里面的方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cyu60bzo-1684894010717)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411191155237.png)]

方法1.写web.xml文件

<servlet><!--名字一般使用实现类的名字命名--><servlet-name>HellowServlet</servlet-name><!--tomcat根据servlet的全限定名创建对象--><servlet-class>cn.wolfcode._01_hellow.HellowServlet</servlet-class>
</servlet><servlet-mapping><servlet-name>HellowServlet</servlet-name><!--给外界提供一个访问当前servlet的资源名称注意:必须使用/开头--><url-pattern>/hellow</url-pattern>
</servlet-mapping>

使用浏览器对别名进行访问:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9f9yPDYa-1684894010720)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411191624722.png)]

方式2:在类名上方添加WebServlet注解,里面要加"/"

注解中的name可以不用,默认使用的类名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyROz1VP-1684894010721)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411191918823.png)]

Servlet的生命周期[单例,使用的缓存池]

**Servlet创建对象:**tomcat第一次访问时创建,只有一次

**初始化操作(init)😗*只初始化一次

**运行操作(service)😗*可以多次处理请求和响应

**销毁操作(destory)😗*正常关闭服务器时销毁Servlet对象

servelet的请求流程(接口)

**1.请求:**http://localhost:80/life

**2.localhost:**主机

**3.80端口,**tomcat

4.上下文路径:/,表示当前项目名称是空,可以省略,不存在404

5.资源路径:/life,确定唯一的web资源(静态的,动态的),不存在404

6.启动服务器:加载相关的配置文件(注解/xml),资源路径与类的全限定名一致

7.检查当前Sservlet是否创建:使用的缓存

8.根据资源名称找到对应类的全限定名

9.使用反射创建对象

10.创建ServletConfig对象,调用init方法,完成初始化操作

11.创建ServletRequest和ServletRespons对象,调用service方法队请求的客户端做出响应

servelet的请求流程(继承)

1.找到AServlet对象

2.Tomcat调用service中的(ServletRequest servletRequest, ServletResponse servletResponse)

3.AServlet中没有该方法,找父类(HTTPServlet)中的service并执行

4.调用service(HttpServletRequest req,HttpServletReponse resq)方法

5.如果AServlet中没有重写该方法,则执行父类中的方法,此时需要AServlet重写doGet和doPost方法,否则报错405

6.如果AServlet重写了该方法,则执行AServlet中的service方法

Servlet 的继承体系

HttpServlet 继承 GenericServlet

GenericServlet实现Servlet ,ServletConfig

**GenericServlet作用:**用于处理各种协议发出的请求和响应

HttpServlet的作用: 专门用于处理HTTP协议发送的请求和响应

ServletConfig 对象

作用:用于解决Servlet初始化时硬编码问题

使用**servletConfig.getInitParameter(“对象”)**进行解决

有两种方法获取ServletConfig对象

方法1.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YuFB5rMC-1684894010722)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411201147032.png)]

方法2.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mEX5SM4E-1684894010722)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411201242369.png)]

loadOnStartup 属性(取值越小越先加载:1-10)

作用:在启动web服务器的时候就创建对象,减少第一个用户访问时的等待时间

方式1:在web-xml中进行配置,下面1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nbgcGatD-1684894010723)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411214349987.png)]

面进行添加loadOnStartup = 1,里面的注解名需要添加value

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGzUgFfc-1684894010724)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230411214407679.png)]

细节

1.一个 中写多个

2.一个 对应多个

3.通配符映射"*"

格式说明
/* ,/目录名/*匹配该目录下所有的地址
*.扩展名匹配某个扩展名结尾的访问地址

注意:中不能叫default和jsp

格式说明
/* ,/目录名/*匹配该目录下所有的地址
*.扩展名匹配某个扩展名结尾的访问地址

注意:中不能叫default和jsp


http://www.ppmy.cn/news/76924.html

相关文章

9:00进去,9:05就出来了,这问的也太变态了···

从外包出来&#xff0c;没想到死在另一家厂子了。 自从加入这家公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到5月一纸通知&#xff0c;所有人不许加班&#xff0c;薪资直降30%&#xff0c;顿时有吃不起饭的赶脚。 好在有个兄弟内推…

如何选对适合你的FPGA?快速掌握选型技巧!

FPGA厂家和芯片型号众多&#xff0c;在开发过程中&#xff0c;特别是新产品新项目时&#xff0c;都会面临FPGA选型的问题。 如何选择出适合的FPGA型号非常关键&#xff0c;需要评估需求、功能、成本、存储器、高速收发器等各种因素&#xff0c;选出性能与成本平衡的FPGA芯片。…

微服务环境搭建(spring cloud Alibaba)(一)

模块: 商品模块, 订单模块, 用户模块 一. 1. 技术选型以及准备工作 maven : 3.8.8版本 数据库: MySQL 8.0.32 持久层: springData , jpa 其他java环境 : SpringCloud Alibaba 技术栈 2. 模块 设计 springcloud- alibaba 父工程 shop - common 公共模块 [ 实体类 ] sh…

USB设备连接和枚举

https://space.bilibili.com/489340606/channel/collectiondetail?sid896957 以下图片来自于沁恒微电子蔡亮工程师的讲课&#xff0c;对USB开发入门很有好处。 1. USB主设备和从设备 2. USB设备按功能分类 3. USB功能设备内部架构 可以有多个配置&#xff0c;但同一个时间只…

计算机操作系统(慕课版)第二章课后题答案

一、简答题 (1)什么是前趋图&#xff1f;试画出下面四条语句的前趋图. S1&#xff1a;axy&#xff1b; S2&#xff1a;bz1&#xff1b; S3&#xff1a;ca-b&#xff1b; S4&#xff1a;wc1&#xff1b; 答&#xff1a;前趋图(Precedence Graph)是一个有向无循环图&#xff0c;…

上海国家会计学院刘梅玲:事项法会计可以有力地促进业财融合

近日&#xff0c;由用友主办的「智能会计 价值财务」2023企业数智化财务创新峰会上海站圆满举办。来自知名院校的专家学者、央国企等大型企业财务领路人以及权威财经媒体相约上海国家会计学院&#xff0c;一同见证“智能会计”新时代的到来&#xff0c;并肩探讨“价值财务”新主…

加拿大鹅Q4营收增长超30%,后续如何拿下更多“信任票”?

羽绒服行业正处在一个大混战的时代。有的品牌依托强势单品出海逆袭&#xff1b;有的品牌通过狂追当下Z世代的喜好&#xff0c;推翻经典设计&#xff1b;也有品牌“放下架子”在工厂忙起了特惠直播。在赛道愈发拥挤的背景下&#xff0c;羽绒服行业正在经历“地位”洗牌。 目前&…

linux文件系统,有关链接

最近在看文件系统相关,什么ext2早期的文件系统模型,stat系统调用,opendir,link,等等系统调用部分,本节记录一下有关软硬链接的内容 目录 文件系统 文件存储流程 软链接文件与硬链接文件 软/硬链接文件的区别 <