Servlet是对支持Java的服务器的通常扩充。它最多见的用途是扩展Web服务器,提供很是安全的、可移植的、易于使用的CGI替代品。它是一种动态加载的模块,为来自Web服务器的请求提供服务。它彻底运行在Java虚拟机上。因为它在服务器端运行,所以它不依赖于浏览器的兼容性。浏览器
Servlet容器:安全
负责处理客户请求、把请求传送给Servlet并把结果返回给客户。不一样程序的容器实际实现可能有所变化,但容器与Servlet之间的接口是由Servlet API定义好的,这个接口定义了Servlet容器在Servlet上要调用的方法及传递给Servlet的对象类。服务器
Servlet生命周期:ide
一、Servlet容器建立Servlet的一个实例线程
二、容器调用该实例的init()方法对象
三、若是容器对该Servlet有请求,则调用此实例的service()方法接口
四、容器在销毁本实例前调用它的destroy()方法生命周期
五、销毁并标记该实例以供做为垃圾收集内存
一旦请求了一个Servlet,就没有办法阻止容器执行一个完整的生命周期。
容器在Servlet首次被调用时建立它的一个实例,并保持该实例在内存中,让它对全部的请求进行处理。容器能够决定在任什么时候候把这个实例从内存中移走。在典型的模型中,容器为每一个Servlet建立一个单独的实例,容器并不会每接到一个请求就建立一个新线程,而是使用一个线程池来动态的将线程分配给到来的请求,可是这从Servlet的观点来看,效果和为每一个请求建立一个新线程的效果相同。虚拟机