Servlet的本质及生命周期相关

1.Servlet简介

是用于 java 编写的服务器端程序,其使用 java servlet API,当客户机发送请求到服务器时,服务器可以将请求信息发送给 servlet,并让 servlet 建立起服务器返回给客户机的响应。当启动 web 服务器 or 客户机第一次请求服务时,可以自动装入 servlet,装入后,servlet 继续运行直到其他客户机发出请求。

2.Servlet容器的响应请求的过程

①Servlet引擎检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。

装载并创建该Servlet的一个实例对象:调用该Servlet的构造器

调用**Servlet实例对象的**init()方法。

④创建一个用于封装请求的ServletRequest对象和一个代表响应消息的ServletResponse对象,然后调用**Servlet的**service()方法并将请求和响应对象作为参数传递进去。

⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

3.Servlet的生命周期

有了以上的分析,生命周期如下:

a. 加载并实例化 b. 初始化 c. 服务 d. 销毁

  • init(): 仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。
  • service(): 处理请求
  • destroy(): 仅执行一次,在服务器停止或者卸载servlet时执行,负责释放占用的资源。
4.Servlet的本质
  • Servlet是Java的一个接口,定义了一套处理网络请求的规范,所有实现servlet的类,都需要实现那5个方法,其中主要是生命周期方法:init(), destory(), 还有一个处理请求的service()。(这3个类表明初始化,销毁时,接收到请求时做生命)
  • servlet容器是与客户端直接打交道的,它监听了端口,请求过来时,根据url等信息,确定将请求交给哪个servlet去处理,然后调用service()方法,service方法返回一个response对象,servlet容器将此对象返回给客户端。(doget(), dopost() 时httpservlet中的方法。)

详见:https://stackify.com/spring-mvc/ 里面讲了SpringMVC的具体构成和Servlet相关,看了很有收获。
https://www.mulesoft.com/cn/tcat/tomcat-servlet An Introduction to Tomcat Servlet Interactions
https://www.zhihu.com/question/21416727

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值