Servlet容器,形象地说就是担当web服务器和Servlet之间的中间人得角色。web服务器将被请求的Servlet的URl和request对象转交给Servlet容器,然后由Servlet容器调用相应的Servlet程序处理该请求,并将Servlet的请求结果返回给Web服务器。
(1)加载和实例化
容器负责加载和实例化一个servlet。实例化和加载可以发生在引擎启动的时候,也可以推迟到容器需要该Servlet为客户请求服务的候。
(2)初始化
init()方法用于初始化操作,该方法在Servlet的整个生命周期中只被调用一次;初始化的过程主要是读取永久的配置信息,以及其他仅仅需要执行一次的任务。
(3)处理请求
service()方法由 servlet 容器调用,以允许Servlet响应一个请求。Servlet容器传递javax.servlet.ServletRequest对象和javax.servlet.ServletResponse对象。ServletRequest对象包含客户端HTTP请求信息,ServletResponse则封装Servlet响应。
(4)移除实例
调用destroy()方法(在整个生命周期中只被调用一次);服务器决定删除已经加载的Servlet实例之前将调用Servlet的destroy()方法。
当Servlet容器接受一个请求后,首先到容器池内查找被请求的Servlet实例是否已经存在,若不存在,则会加载和实例化被请求的Servlet,并对它进行初始化;若已存在,则直接调用Servlet的service()方法,然后根据HTTP请求种类的不同,在service()内部调用doGet()或doPost()等方法处理相应的请求。当Servlet容器下一次接收到对该Servlet请求时,则只需要新创建一个线程处理该请求。最后当不需要该Servlet时,通过调用destroy()方法移除该实例。
Tomact是最常见的Servlet容器之一,由于它同时也能处理对jsp页面的请求,所以通常也被称为JSP/Servlet容器。
原文链接:http://www.51songl.com/principle-of-the-servlet-container.html
(1)加载和实例化
容器负责加载和实例化一个servlet。实例化和加载可以发生在引擎启动的时候,也可以推迟到容器需要该Servlet为客户请求服务的候。
(2)初始化
init()方法用于初始化操作,该方法在Servlet的整个生命周期中只被调用一次;初始化的过程主要是读取永久的配置信息,以及其他仅仅需要执行一次的任务。
(3)处理请求
service()方法由 servlet 容器调用,以允许Servlet响应一个请求。Servlet容器传递javax.servlet.ServletRequest对象和javax.servlet.ServletResponse对象。ServletRequest对象包含客户端HTTP请求信息,ServletResponse则封装Servlet响应。
(4)移除实例
调用destroy()方法(在整个生命周期中只被调用一次);服务器决定删除已经加载的Servlet实例之前将调用Servlet的destroy()方法。
当Servlet容器接受一个请求后,首先到容器池内查找被请求的Servlet实例是否已经存在,若不存在,则会加载和实例化被请求的Servlet,并对它进行初始化;若已存在,则直接调用Servlet的service()方法,然后根据HTTP请求种类的不同,在service()内部调用doGet()或doPost()等方法处理相应的请求。当Servlet容器下一次接收到对该Servlet请求时,则只需要新创建一个线程处理该请求。最后当不需要该Servlet时,通过调用destroy()方法移除该实例。
Tomact是最常见的Servlet容器之一,由于它同时也能处理对jsp页面的请求,所以通常也被称为JSP/Servlet容器。
原文链接:http://www.51songl.com/principle-of-the-servlet-container.html