- JSP 和 Servlet
- 00-00、序
- 00-01、相关软件的安装
- 00-02、理解 HTTP
- 00-03、从 JSP 开始
- 00-04、理解 Servlet
- 00-05、过滤器与监听器
- 00-06、使用 velocity 模板引擎
- 00-07、使用数据库连接池
- 00-08、Tomcat 的运行机制
- Spring MVC
- 01-00、Spring 与依赖注入
- 01-01、Spring 与面向切面编程
- 01-02、使用 Spring MVC 构建 Hello World
- 01-03、JdbcTemplate
- 01-04、基于注解的 URL 映射
- 01-05、JSON
- 01-06、校验器
- 01-07、国际化
- 01-08、拦截器
- 01-09、文件上传
- 01-10、转换器与格式化
- Book
- Online Tutorial
- Q 和 A
- Learn More
- Supplement
00-08、Tomcat 的运行机制
在 00-02、理解 HTTP 中给出了一个简单的服务器代码,Tomcat 的设计思路也是类似的。
Tomcat 是一个 servlet 容器。
http://www.kaifajie.cn/tomcat6/7454.html 中的内容值得参考:
先不去关技术细节,对一个 servlet 容器,我觉得它首先要做以下事情: 1:实现 Servlet api 规范。这是最基础的一个实现,servlet api 大部分都是接口规范。如 request、response、session、cookie。为了我们应用端能正常使用,容器必须有一套完整实现。
2:启动 Socket 监听端口,等待 http 请求。
3:获取 http 请求,分发请求给不同的协议处理器,如 http 和 https 在处理上是不一样的。
4:封装请求,构造 HttpServletRequest。把 socket 获取的用户请求字节流转换成 java 对象 httprequest。构造 httpResponse。
5:调用(若未创建,则先加载)servlet,调用 init 初始化,执行 servlet.service() 方法。
6:为 httpResponse 添加 header 等头部信息。
7:socket 回写流,返回满足 http 协议格式的数据给浏览器。
8:实现 JSP 语法分析器,JSP 标记解释器。JSP servlet 实现和渲染引擎。
9:JNDI、JMX 等服务实现。容器一般额外提供命名空间服务管理。
10:线程池管理,创建线程池,并为每个请求分配线程。
Tomcat 有自己的类加载机制。可以参考:
Java 类加载原理解析
深入探讨 Java 类加载器
Tomcat 类加载器体系结构
有一本书是讲 Tomcat 如何运行的: 《How Tomcat Works》 。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论