java servlet的生命周期_Javaweb学习之servlet生命周期

学习目的

了解Servlet在Http服务器之中的流程职责

掌握Servlet的生命周期(重点)

掌握Http服务器请求对象和响应对象的生命周期

一、Servlet对象生命周期

Servlet对象创建

在一个网站中,所有Servlet接口实现类的实例对象,只能由Http服务器负责额创建,开发人员不能手动创建Servlet接口实现类的实例对象。(开发人员只负责Servlet接口的实现与方法重写)

Servlet对象创建时机

在默认的情况下,Http服务器接收到 对于当前Servlet接口实现类 的第一次请求时,就自动创建这个Servlet接口实现类的实例对象。(只创建一次?还是每次访问该Servlet对象都创建?无论浏览器有多少个用户或者提交多少次请求,对于同一个动态资源文件,只创建一个Servlet对象。)

手动建议Http服务器创建Servlet实例对象

默认情况下,浏览器向服务器发送请求后,Http服务器会自动创建Servlet对象。但也可以通过手动配置,要求Http服务器在启动时自动创建某个Servlet接口实现类的实例对象。(可通过以下代码,将项目发布到服务器进行测试,在控制台查看Servlet的输出信息)

GG

com.yry.controller.GGServlet

mm

com.yry.controller.mmServlet

30

Servlet创建次数

在Http服务器运行期间,一个Servlet接口实现类只能被创建出一个实例对象(不重复创建);在Http服务器关闭时刻,自动将网站中所有的Servlet对象进行销毁。

Servlet对象销毁

无论浏览器提交多少次请求,Http服务器创建了多少个Servlet对象,在Http服务器关闭时,所有的Servlet对象都将会销毁。

Servlet生命流程

浏览器输入URL中Servlet简名 --> Http服务器接收请求 --> Http服务器创建Servlet实例对象 --> 调用Servlet父类HttpServlet的Service()方法 --> 执行Servlet的doGet()或doPost()方法 --> Http服务器关闭 --> Servlet实例对象销毁。

1.1 IDEA快速创建Servlet

描述

在IDEA开发工具中,提供了快速创建Sevrlet的快捷键。

IDEA创建Servlet步骤

在已创建的web项目下 --> 在src目录中右键 --> new --> 最下方选择Sevlet(或creat Servlet) --> 输入Servlet名称 --> 填写Servlet存放的包名和路径 --> 取消左下角的勾选 --> 完成Servlet创建

1aaf2d7aaba1

IDEA创建Servlet.png

管理Servlet对象

在IDEA中快速创建Servlet对象后,IDEA会自动生成一个Servlet接口实现类,并且会自动弹出web.xml文件,用于及时编写Servlet信息交给服务器进行管理

1aaf2d7aaba1

管理Servlet对象.png

二、Http协议包对象

分类

Http请求协议包对象

Http响应协议包对象

特点

请求对象 和 响应对象的生命周期贯穿于一次服务器对浏览器请求的处理过程中,从服务器接收到请求开始,到服务器将响应包返回时结束;

请求对象 和 响应对象相当于用户在服务端的代言人。

2.1 请求对象生命周期

请求对象创建

在Http服务器接收到浏览器发送的Http请求协议包之后,Http服务器自动为当前的Http请求协议包生成 一个请求对象 和 一个响应对象。

请求对象的作用

在Http服务器调用 Servlet实现类重写的doGet() 或 doPost()方法时,负责将 请求对象 和 响应对象作为实参传递到doGet() 或 doPost()方法中,确保doGet() 或 doPost()的正确执行。

请求对象销毁

在Http服务器准备推送Http响应协议包之前(将doGet() / doPost()的执行结果返回),Http服务器会负责将本次浏览器请求关联的 请求对象 和 响应对象销毁。

2.2 响应对象生命周期

响应对象创建

在Http服务器接收到浏览器发送的Http请求协议包之后,Http服务器自动为当前的Http请求协议包生成 一个请求对象 和 一个响应对象。

响应对象的作用

在Http服务器调用 Servlet实现类重写的doGet() 或 doPost()方法时,负责将 请求对象 和 响应对象作为实参传递到doGet() 或 doPost()方法中,确保doGet() 或 doPost()的正确执行。

响应对象销毁

在Http服务器准备推送Http响应协议包之前(将doGet() / doPost()的执行结果返回),Http服务器会负责将本次浏览器请求关联的 响应对象销毁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值