Tomcat 的运行机制
2023-03-14 10:24:52 时间
转载地址: http://wiki.jikexueyuan.com/project/java-web/00-08.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:线程池管理,创建线程池,并为每个请求分配线程。
相关文章
- Java中的接口与抽象类
- Java文件上传实例并解决跨域问题
- 从细节理解Java锁的升级
- 面试小厂准备第一天 Java数据结构1
- 《JAVA核心技术》学习笔记–动态绑定
- 【高并发】通过源码深度分析线程池中Worker线程的执行流程
- Java 通过网络流转发文件到浏览器
- java处理多文件合并
- IDEA 配置 jenkins——CSRF enabled->Missing or bad crumb data
- Maven
- Java框架(Vue)学习笔记
- java专业学生第一次使用
- Java单元测试|阿里云产品内容精选(三十)
- springmvc>>>ssm添加跨域>>基于maven
- 【高并发】从源码角度分析创建线程池究竟有哪些方式
- Go 调用 Java 方案和性能优化分享
- tcp并发数攻击防御shell 脚本
- Jenkins构建:Host key verification failed.
- Java 性能测试框架工具-JunitPerf
- Java基础篇:继承