生命周期

编辑

  1. 客户端请求该 Servlet;
  2. 加载 Servlet 类到内存;
  3. 实例化并调用init()方法初始化该 Servlet;
  4. service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions());
  5. destroy()。
加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。
Server 创建一个 Servlet的实例
第一个客户端的请求到达 Server
Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 <servlet> 标签下配置 <load-on-startup> 标签,配置的值为整型,值越小 Servlet 的启动优先级越高)
一个客户端的请求到达 Server
Server 创建一个请求对象,处理客户端请求
Server 创建一个响应对象,响应客户端请求
Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数
service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 或程序员自己开发的新的方法。
对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象),当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。
 
 

工作模式

编辑

客户端发送请求至服务器
服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器
服务器将响应返回客户端

最新文章

  1. android帧动画,移动位置,缩放,改变透明度等动画讲解
  2. [ruby on rails] 跟我学之(6)显示指定数据
  3. SqlSever基础 ltrim函数 除去字符串左边的空格,右边的中间的不管
  4. 1.TCP/IP基本概念
  5. 字符串压缩 stringZip
  6. RDO Stack:VMs cannot access external network.
  7. CCSpriteBatchNode中存放元素的一点理解
  8. Activiti(二) springBoot2集成activiti,集成activiti在线设计器
  9. 数据库SQL优化大总结1之- 百万级数据库优化方案
  10. 【Django】RROR 2003 (HY000): Can&#39;t connect to MySQL server on &#39;localhost&#39; (10061)
  11. TestNG依赖测试
  12. javascript面向对象精要第二章函数整理精要
  13. java读取视频文件时长
  14. 容器平台选型的十大模式:Docker、DC/OS、K8S 谁与当先?【转】
  15. 使用JDBC在MySQL数据库中快速批量插入数据
  16. MongoDB随笔3:使用索引
  17. 如何编写一个d.ts文件
  18. 使用gdb调试theos tweak插件
  19. Bone Collector--hdu2602(01背包)
  20. ltrace命令详解

热门文章

  1. Java图形界面(GUI)——如何将JTable成功放入面板
  2. 网页设计——Dreamweaver
  3. Php socket数据编码
  4. win7浏览器出现无法连接到代理服务器错误解决办法
  5. Java Colections 集合类 —— List、ArrayList、Set(HashSet)
  6. Node.js:RESTful API
  7. Eclipse-Error:笔记-1
  8. 关于类和对象的进一步讨论 C++
  9. html/css常用合集
  10. 从实现HTML页面局部刷新到JSONP