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