如果说Heritrix3.1.0系统主要涉及的是客户端的SOCKET编程,那么本系列的How Tomcat Works主要涉及的是服务器端的SOCKET编程目前关于解析Tomcat源码的文章比较多,本人在时间足够的情况下,会陆续写完自己的版本,一来是为增强编程能力,同时也为读者借鉴为了更方便的查看并...
转载 2013-05-12 06:41:00
188阅读
2评论
下面接着分析Context容器,该接口最重要的方法是addWrapper()方法与creatWrapper()方法,添加具体的子容器,这里是Wrapper容器实例这里要分析的是一个简单的Context容器,它针对特定的客户端请求,通过映射器找到要处理该特定请求的子容器实例(Wrapper)具体流程是...
转载 2013-08-03 23:30:00
77阅读
17点赞
1评论
本文继续分析HttpProcessor类,该类实现了org.apache.catalina.Lifecycle接口和java.lang.Runnable接口我们先分析它的构造函数/** * The HttpConnector with which this processor is associated. */ private HttpConnector connector
转载 2013-08-03 22:19:00
110阅读
2评论
本文分析tomcat容器的安全管理,servlet技术支持通过配置部署描述器(web.xml文件)来对受限内容进行访问控制;servlet容器是通过一个名为验证器的阀来支持安全限制的,当servlet容器启动时,验证器阀会被添加到Context容器的管道中。在调用Wrapper阀之前,会先调用验证器...
转载 2013-08-07 02:03:00
123阅读
2评论
本文重点关注启动tomcat时会用到的两个类,分别为Catalina类和Bootstrap类,它们都位于org.apachae.catalina.startup包下;Catalina类用于启动或关闭Server对象,并负责解析server.xml配置文件;Bootstrap类是一个入口点,负责创建Catalina实例,并调用其process()方法。org.apachae.catalina.sta
转载 2013-08-11 00:24:00
76阅读
2评论
希望各位网友在看完>
原创 2022-08-19 07:14:36
167阅读
After downloading the Tomcat, you will set up something to make it work.   1. Set the JAVA_HOME to start the Tomcat.    Add the follong lines into the /bin/catalina.sh  
原创 2009-08-31 16:40:41
479阅读
本文接下来描述servlet容器是怎样管理其相关组件的生命周期的,首先本人描述一下事件监听模式,也可以称为观察者模式,该模式分为以下角色即抽象主题角色 具体主题角色 抽象观察者角色及具体观察者角色,通常在主题角色里面维持一个观察者角色的聚集,并定义了对观察者角色的添加和删除方法;在主题角色事件发生时...
转载 2013-08-03 23:31:00
107阅读
本文接下来介绍并分析servlet容器,servlet容器是用来处理请求servlet资源,并为web客户端填充response对象的模块。servlet容器是org.apache.catalina.Container接口的实例,在tomcat中,有四种类型的容器,分别为Engine、Host 、C...
转载 2013-08-03 22:20:00
112阅读
我们这些可怜虫,只有沿着大神的思路,这样我们才能进步得更快;因为我们不是跟大神处于同一级别上。所以我这里是参考《How Tomcat Works》这本英文版的大作来理解tomcat的工作原理本人认为,Tomcat容器源码是学习java编程以及设计模式等的绝佳范例,深入理解其源码对我辈开发人员的编程水平提高大有裨益!我们可以从该书指定的官方网址下载相关示例源码 http://www.brainyso
转载 2013-08-01 06:51:00
167阅读
2评论
Servlet容器有两个主要的模块,即连接器(connector)与容器(container),本文接下来创建一个连接器来增强前面文章中的应用程序的功能,以一种更优雅的方式来创建request对象和response对象;为了兼容Servlet 2.3和2.4,连接器这里创建的是javax.servlet.http.HttpServletRequest对象和javax.servlet.http.Ht
转载 2013-08-02 01:20:00
108阅读
2评论
本文接下来介绍tomcat的默认连接器,Tomcat中的默认连接器必须满足以下要求: 实现org.apache.catalina.Connector接口负责创建实现org.apache.catalina.Request接口的Request对象负责创建实现org.apache.catalina.Response接口的Response对象 org.apache.catalina.Connector接口
转载 2013-08-03 22:18:00
95阅读
2评论
本文接下来分析tomcat的日志记录器,日志记录器是用来记录消息的组件,在tomcat中,日志记录器需要与某个servlet容器相关连;在org.apache.catalina.logger包下,tomcat提供了几种不同类型的日志记录器。tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口public interface Logger { p
转载 2013-08-05 03:38:00
92阅读
10点赞
2评论
本文接下来分析tomcat的类载入器,tomcat需要实现一个自定义的载入器,而不能使用系统类载入器(1)限制serlvet访问当前运行的java虚拟机中环境变量CLASSPATH指明的路径下的所有类和库,而只允许载入WEB-INF/class目录及其子目录下的类,和从部署的库到WEB-INF/li...
转载 2013-08-05 03:39:00
115阅读
2评论
我们已经知道,在tomcat中有四种类型的servlet容器,分别为Engine、Host、Context 和Wrapper,本文接下来对tomcat中Wrapper接口的标准实现进行说明。对于每个引入的HTTP请求,连接器都会调用与其关联的servlet容器的invoke()方法;然后,servlet容器会调用所有子容器的invoke()方法这里面的流程通常是servlet容器调用其管道对象的i
转载 2013-08-07 02:05:00
134阅读
2评论
本文接下来分析Context容器,Context容器实例表示一个具体的Web应用程序,其中包括一个或多个Wrapper实例;不过Context容器还需要其他的组件支持,典型的如载入器和Session管理器等。在创建StandardContext实例后,必须调用其start()方法来为引入的每个HTT...
转载 2013-08-10 23:55:00
103阅读
2评论
本文接下来会介绍Host容器和Engine容器,在tomcat的实际部署中,总是会使用一个Host容器;本文介绍Host接口和Engine接口及其相关类Host容器是org.apache.catalina.Host接口的实例,Host接口继承自Container接口, 其定义如下public interface Host extends Container { public static f
转载 2013-08-10 23:57:00
89阅读
2评论
tomcat容器通过一个称为Session管理器的组件来管理建立的Session对象,该组件由org.apache.catalina.Manager接口表示;Session管理器必须与一个Context容器相关联(需要用到Context容器的相关上下文或方法)。默认情况下,Session管理器会将其...
转载 2013-08-05 03:42:00
139阅读
在前面的文章中,已经学会了如何通过实例化一个连接器和容器来获得一个servlet容器,并将连接器和容器相关联;但在前面的文章中只有一个连接器可用,该连接器服务8080端口上的HTTP请求,无法添加另一个连接器来服务诸如HTTPS之类的其他请求;此外,在前面的文章中的应用程序中有些缺憾,即缺少一种启动/关闭servlet容器的机制。org.apache.catalina.Server接口的实例表示C
转载 2013-08-10 23:58:00
126阅读
2评论
在前面的文章中,如果我们要启动tomcat容器,我们需要使用Bootstrap类来实例化连接器、servlet容器、Wrapper实例和其他组件,然后调用各个对象的set方法将它们关联起来;这种配置应用程序的方法有一个明显的缺陷,即所有的配置都必须硬编码。调整组件配置和属性值都必须要重新编译Boot...
转载 2013-08-10 23:59:00
122阅读
15点赞
  • 1
  • 2
  • 3
  • 4
  • 5