Servlet的生命周期
一、什么是Servlet
Servlet 是一种服务器端的 Java 应用程序,由 servlet 容器管理,具有独立于平台和协议的特性,可以生成动态的 Web 页面。
它担当客户请求(Web 浏览器或其他 HTTP 客户程序)与服务器响应(HTTP 服务器上的数据库或应用程序)的中间层。
Servlet是位于 Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行启动的 Java 应用程序不同,Servlet 由 Web服务器进行加载,该 Web 服务器必须包含支持 Servlet 的 Java 虚拟机。
一个 servlet 实例是实现了特殊接口 Servlet 的 Java 类,所有自定义的 servlet 均必须实现 Servlet 接口。
二、Servlet 的生命周期
Servlet 生命周期可以分成四个阶段:出生(加载和实例化)、初始化、服务、死亡(销毁)。
①出生
当客户第一次请求时,首先判断是否存在 Servlet 对象,若不存在,则由服务器调用无参构造方法创建对象。
②初始化
创建完对象之后就会调用init()方法对其进行初始化。此初始化方法在整个 Servlet 生命周期中只调用一次。
③服务
完成 Servlet 对象的创建和初始化之后,服务器会调用 Servlet 对象的 service()方法来处理客户端的请求。
④死亡
当 服务器关闭或者Servlet 对象要从容器中被删除时,会自动调用 destory()方法。
三、总结
- ①什么时候创建Servlet对象(实例化)?
第一次被浏览器请求时
- ②被谁创建?
被服务器(Tomcat)调用Servlet的无参构造方法
- ③Servlet的构造方法可以重载吗?
可以,但是不会被调用。如果要正常使用Servlet的话,必须写一个无参的构造方法,以免无参构造方法被有参构造方法覆盖。
服务器通过反射调用无参构造方法,所以不能传参,调用不了有参构造方法。