(5)HowTomcatWorks
PacosonSWJTU
西南交通大学,计算机,烟酒生,爱好coding or coding.
展开
-
java的类载入器
【0】README0.1)本文文字转自: 深入剖析tomcat, 旨在 理解 jvm 的类载入器;【1】 jvm的类载入器相关1)jvm 使用了3种类载入器来载入所需要的类:分别是引导类载入器(bootstrap class loader), 扩展类载入器(extension class loader) 和 系统类载入器(system class loader)。而 引导类载入器是 扩展类载入器的父转载 2016-03-04 10:44:41 · 542 阅读 · 0 评论 -
follow 开源项目关于NoClassDefFoundError错误的解决方法
【0】README0.1)本文旨在po出当我们follow open projects 的时候,遇到一些在open API中不存在(NoClassDefFoundError)的类时的解决方法;【1】problem+solution:1.1)problem:一般case下,我们是 从低version 到高version的剖析project,而低version 可能年代久远而没原创 2016-04-23 18:01:14 · 1413 阅读 · 0 评论 -
tomcat(supplement)HttpConnector.initialize() 和 start() 方法 以及 StandardContext.start()方法的分析
【0】README0.1)本文主要以图片的形式分析他们大致的调用过程;0.2)0.3)应用程序的source code 如下:public final class Bootstrap { public static void main(String[] args) { //invoke: http://localhost:8080/myApp/Session原创 2016-05-08 13:54:41 · 3741 阅读 · 0 评论 -
tomcat(8)载入器
【0】README0.0)本文部分描述转自“深入剖析tomcat”,旨在学习 tomcat(8)载入器 的基础知识;0.1)一个标准web 应用程序中的载入器:简单来说就是 tomcat中的载入器;0.2)servlet容器需要实现一个自定义的载入器,而不能简单地使用系统的类载入器的原因:(干货——为什么servlet容器要实现一个自定义的载入器)0.2.1)原因1:因为ser原创 2016-04-23 18:18:05 · 9767 阅读 · 0 评论 -
tomcat(17)启动tomcat
【0】README1)本文部分文字描述转自“how tomcat works”,旨在学习“tomcat(17)启动tomcat”的相关知识;2)本文重点关注启动Tomcat时会用到的两个类,分别是Catalina类和 Bootstrap类;(干货——引入tomcat启动时用到了两个类,分别是Catalina类和 Bootstrap类)2.1)org.apache.catalina.原创 2016-05-27 14:54:44 · 7840 阅读 · 0 评论 -
tomcat(18)部署器
【0】README0)本文部分文字描述转自“how tomcat works”,旨在学习“tomcat(17)启动tomcat”的相关知识;1)intro:要使用一个web 应用程序,必须要将表示该应用程序的 Context实例部署到一个Host 实例中;2)在tomcat中的部署方式:Context实例可以用WAR 文件的形式来部署,也可以将整个web 应用程序copy 到 to原创 2016-06-01 15:33:49 · 8109 阅读 · 0 评论 -
tomcat(12)org.apache.catalina.core.StandardContext源码剖析
【0】README0)本文部分文字描述转自 “how tomcat works”,旨在学习 “tomcat(12)StandardContext源码剖析” 的基础知识;1)Context实例表示一个具体的web 应用程序,其中包含一个或多个Wrapper实例,每个Wrapper 表示一个具体的servlet定义;2)Context容器还需要其他组件的支持,如载入器和Session原创 2016-05-19 21:34:16 · 17543 阅读 · 1 评论 -
tomcat(10)安全性
【0】README0.0)本文部分描述转自“深入剖析tomcat”,旨在学习 tomcat(10)安全性 的基本知识;0.1)servlet技术支持通过配置部署描述器(web.xml)文件来对这些内容进行访问控制;(干货——web.xml又名 配置部署描述器)0.2)servlet容器是通过一个名为验证器的阀来支持安全限制的,该阀会被添加到Context的管道中,并且会先于 Wra原创 2016-05-09 15:54:03 · 4295 阅读 · 0 评论 -
tomcat(19)Manager应用程序的servlet类
【0】README1)本文部分文字描述转自:“深入剖析tomcat”,旨在学习“tomcat(19)Manager应用程序的servlet类” 的相关知识;2)Manager应用程序用来管理已经部署的web 应用程序;在tomcat7中,manager应用程序位于 %CATALINA_HOME%webapps 目录中;【1】使用Manager应用程序1)Manage原创 2016-06-01 19:45:09 · 1791 阅读 · 0 评论 -
tomcat(13)Host和Engine容器
【0】README0.1)本文部分文字描述转自 “how tomcat works”,旨在学习 “tomcat(13)Host和Engine容器” 的基础知识;0.2)Host容器:若你想在同一个tomcat部署 上运行多个Context 容器的话,就需要使用 Host 容器;它是Context容器的父容器;0.3)Engine容器:表示Catalina的整个servlet 引擎。如果原创 2016-05-20 15:27:41 · 13095 阅读 · 0 评论 -
tomcatSupplement(1)tomcat启动脚本分析(以Windows平台为例)
【0】README1)本文部分文字描述转自:“深入剖析tomcat”,旨在学习“tomcat启动脚本分析” 的相关知识;2)for tomcat4 startup files, please visit https://github.com/pacosonTang/HowTomcatWorks/tree/master/supplement/tomcat4_bin【1】Windo原创 2016-06-08 19:51:47 · 673 阅读 · 0 评论 -
tomcat(14)服务器组件和服务组件
【0】README0.1)本文部分文字描述转自 “how tomcat works”,旨在学习 “tomcat(14)服务器组件和服务组件” 的基础知识;【1】服务器组件(org.apache.catalina.Server)1)org.apache.catalina.Server接口的实例表示 Catalina的整个servlet引擎,囊括了所有的组件。服务器组件使用了一种优原创 2016-05-22 16:43:47 · 10740 阅读 · 0 评论 -
tomcat(20)基于JMX的管理
【0】README1)本文部分文字描述转自:“深入剖析tomcat”,旨在学习“tomcat(20)基于JMX的管理” 的相关知识;【1】JMX 简介1)intro:JMX == Java Management Extensions == JMX规范 == JMX管理扩展;2)既然ContainerServlet接口已经有利用Manager应用程序访问Catalin原创 2016-06-04 10:01:08 · 3612 阅读 · 0 评论 -
关于 tomcat启动后无法访问的问题(localhost:8080 (or your port specified))
【0】README1)启动 tomcat7, 然后通过 localhost:8080 无法访问,我也是醉了;以下给出了解决方法;【1】解决方法(如何让 Server Locations 和 deploye path 成为可编辑区域)step1)首先要移除 该 server 下部署的 所有项目;(右击该 server, add or remove)step2)右击该原创 2016-07-04 15:17:03 · 919 阅读 · 0 评论 -
tomcat(11)org.apache.catalina.core.StandardWrapper源码剖析
【0】README0.0)本文部分文字描述转自 “how tomcat works”,旨在学习 “tomcat(11)StandardWrapper源码剖析” 的基础知识;0.1)StandardWrapper 是 Catalina中对Wrapper接口的标准实现;要知道,tomcat 中有4种类型的容器:Engine,Host,Context 和 Wrapper;(干货——review原创 2016-05-17 10:42:30 · 10661 阅读 · 0 评论 -
tomcat(15)Digester库
【0】README0.1)本文部分文字描述转自 “how tomcat works”,旨在学习 “tomcat(15)Digester库” 的基础知识;2)problem+solution:2.1)problem:如下面的代码,Bootstrap类实例化连接器,servlet容器,Wrapper容器和其它组件,如设置连接器的关联顶层容器,通过set方法将它们联系起来;如监听器组原创 2016-05-23 16:11:43 · 8621 阅读 · 0 评论 -
对Servlet容器的补充
【0】README0.1)本文是对 一个简单的servlet容器 的补充;【1】Servlet容器池1.1)通过一个简单的servlet容器,我们看到,其中的核心代码是 类加载器, 然而,在我follow 其代码,分别在命令行 和 Eclipse 执行时,得到了不同的执行结果; 参见我的提问 对于URLClassLoader,Eclipse执行正确,而命令行执行抛出异常 这个问题描原创 2016-04-07 15:15:00 · 876 阅读 · 0 评论 -
自定义类加载器(ClassLoader + URLClassLoader)
【0】类加载器0.1)类加载器 的实现public class ClassLoaderTest { public static void main(String[] args) throws Exception { ClassLoader loader = new ClassLoader() { // 自定义类加载器 @Overr原创 2016-04-06 17:47:59 · 3442 阅读 · 0 评论 -
tomcat(5)servlet容器
【0】README0.0)本文部分文字描述转自:“深入剖析tomcat”,旨在学习 tomcat(5)servlet容器 的基础知识;0.1)intro to servlet容器:servlet容器是用来处理请求servlet资源,并为web客户端填充response 对象的模块;0.1.1)servlet容器:是 org.apache.catalina.Container接口的实原创 2016-04-11 09:42:50 · 4611 阅读 · 0 评论 -
tomcat(9)Session管理
【0】README0.0)本文部分描述转自“深入剖析tomcat”,旨在学习“tomcat-Session管理” 的基础知识;0.1)Catalina通过一个称为Session 管理器的组件来管理建立的Session对象,该组件由org.apache.catalina.Manager接口来表示。0.2)Session管理器:需要与一个Context容器相关联,且必须与一个Conte原创 2016-04-25 16:13:50 · 12412 阅读 · 0 评论 -
java.lang.ExceptionInInitializerError的原因
【0】README0.1)本文转自 http://blog.csdn.net/fykhlp/article/details/6236316;【1】正文如下 这个错误是说变量初始化出现问题,通常出现在静态变量尤其是单例模式。这种问题往往是初始化顺序不对造成的,下面举个简单的例子。[java] view plain copy转载 2016-04-09 18:30:54 · 1872 阅读 · 1 评论 -
tomcat(1)一个简单的web server
【0】README0.1)本文部分描述转自“深入剖析tomcat”, 旨在学习 一个简单的web server 的基础知识;【1】HTTP【1.1】HTTP请求1)一个HTTP请求包括以下3部分(parts):(干货——一个HTTP请求包括以下3部分(parts))p1)请求方法——统一资源标识符(URI)——协议/版本;p2)请求头;p3)实体;2)H原创 2016-04-04 21:57:10 · 1104 阅读 · 0 评论 -
tomcat(7)日志记录器
【0】README0.1)本文部分文字描述转自:“深入剖析tomcat”,旨在学习 “tomcat的日志记录器” 的基础知识;0.2)intro to 日志记录器:日志记录器是用来记录消息的组件;【1】Logger接口(日志记录器都必须实现 org.apache.catalina.Logger接口)1)Logger接口提供了一些log() 方法来写日志;2)Logger原创 2016-04-17 18:50:38 · 790 阅读 · 0 评论 -
tomcat(6)生命周期
【0】README0.1)本文部分文字描述转自“深入剖析tomcat”,旨在学习 “tomcat生命周期” 的基础知识;1)生命周期LifeCycle接口引入的背景:Catalina包含很多组件,当Catalina启动或关闭时,这些组件也会启动或关闭。而通过实现 org.apache.catalina.Lifecyle接口,可以达到统一启动或关闭这些组件的目的;2)实现了Lif原创 2016-04-12 17:01:28 · 5133 阅读 · 0 评论 -
tomcat(5)servlet容器(lastest version)
【0】README0.0)本文部分文字描述转自:“深入剖析tomcat”,旨在学习 tomcat(5)servlet容器 的基础知识;0.1)intro to servlet容器:servlet容器是用来处理请求servlet资源,并为web客户端填充response 对象的模块;0.2)补充:吃个饭过来,真心没想到这么多人围观,再次对文章重新排版(并不是博主我不给力,是CSDN编原创 2016-04-11 21:41:06 · 5336 阅读 · 0 评论 -
tomcat(4)Tomcat的默认连接器
【0】README0.0)本文部分文字描述转自:“深入剖析tomcat”,旨在学习 tomat(4)Tomat的默认连接器 的基础知识;0.1)Tomcat中的连接器是一个独立的模块,可以插入到servlet容器中,而且还有很多连接器可以使用;0.2)Tomcat中使用的连接器必须满足如下要求(requirement):r1)实现 org.apache.catalina.Con原创 2016-04-10 09:28:26 · 5327 阅读 · 4 评论 -
tomcat(3)连接器
【0】README0.1)本文部分内容转自“深入剖析tomcat”,旨在学习 tomcat(3)连接器 的基础知识;0.2)Catalina 中有两个主要的模块:连接器(ServerSocket) 和 容器(Servlet容器);【1】StringManager类0)intro to StringManager:该类用于处理 properties文件, 这些文件记录其所在包原创 2016-04-09 20:05:10 · 1421 阅读 · 0 评论 -
tomcat(2)一个简单的servlet容器
【0】README0.1)本文部分文字转自 “深入剖析Tomcat”,旨在学习 一个简单的servlet容器 的基础知识;【1】javax.servlet.Servlet接口1)intro Servlet:Servlet编程需要使用到 javax.servlet 和 javax.servlet.http 两个包下的接口和类。在所有的类和接口中, javax.servlet.转载 2016-04-07 14:33:19 · 874 阅读 · 0 评论 -
tomat(16)关闭钩子
【0】REAMDE0)本文部分文字描述转自:“how tomcat works”,旨在学习“tomat(16)关闭钩子”的相关知识;1)problem+solution:1.1)problem:在很多实际环境中,当用户关闭应用程序时,并不会按照推荐的方法关闭应用程序,很有可能不做清理工作;1.2)solution:java 为程序员提供了一种优雅的方法可以在在关闭过程中执行原创 2016-05-26 14:12:53 · 8263 阅读 · 0 评论 -
利用ant构建 jsp->servlet->class->jar
【0】README1)本文旨在 给出 利用ant构建 jsp->servlet->class->jar 的分析;2)本文部分内容转自:http://zfsn.iteye.com/blog/757919【1】ant脚本内容 及其分析1)build.xml原创 2016-07-08 14:38:47 · 1186 阅读 · 0 评论