首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

tomcat学习|tomcat源码结构

小刀博客: https://www.lixiang.red 学习背景 提到tomcat,相信大家都不陌生,只要是搞web开发的,老师总会让我们把应用打成war包,然后再丢到tomcat的webapp里面...,那是不是就代表着我们可以不用学tomcat了?...学习准备 idea: 看源码,写代码的不二之选 tomcat 源码: 小刀fork 了一份,新建了一个分支,写一些注释之类的 https://github.com/weixiaodexiaoxiaodao.../tomcat 分支是 study_8_5 笔,本子: 好记性不如烂笔头,tomcat做为一个web容器中大佬级别的存在,只用肉眼,很难看穿他 小刀的微信交流群: 有什么会比一群人在一起学有意思呢?...Servlet通过JNDI查找 WEB容器提供的配置信息 tomcat 是一些附加功能,如websocket等 最后说两句 tomcat 这块,小刀也是刚开始细致的开始学,大家一起加油!!

96530

Tomcat源码分析

分析完核心类后,再看看Tomcat启动的过程,Tomcat启动的时序图如下所示: ?...通过以前的分析(Tomcat源码分析一)可知道当Tomcat启动的时候会启动Connector,此时Connector会通过ProtocolHandler把Endpoint启动起来。...在看老版Tomcat源码时,找到了答案,其实现思路主要是利用了线程的等待和唤起,HttpProcessor的实现正好基于此思路,时序图如下所示: ?...socket); } 当HttpConnector调用HttpProcessor.assign(socket)方法时,会给此线程赋予Socket对象,并唤起此线程,使其继续执行,assign方法的源码如下所示...incoming request is being assigned"); } 线程被唤起和赋予socket对象后,继续执行核心的process方法,HttpProcessor.run的完整源码如下所示

