tomcat源码分析
pl在之心
立足当下
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Tomcat总结
Tomcat线程模型 Tomcat容器模型 Tomcat为什么要打破双亲委托类加载机制 Tomcat热部署如何实现 Tomcat处理一个请http求的过程 Connector初始化流程 Container初始化流程 Tomcat编解码过程和中文乱码问题 Tomcat Cookie支持问题 ...原创 2020-08-14 10:51:52 · 283 阅读 · 0 评论 -
tomcat如何处理post请求base64格式入参
1.几个问题 1) post请求参数是否编码 2) post请求参数为json, 是否编码 最近项目中遇到一个问题,某个业务的接口需要传一个签名参数,但是签名中包含一些特殊字符,debug发现 服务端接受到的参数会将某些特殊字符过滤掉,比如/ . 环境信息: 1) 服务器: tomcat8 2)请求接口协议: http 3) http请求方式: post ...原创 2019-12-03 10:12:28 · 1374 阅读 · 0 评论 -
tomcat编解码过程
在使用tomcat的时候, 一直很好奇他是怎么对请求的参数进行编解码的,带着下面三个问题,一起看下。 1. get/post请求参数如何编解码,根据请求头部中什么参数配置 2. URI编码 3. 中文参数为什么会出现乱码 4. POST请求参数form表单和Json编码策略是否一样 1. 下图是tomcat各版本默认的编解码方式 我们发现tomca6和tomcat7对UR...原创 2019-10-23 15:14:08 · 852 阅读 · 0 评论 -
tomcat处理一个http请求的过程
以NIO方式为例讲解一下tomcat处理一个http请求的过程 (servlet) 首先http请求本质上也是建立在socket连接之上的,因此大概处理路径不外乎 socket.accept() ---> socket流封装--->丢入Worker线程池处理-----> Container内部处理----> 最终交给Servlet处理----> 返回结果 ...原创 2019-10-23 11:33:45 · 648 阅读 · 0 评论 -
tomcat之Container初始化与加载
1. Container结构 Engine: servlet引擎 Host: 虚拟主机 Context: ServletContext,对应一个web项目或war包,包含多个Wrapper Wrapper: 对Servlet的封装 2. 初始化 从Catalina类开始,主要涉及createStartDigester()方法,如下图所示 addObjectCrea...原创 2019-10-18 17:59:31 · 258 阅读 · 0 评论 -
tomcat之connector分析
1. connector配置 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectP...原创 2019-10-18 14:30:48 · 287 阅读 · 0 评论 -
tomcat源码分析总结
1. tomcat类加载机制,为什么要违背双亲委托机制(线程上下文类加载器) 线程上下文类加载器是指调用方法当前类队员的类加载器。parant类加载器去请求子加载器加载某些依赖的jar 2. tomcat线程模型 3. tomcat之connector分析 4. tomcat之valve机制 5. tomcat之容器类分析 Engine:org.apache.catalin...原创 2019-10-16 17:06:20 · 236 阅读 · 0 评论 -
tomcat为什么要违背双亲委托机制
1. 什么是双亲委托机制 双亲委托的含义: 1) 加载的顺序固定: 引导类加载器--》扩展类加载器--》应用类加载器---》自定义类加载器 2) 当我们使用扩展类加载器加载某个类的时候,若引导类加载器已经加载的该类,就不会继续加载过程 3) 下一级类加载器的加载过程依赖上一级类加载器 4)jdk核心class只能被加载一次 双亲委派模型的工作过程是:如果一个类加载器收到了...原创 2019-10-15 18:08:46 · 685 阅读 · 0 评论 -
tomcat线程模型--NIO
Tomcat支持三种接收请求的处理方式 1)BIO阻塞IO,对应org.apache.coyote.http11.Http11Protocol 2) NIO非阻塞IO,基于selectort实现,对应org.apache.coyote.http11.Http11NIOProtocol 3) APR, 对应org.apache.coyote.http11.Http11AprPro...原创 2019-10-15 15:07:43 · 443 阅读 · 0 评论 -
tomcat源码之类加载机制
1. tomcat类加载思维导向图 2. java 类加载思维导向图 3. tomcat类加载顺序 当应用需要到某个类时,则会按照下面的顺序进行类加载: 1 使用bootstrap引导类加载器加载,加载jvm所需的基础类 2 使用system系统类加载器加载,加载tomcat启动类等相关 3 使用应用类加载器在WEB-INF/classe...原创 2019-10-15 11:39:45 · 266 阅读 · 0 评论
分享