随笔分类 -  Tomcat

摘要:摘要:本文主要介绍了Tomcat中使用的设计模式。 今天我们来聊聊Tomcat运用到的设计模式。通过阅读之前的源码我们了解到Tomcat中使用了很多设计模式,例如我们在看代码中提到的工厂,模版等设计模式。今天这篇文章我们来总结下Tomcat中使用的常见的设计模式,通过学习Tomcat中使用设计模式的 阅读全文
posted @ 2017-03-23 17:27 coldridgeValley 阅读(2991) 评论(0) 推荐(0) 编辑
摘要:从学习使用到现在接触tomcat的时间也有5、6个年头了。最初使用的时候就觉得使用简单,心中默默想搞清其中原理,结果一拖就拖了好几年,最终还是在2016年实现了诺言。 我本意本是记录下学习过程,记录下其原理,最多3、4篇文章就好了,但是接触下来才发现其复杂精巧的程度真的令人很痴迷。从最初的编译源码到 阅读全文
posted @ 2017-02-04 02:23 coldridgeValley 阅读(622) 评论(1) 推荐(0) 编辑
摘要:摘要:本文主要介绍了tomcat内部处理HTTP请求的Container部分,即剩余的部分 上一篇文章讲到 对HTTP请求的处理,主要查看了 方法对 的处理填充。我们继续往下看: //代码清单1 // Parse and set Catalina and configuration specific 阅读全文
posted @ 2017-02-04 01:37 coldridgeValley 阅读(1832) 评论(0) 推荐(0) 编辑
摘要:摘要:本文主要介绍了tomcat内部处理HTTP请求的Connector部分 在上一篇文章中已经介绍了tomcat在能处理HTTP请求之前所做的准备,今天这篇文章就开始正式开始介绍tomcat处理HTTP请求。在上篇文章说到下面代码: //代码清单1 在JIOEndpoint中 @Override 阅读全文
posted @ 2017-01-05 16:13 coldridgeValley 阅读(2275) 评论(1) 推荐(0) 编辑
摘要:摘要:本文主要介绍了tomcat在启动过程中为了处理HTTP请求之前所做的准备工作 在之前的文章中介绍了tomcat的启动,关闭过程,后续又陆陆续续介绍了tomcat内部很多机制以及机制的源码。大家都知道在tomcat启动完毕以后就可以对外提供服务了,如果访问 就可以访问tomcat的主页,那么我们 阅读全文
posted @ 2016-12-29 19:45 coldridgeValley 阅读(4995) 评论(0) 推荐(0) 编辑
摘要:摘要:本文介绍在tomcat中部署项目的过程中涉及的类的源码。 在上一篇文章中,我们讲解了tomcat中项目部署的方式,以及tomcat中部署项目的时候的相关作用类。这篇文章我们就来查看下相关类 是如何部署项目的。 从前篇文章中我们知道部署项目是在 触发了其自身的 生命周期时间,然后作为其监听器的 阅读全文
posted @ 2016-12-20 16:48 coldridgeValley 阅读(856) 评论(0) 推荐(0) 编辑
摘要:摘要:本文介绍在tomcat中部署项目的几种方式以及内部相关的类。 众所周知在tomcat中部署一个项目是一件很轻松的事情,我们总结一下在tomcat中部署项目的四种方式。 第一种方式是我们最常见的,直接把war包丢到 目录下即可,或者将war包解压出来的文件夹放到 目录下也可以。 第二种方式是修改 阅读全文
posted @ 2016-11-24 00:06 coldridgeValley 阅读(893) 评论(0) 推荐(0) 编辑
摘要:摘要: 与`StandardManager`的异同。 之前两篇关于session的文章主要讨论了session相关的创建、查询、过期处理。而我们查看源码的时候都是默认实现是 类,实际上实现也可以是 类,下面我们就查看下该类的相关方法。 我们都知道 代表的是持久化session的管理器。在 类定义中有 阅读全文
posted @ 2016-11-24 00:03 coldridgeValley 阅读(722) 评论(0) 推荐(0) 编辑
摘要:摘要:本文主要介绍了session的过期处理 在上一篇 "http://www.cnblogs.com/coldridgeValley/p/6016211.html" ")中,我们讲解了session相关的架构以及session的查找,创建。今天我们继续讲解一些session相关的内容。 prote 阅读全文
posted @ 2016-10-31 16:18 coldridgeValley 阅读(523) 评论(0) 推荐(0) 编辑
摘要:摘要:本文目的在介绍tomcat中session相关的架构以及session的查询。 在Servlet开发中,Session代表用户会话,开发人员经常使用Session来临时存储一些信息,那么Session到底是什么,Tomcat中是如何对Session进行管理的,我们今天到源码中查看下。 查看相关 阅读全文
posted @ 2016-10-31 16:06 coldridgeValley 阅读(5947) 评论(0) 推荐(0) 编辑
摘要:本篇文章主要讲解了ContainerBase类中的一些重要方法 在之前的文章中我们说过 中包含4种容器,分别是 ,`Context Host Engine CatainerBase`类,先看类图。 从图中可以看到 中4中容器都继承了一个共同的接口 ,`Container ContainerBase 阅读全文
posted @ 2016-09-30 21:55 coldridgeValley 阅读(505) 评论(0) 推荐(0) 编辑
摘要:本文主要目的是讲解tomcat中的pipeline机制,涉及部分源码分析 之前我们在前面的文章介绍过,tomcat中 有4种,分别是 ,`Host Context Wrapper Container StandardEngine StandardHost StandardContext Standa 阅读全文
posted @ 2016-08-28 23:57 coldridgeValley 阅读(5192) 评论(0) 推荐(2) 编辑
摘要:本文主要目的是自定义举例分析 内部生命周期管理的运作方式以及拿内部具体源码来具体分析 假设我们有一台电脑由主机(我们用cpu表示)和显示器构成,那么我们要运用上篇文章学到的内容,来管理整个电脑的启动和关闭,先看我们对类的定义。 在本例中我们对 类进行了部分删减,只保留了关于 和`stop`的相关事件 阅读全文
posted @ 2016-08-28 23:57 coldridgeValley 阅读(1248) 评论(0) 推荐(0) 编辑
摘要:上一篇文章我们了解了Digester的基本使用方法,今天这篇文章我们来看下Digester类在tomcat中的具体使用,tomcat使用Digester类来解析相关的xml文件,包括 和`server.xml server.xml web.xml`下次讨论。 在之前的tomcat启动过程源码讲解的时 阅读全文
posted @ 2016-08-28 23:54 coldridgeValley 阅读(1293) 评论(0) 推荐(0) 编辑
摘要:本文主要是源码分析了 中生命周期管理中两个核心类 和`LifecycleBase`。 在上一篇文章中,我们将 中生命周期的相关类都进行了大致的讲解,从中我们可以看出生命周期功能中最重要的两个类分别是 和`LifecycleBase`,今天这篇文章就主要对这两个类的源码进行分析从而理解其实现原理。 L 阅读全文
posted @ 2016-08-28 23:54 coldridgeValley 阅读(1182) 评论(0) 推荐(0) 编辑
摘要:本文主要的目的是介绍了 中所有组件的生命周期的概念以及整个生命周期的架构图。 在之前的文章中介绍了tomcat整体的启动关闭流程,从流程中可以看出tomcat在启动和关闭的过程中涉及的组件相当之多,也可以看出tomcat是一个高度模块化的web容器。那么tomcat在启动关闭的时候是如何统一的管理所 阅读全文
posted @ 2016-08-28 23:54 coldridgeValley 阅读(1764) 评论(0) 推荐(1) 编辑
摘要:apache的Digester库是专门用解析管理xml文档,在tomcat中也使用了这个第三方类库来解析xml文档,也就是对应的 和`web.xml`,所以我们今天先讲解下Digester类库的基本使用方法。 org.apache.commons.digester.Digester类是Digeste 阅读全文
posted @ 2016-08-28 23:53 coldridgeValley 阅读(1359) 评论(0) 推荐(0) 编辑
摘要:前言 上一篇文章中我们讨论了 类中 方法中一部分,今天这篇文章我们把 类的 方法剩余部分讲解完毕,在讲解代码之前我们先看之前的 "一篇关于ShutdownHook的文章" ,有利于后面代码的讲解。 / Start a new server instance. / public void start( 阅读全文
posted @ 2016-06-30 23:43 coldridgeValley 阅读(1494) 评论(0) 推荐(0) 编辑
摘要:前言 上一篇文章中我们讨论了 类中 方法中涉及到的 方法,今天这篇文章我们来查看下 方法。 / Start the Catalina daemon. / public void start() throws Exception { if( catalinaDaemon==null ) init(); 阅读全文
posted @ 2016-06-30 23:43 coldridgeValley 阅读(1294) 评论(0) 推荐(0) 编辑
摘要:前言 上一篇文章中我们讨论了 类中 方法中涉及到的 方法,今天这篇文章我们来查看下 方法。 daemon.setAwait(true); daemon.load(args); setAwait方法 在 方法执行前,执行了 方法,跟进去查看 public void setAwait(boolean a 阅读全文
posted @ 2016-06-30 23:42 coldridgeValley 阅读(1801) 评论(0) 推荐(1) 编辑