随笔分类 -  Tomcat源码解析

摘要:Tomcat Session 概述 首先 HTTP 是一个无状态的协议, 这意味着每次发起的HTTP请求, 都是一个全新的请求(与上个请求没有任何联系, 服务端不会保留上个请求的任何信息), 而 Session 的出现就是为了解决这个问题, 将 Client 端的每次请求都关联起来, 要实现 Ses 阅读全文
posted @ 2019-08-23 10:50 chen_hao 阅读(5828) 评论(3) 推荐(11) 编辑
摘要:我们接着上一篇文章的容器处理来讲,当postParseRequest方法返回true时,则由容器继续处理,在service方法中有connector.getService().getContainer().getPipeline().getFirst().invoke(request, respon 阅读全文
posted @ 2019-08-22 10:31 chen_hao 阅读(2471) 评论(0) 推荐(5) 编辑
摘要:终于进行到Connector的分析阶段了,这也是Tomcat里面最复杂的一块功能了。Connector中文名为连接器,既然是连接器,它肯定会连接某些东西,连接些什么呢? Connector用于接受请求并将请求封装成Request和Response,然后交给Container进行处理,Containe 阅读全文
posted @ 2019-08-20 10:06 chen_hao 阅读(5257) 评论(3) 推荐(12) 编辑
摘要:在上一篇文章中,我们分析了tomcat的初始化过程,是由Bootstrap反射调用Catalina的load方法完成tomcat的初始化,包括server.xml的解析、实例化各大组件、初始化组件等逻辑。那么tomcat又是如何启动webapp应用,又是如何加载应用程序的ServletContext 阅读全文
posted @ 2019-08-19 15:08 chen_hao 阅读(2043) 评论(1) 推荐(3) 编辑
摘要:说到Tomcat的启动,我们都知道,我们每次需要运行tomcat/bin/startup.sh这个脚本,而这个脚本的内容到底是什么呢?我们来看看。 启动脚本 startup.sh 脚本 我们来看看这脚本。该脚本中有2个重要的变量: PRGDIR:表示当前脚本所在的路径 EXECUTABLE:cata 阅读全文
posted @ 2019-08-16 16:23 chen_hao 阅读(2986) 评论(0) 推荐(2) 编辑
摘要:在研究tomcat 类加载之前,我们复习一下或者说巩固一下java 默认的类加载器。楼主以前对类加载也是懵懵懂懂,借此机会,也好好复习一下。 楼主翻开了神书《深入理解Java虚拟机》第二版,p227, 关于类加载器的部分。请看: 什么是类加载机制? Java虚拟机把描述类的数据从Class文件加载进 阅读全文
posted @ 2019-08-15 14:42 chen_hao 阅读(2895) 评论(1) 推荐(7) 编辑
摘要:在 Tomcat源码分析 (二) Tomcat整体架构及组件 中我们简单分析了一下Pipeline和Valve,并给出了整体的结构图。而这一节,我们将详细分析Tomcat里面的源码。 Valve Valve作为一个个基础的阀门,扮演着业务实际执行者的角色。我们看看Valve这个接口有哪些方法。 Co 阅读全文
posted @ 2019-08-14 11:04 chen_hao 阅读(2203) 评论(1) 推荐(2) 编辑
摘要:Tomcat里面有各种各样的组件,每个组件各司其职,组件之间又相互协作共同完成web服务器这样的工程。在这些组件之上,Lifecycle(生命周期机制)至关重要!在学习各个组件之前,我们需要看看Lifecycle是什么以及能做什么?实现原理又是怎样的? 什么是Lifecycle? Lifecycle 阅读全文
posted @ 2019-08-12 11:21 chen_hao 阅读(2598) 评论(2) 推荐(5) 编辑
摘要:前言 Tomcat的前身为Catalina,而Catalina又是一个轻量级的Servlet容器。在美国,catalina是一个很美的小岛。所以Tomcat作者的寓意可能是想把Tomcat设计成一个优雅美丽且轻量级的web服务器。Tomcat从4.x版本开始除了作为支持Servlet的容器外,额外加 阅读全文
posted @ 2019-08-09 10:32 chen_hao 阅读(4430) 评论(3) 推荐(12) 编辑
摘要:作为后端开发人员,在实际的工作中我们会非常高频地使用到web服务器。而tomcat作为web服务器领域中举足轻重的一个web框架,又是不能不学习和了解的。 tomcat其实是一个web框架,那么其内部是怎么实现的呢?如果不用tomcat我们能自己实现一个web服务器吗? 首先,tomcat内部的实现 阅读全文
posted @ 2019-08-08 11:07 chen_hao 阅读(3817) 评论(4) 推荐(7) 编辑