servlet运行过程

Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求之后:

1,WEB服务器收到该请求之后,会把请求教给相应的容器来处理,首先检查是否已经装载并创建了该Servlet的实例对象,如果是,则直接执行步骤4,否则执行步骤2;

2,装载并创建该Servlet的一个实例对象;

3,调用Servlet实例对象的init()方法(只调用一次);

4,创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象;

5,容器可以根据请求消息中的URL消息找到对应的Servlet,然后针对该请求创建一个单独的线程,同时把步骤4中创建的两个对象以参数的形式传递到新创建的线程中;

6,容器调用Servlet的service()方法并将请求和响应对象作为参数传递进去,service()方法会调用doPost()或doGet()方法来完成具体的响应任务,同时把生成的动态页面返回给容器;

7,容器把响应消息组装成HTTP格式返回给客户端。此时,这个线程运行结束,同时删除步骤2创建的两个对象。

5,WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。以下情况会调用destroy:①tomcat重新启动;②reload该webapp;③重启电脑。

可见Servlet处理请求的方式为线程的方式

          Servlet的处理流程

 Servlet的生命周期可以分为加载、创建、初始化、处理客户请求和卸载5个阶段。

原文地址:https://www.cnblogs.com/chinawjb/p/5214658.html