Servlet生命周期

来源:互联网 发布:linux 服务器宕机重启 编辑:程序博客网 时间:2024/05/20 04:47

当访问一个JSP或者servlet时,服务器中就生成一个servlet对象,也可以通过配置web.xml让服务器一启动就弄一个对象出来。(先通过构造函数,然后自动调用init())了。

当你关闭页面的时候,对象还存在服务器中(当调用destory()时,系统才会把对象清除)。

只有服务器关闭或者service方法中所有线程都停止了(那是官方说法,我感觉可能还有其他办法,不确定),才会调用destory()。

每个不同的用户去访问它,都是公用一个servlet实例的。

当一个SERVLET被创建并且被装载到内存,它在内存中仅有一个实例,采用多线程去访问这个SERVLET实例

 

 

下面是摘抄的:

 

——————————————————————————————————————

 

Servlet其实就是运行在服务器段的java程序

所有Servlet继承自 HttpServlet

Servlet生命周期分5步:
1.加载ClassLoader
2.实例化  也是new一个这个类的对象
3.初始化 init(ServletConfig)
4.处理请求 service ,根据客户端的配置调用 doGet 或 doPost 方法
5.退出服务 destory()



1.当web容器(以tomcat为例)开启服务,tomcat会准备一个线程池。此时加载ClassLoader

2.当第一个请求(request)到来,tomcat会在线程池调用一个闲着的线程来处理请求,此时实例化这个类(Servlet),并且调用init方法。然后调用service法方

3.再有请求的时候,调用service法方

4.停掉服务或者重启服务的时候,调用destory方法。

Servlet只有一个实例,采用多线程方式运行,所以它是线程不安全的

 

原创粉丝点击