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个阶段。
时间: 2024-10-28 21:23:11