53520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Tomcat - 源码构建Tomcat 8.5.55 启动

    得到 apache-tomcat-8.5.55-src.zip ---- 源码搭建分析 我们在使用tomcat时,俩目录 conf 和 webapps 是不是经常需要修改? ?...一个负责tomcat的配置文件信息,一个负责应用 。 很显然,我们使用源码构建tomcat环境的时候,也要告诉tomcat这两个目录的位置,以便加载配置文件和应用。...不管形式怎么变, 使用tomcat编译好的二进制还是源码部署编译,tomcat该加载的配置文件都是一样的。...就好了,为了方便管理,所以在源码的一级目录下建个目录source) ---- 源码搭建步骤 (Maven管理) Step1....【tomcat源码运行需要加载配置文件】 -Dcatalina.home=D:\apache-tomcat-8.5.55-src\source -Dcatalina.base=D:\apache-tomcat

    1.7K30

    Tomcat源码分析一:源码导入

    下载tomcat源码包 从tomcat官网tomcat.apache.org上下载tomcat8.x的源码包apache-tomcat-8.0.32-src.zip http://tomcat.apache.org.../download-80.cgi 生成IDE项目 源码包下的ant build.xml中已经包含了生成eclipse项目的target: <target name="ide-eclipse...进入<em>源码</em>根目录执行ant命令: > ant ide-eclipse 这个任务会去下载objenesis jar包,可能会报错由于默认的目标地址是googlecode,无法访问,通过访问外国网站代理先将其下载放到自己的某个服务器上开启...导入eclipse项目 接下来打开eclipse,file -> import -> Existing Projects into Workspace 选择<em>源码</em>目录导入<em>源码</em>; 导入<em>源码</em>后,项目还会报错...添加两个变量ANT_HOME和<em>TOMCAT</em>_LIBS_BASE,ANT_HOME设置为安装的ant的根目录,<em>TOMCAT</em>_LIBS_BASE设置为执行ant ide-eclipse命令生成的目录,我的是

    1.1K100

    深入调试tomcat源码

    这篇文章写给那些像我想研究tomcat源码的朋友,下面直接进入正题: 1.去tomcat官网上下载tomcat源码,下载时建议选择国内镜像,速度快很多,我这篇文章使用的tomcat7.0.72...版本 2.新建一个java项目,然后在项目上右键选择“Build Path”的子菜单“Link Path”, 弹出下面界面 经过上面的步骤就完成了准备工作的80%了 3.将tomcat源码下面的conf...Debug Configuration进入下面的界面: 在Main class输入框输入org.apache.catalina.startup.Bootstrap,BootStap类的main方法是Tomcat...启动的入口 7.点击Debug,正式进入Debug模式,如果想跟踪调试Tomcat启动全过程,请选择上图中的“Stop in main”选项,这样启动后自动在Bootstrap类的main方法入口处自动停止

    74011

    tomcat源码解读三(2) tomcat中JMX的源码分析

    在这里我是将tomcat中的jmx给拆分出来进行单独分析,希望通过此种方式能够尽可能的出现更多的问题,以便对其有更多的了解,首先需要声明的是tomcat的JMX是在jsvase原有的基础上做了一些复用...,这就必须了解一些JMX的实现过程 1.1.1 tomcat中JMX的UML图 ?...catch (Exception e) { throw new RuntimeException(e.toString()); } return on; }      就这样tomcat...的JMX是注册成功的,但是既然分析源码,我们肯定要知根问底,下面就看看如何获取Mbean注册表以及注册组件 1.1.2.2 获取Mbean注册表      主要调用Registry类的静态方法getRegistry.../** * tomcat中的JMX传入的两个参数都是null * 所以最终返回registry这个静态句柄的值 当然第一次为空是实例化了一个Registry实例 * */ public static

    1.3K50

    Tomcat源码 Connector(2)

    Connector是Tomcat最核心的组件之一,负责处理一个WebServer最核心的连接管理、Net IO、线程(可选)、协议解析和处理的工作。...一、连接器介绍 在开始Connector探索之路之前,先看看Connector几个关键字 NIO:Tomcat可以利用Java比较新的NIO技术,提升高并发下的Socket性能 AJP:Apache...JServ Protocol,AJP的提出当然还是为了解决java亘古不变的问题——性能,AJP协议是基于包的长连接协议,以减少前端Proxy与Tomcat连接Socket连接创建的代价,目前Apache...APR的提出利用Native代码更好地解决性能问题,更好地与本地服务器(linux)打交道。...让我们看看Tomcat文档对APR的介绍 Tomcat6文档 写道 Tomcat can use the Apache Portable Runtime to provide superior scalability

    63810

    Linux安装Tomcat

    1.卸载 到tomcat的安装目录 rm -rf /usr/java/tomcat/apache-tomcat-8.5.31 2.安装 从官网上下载linux版本的tomcat(apache-tomcat...-8.5.31.tar.gz) 通过ftp或者rz命令上传到linux 我的tomcat装到/usr/local目录下,在/usr/local目录下新建tomcat文件夹 mkdir /usr/local.../tomcat tar -zxvf apache-tomcat-8.5.31.tar.gz -C /usr/local/tomcat 进入tomcat的bin目录下,vi命令打开setclasspath.sh...三、重启Linux服务器 reboot 四、进入到Tomcat下的logs目录,动态查看日志文件,退出查看日志使用 :Ctrl+Z tail -f catalina.out...管理 tomcat8.5管理员默认只能在安装tomcat的机器上访问,如果想在其他机器上访问,则需要进行配置修改 添加用户和权限(\conf\tomcat-users.xml): <role rolename

    6.9K20

    tomcat学习|通过tomcat源码启动web项目

    学习背景 上一波,我们学习了tomcat 中主要接口的方法及关系: https://www.lixiang.red/articles/2019/08/12/1565622240937.html 实际上源码只通过看...,也差不多只能看到这个地步了,后面就一直看的话,就很容易乱,有句话说:实践出真知 今天我们就一起通过tomcat源码,来启动我们日常的web应用,在中间,可以debug , 可以更好的看到整个过程 准备...然后把war包丢到tomcat的webapp目录下面 tomcat的配置 导入jar包到idea中 ant相关的配置可参考这篇文章 https://www.lixiang.red/articles/2019...修改tomcat 本身一些配置 删掉tomcat/webapps/examples 目录, 这里面都是一些示例,在源码编译中会报错,干扰我们的正常启动,可以先删掉 修改tomcat的端口号(可选)在 tomcat...启动tomcat 并跟踪 以前我们有聊过,在用shell 脚本启动tomcat时,是启动的Bootstrap.java这个类,并且跟上了参数start ?

    2K20
    领券