8.Servlet的生命周期

Servlet运行原理

当Tomcat服务器接收到一个HTTP请求时,Tomcar服务器会根据请求的内容,创建Servlet实例步骤如下:

1.用户在浏览地址栏中输入URL。

2.Tomcat服务器根据请求获取URL中需要的资源(/first)。

3.Tomcar服务器根据获取的"/first"与web.xml文件中的<servlet-mapping>元素下的<url-pattern> 元素的内容相匹配。

4.Tomcat服务器取出与<utl-pattern>同级的<servlet-name>元素中的内容值"firstServlet"

5.根据取出的"firstServlet"值与<servlet>元素下的<servlet-name>内容相匹配。

6.匹配完成后,Tomcat服务器实例化改Servlet。


Servlet生命周期

Servlet生命周期是由Servlet的容器来控制的,Servlet生命周期分为4个阶段:加载并实例化、初始化、请求处理和销毁。

可以通过javax.servlet.Servlet接口中的init()、service()和destroy()这些API来表示,所有Servlet必须直接或间接的实现GenericServlet或HttpServlet抽象类。

1.加载并实例化

        Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器监测到需要这个Servlet来响应第一个请求时,创建Servlet实例。当Servlet容器启动后,Servlet通过类加载Servlet类,加载完成后再创建一个Servlet对象来实例化。

2.初始化

        在Servlet实例化之后,容器将调用init()方法,并传递实现ServletConfig接口的对象。在init()方法中,Servlet可以部署描述符中读取配置参数,或者执行任何其他一次性活动。在Servlet的整个生命周期内,init()方法只被调用一次。Servlet仅在第一次被访问时进入初始化阶段,也可以在web.xml文件对该Servlet配置。

3.请求处理

        当Servlet初始化后,容器就可以准备处理客户端了。当容器收到对Servlet的请求,就调动Servlet的servlet()方法,并把请求和响应对象作为参数传递。当进行的请求到来时,多个service()方法能够同时运行在独立的线程中。service()方法检查HTTP请求类型(GET、POST、PUT以及DELETE等),并在适当的时侯调用doGet()、doPost()、doPut()以及doDelete()等方法。

4.销毁

        一旦Servlet容器检测到一个Servlet要被写在,这可能是因为要回收资源或者因为它正在被关闭,容器会在所有Servlet的service()线程之后,调用Servlet的destroy()方法。然后,Servlet就可以进行无用存储单元收集清理。这样Servlet对象就销毁了。这4个阶段共同决定了Servlet的生命周期。

init()  -->  service()  -->  doGet()|doPost()|doDelete()|doPut()  -->  destroy()


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值