当访问一个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只有一个实例,采用多线程方式运行,所以它是线程不安全的