博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
servlet运行过程
阅读量:5303 次
发布时间:2019-06-14

本文共 754 字,大约阅读时间需要 2 分钟。

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

你可能感兴趣的文章
lua语言入门之Sublime Text设置lua的Build System
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
C++ 删除字符串的两种实现方式
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Java抽象类和接口的比较
查看>>
开发进度一
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
CSS
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
程序集的混淆及签名
查看>>
判断9X9数组是否是数独的java代码
查看>>
00-自测1. 打印沙漏
查看>>
UNITY在VS中调试
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
Scala入门(1)Linux下Scala(2.12.1)安装
查看>>
如何改善下面的代码 领导说了很耗资源
查看>>