Tomcat
文章平均质量分 80
易德军
what it doesnt kill me ,it will make me stronger!
展开
-
解剖Tomcat——Tomcat是如何工作的
对于java程序员来说,tomcat肯定都不会陌生。可是,你是多久之后,知道tomcat是用java写的呢?2009年前,我猜测tomcat是c++写的~从没敢想java写的可以用来运行java,以为java只是做做web开发,一时还觉得学java没出息,O(∩_∩)O哈哈~原来只是自己肤浅~~知道之后,又有没有冲动想到看看它的源码呢?2010年,偶尔一次在网上发现《how tomcat work原创 2017-01-03 17:59:39 · 2743 阅读 · 1 评论 -
How tomcat works——14 Server和 Service
概述在前面的章节中已经看到了如何初始化连接器和容器并将它们关联起来作为Servlet 容器。前面只有一个连接器,通过端口 8080 对 HTTP 请求进行服务。我们不能添加另一个连接器来处理例如 HTTPS 的请求。另外,前面所有的配套Demo程序都缺乏一件事:很好地启动和停止 Servlet 容器的机制。在本章中,我们将提供了该机制以及其它一些附属组件:服务器(server)和服务(service翻译 2017-03-10 21:45:36 · 761 阅读 · 0 评论 -
How tomcat works——12 StandardContext
概述如前面章节看到,一个上下文容器(Context)代表着一个 web 应用,每一个上下文包括一个或多个包装器(Wrapper),每个包装器代表一个 Servlet。然而,上下文还需要其它的一些组件,如加载器和管理器。本章介绍 Catalina 中Context 接口的标准实现类org.apache.catalina.core.StandardContext 。我们首先介绍 StandardCont翻译 2017-03-07 21:04:20 · 855 阅读 · 0 评论 -
How tomcat works——17 启动Tomcat
概述本章关注的重点是如何使用 org.apache.catalina.startup下面的Catalina和 Bootstrap 类来启动Tomcat。Catalina类用于解析Tomcat配置文件server.xml以及启动和停止Server。Bootstrap 类创建一Catalina实例并调用它的 process()方法。理论上,这两个类可以合成一个类。但是,为了支持 Tomcat 的多模式启翻译 2017-03-29 21:08:07 · 1267 阅读 · 0 评论 -
How tomcat works——15 Digester
概述在前面章节中已经看到,使用 Bootstrap 类来初始化连接器、上下文、包装器以及其它组件。获得了它们的对象后,就可以使用 setXX()方法来关联它们。例如可以如下初始化连接器和上下文:Connector connector = new HttpConnector();Context context = new StandardContext();将连接器和上下文相关联起来可以如下实现:c翻译 2017-03-14 20:24:08 · 1150 阅读 · 0 评论 -
How tomcat works——16 关闭钩子
概述在很多环境下,当用户在关闭应用程序时我们需要做一些清理工作。问题在于,用户并不是经常的按照预推荐流程来退出。例如,在 Tomcat 部署中通过初始化一个服务器(Server)并调用它的 start()方法来启动一个 servlet 容器,该方法又调用其它组件的start()方法。正常情况下,可以通过一个关闭命令来让服务器关闭所有组件,犹如第14 章中介绍。如果突发地关闭程序,如在程序还在运行时关翻译 2017-03-15 21:48:07 · 1363 阅读 · 0 评论 -
How tomcat works——18 部署
概述要使得一个 web 应用可以访问,则应用上下文(Context)必须先部署在主机(Host)上。在 Tomcat 中,一个应用上下文可以以 WAR 文件的形式部署,也可以直接将整个应用程序部署在Tomcat 安装目录的 wabapp 目录下面。部署的每个应用,都可以有一个配置描述文件用来配置该上下文,配置文件以 XML 文档的形式存在。注意:在 Tomcat4 和 5 中有两个已经部署好的应用:翻译 2017-04-01 21:24:08 · 1183 阅读 · 0 评论 -
How tomcat works——19 管理Servlet
概述Tomcat4/5有一个 Manager 应用程序用于管理部署的应用程序。跟其它应用程序不同,Manager 并不在%CATALINA_HOME%/webapps 目录下而是在%CATALINA_HOME%/server/webapps 下。Manager 有一描述文件 manager.xml在%CATALINA_HOME$/webapps(Tomcat4)或%CATALINA_HOME%/se翻译 2017-04-16 18:57:43 · 1175 阅读 · 0 评论 -
How tomcat works——20 基于JMX的管理
概述第 19 章讨论了 Manger 应用程序,演示了如何使用实现了 ContainerServlet 接口的ManagerServlet 类来访问 Catalina 的内部对象。本章演示了如何使用JMX技术进而更方便、老练地管理 Tomcat。对于不熟悉 JMX 的读者,本章开头先进行了简单的JMX介绍。另外本章介绍了Catalina中使用的“Commons Modeler”建模库,它可以很简单的翻译 2017-05-06 19:05:22 · 1424 阅读 · 0 评论 -
How tomcat works——引言
排版更好的百度电子书:https://yuedu.baidu.com/ebook/ac92f0d35122aaea998fcc22bcd126fff7055d60概述欢迎阅读《How Tomcat Works》。这本书详细的剖析了Tomcat 4.1和5.0工作原理,并讲解了其代号为“Catalina” 当前免费、开源、最流行的servlet容器的内部运作机制。Tomcat是个复杂的系统,它是由许多翻译 2017-01-04 10:28:12 · 2574 阅读 · 1 评论 -
How tomcat works——13 Host 和 Engine
概述本章要讨论的2个主题是主机(host)和引擎(Engine)。如果需要在一个 Tomcat部署中部署多个上下文,需要使用一个主机。理论上,当只有一个上下文容器时不需要主机,正如下面 org.apache.catalina.Context 接口中描述:“上下文容器的父容器通常是主机,但是可能有一些其它实现,没有必要的时候也可以忽略”然而在实践中,一个 Tomcat 部署往往需要一个主机。至于为什么翻译 2017-03-08 20:49:59 · 1120 阅读 · 0 评论 -
How tomcat works——10 安全性
概述一些web 应用内容是受限的,只有在有特定权限的用户输入正确的用户名和密码后才能访问。Servlet 通过配置部署文件 web.xml 来对安全性提供技术支持。本章将介绍 container 如何支持安全性控制。servlet 容器通过一个称为 authenticator 的阀门(valve)来支持安全认证。当 container 启动时,authenticator 被添加到container翻译 2017-02-24 20:25:30 · 1184 阅读 · 0 评论 -
How tomcat works——8 类加载器(Loader)
概述我们在前面的章节中已经实现了一个简单的加载器,用它来加载 servlet 类。本章会介绍标准的web应用加载器,简单地说就是加载器,在Catalina中。servlet容器需要定制加载器,而不能简单地使用系统的类加载器,因为系统类加载器不应该信任正在运行的servlet。如果像前面章节中那样使用系统的加载器来加载 servlet 和其它需要的类,这样 servlet 就可以进入 Java 虚拟机翻译 2017-01-25 16:17:25 · 1079 阅读 · 0 评论 -
How tomcat works——3 连接器
概述在前言简介中提到,Catalina中含有两个主要模块:连接器(connector)和容器(container)。本章中我们将会写一个可以创建更好的request和response对象的连接器,用来改进第 2 章中的应用Demo。一个符合 Servlet 2.3 和 2.4规范的连接器必须创建 javax.servlet.http.HttpServletRequest 和javax.servlet翻译 2017-01-08 18:42:15 · 1597 阅读 · 0 评论 -
How tomcat works——1 一个简单的Web Server
本章讲解了Java Web Server是如果工作的。一个Web Server也被叫着HTTP(Hypertext Transfer Protocol) Server,因为它使用HTTP协议和客户端通讯——客户端通常是WEB浏览器。一个最基本的Java Web Server会用到二个重要的Class:java.net.Socket和java.net.ServerSocket,通过HTTP信息通信。因翻译 2017-01-04 14:42:31 · 1418 阅读 · 0 评论 -
How tomcat works——2 一简单的Servlet容器
概述本章通过二个应用Demo讲解如何开发自己的servlet容器。应用Demo1尽可能简单的设计,以便于你更好地理解servlet容器是如何工作的。然后,应用Demo1慢慢演化为第二个servlet容器——稍微变的复杂一些。注意:每一章的应用Servlet容器都是由上一章逐渐演化过来的,直到一个完整的Tomcat Servlet容器在第17章出现。二个Servlet容器都可以处理简单的servlet翻译 2017-01-05 18:49:58 · 910 阅读 · 1 评论 -
How tomcat works——5 容器
容器(container)是一用来处理 servlet 请求并填充返回对象给 web客户端的模块。接口org.apache.catalina.Container定义了容器的形式,有4种容器:引擎(Engine), 主机(Host), 上下文(Context), 和包装器(Wrapper)。本章将会介绍 context 和 wrapper,而 Engine 和 Host 会留到第13章介绍。本章从介绍翻译 2017-01-15 21:07:46 · 1299 阅读 · 0 评论 -
How tomcat works——6 生命周期
概述Catalina 由多个组件组成,当 Catalina 启动时,这些组件也需要很好地启动。当Catalina 停止时,这些组件也必须有机会被清除。例如,当一个容器停止工作时,它必须调用所有已加载 servlet 的 destroy()方法,而 session 管理器要把session保存到二级存储中。保持组件启动和停止一致的机制是通过实现org.apache.catalina.Lifecycle翻译 2017-01-17 16:26:31 · 661 阅读 · 0 评论 -
How tomcat works——4 Tomcat中默认连接器
概述第 3 章的连接器运行良好,且已获得较好性能。但是,它只是作为一教学工具,被设计用来介绍 Tomcat4 的默认连接器。理解第 3 章中的连接器对于理解 Tomcat4 的默认连接器是至关重要的。现在,我们在第 4 章中将通过剖析 Tomcat4 默认连接器的代码,讨论、创建一个真实的 Tomcat 连接器。注意:本章中提及的“默认连接器”是指 Tomcat4 中的默认连接器。即使默认的连接器已翻译 2017-01-12 19:28:36 · 1604 阅读 · 0 评论 -
How tomcat works——7 日志记录器
概述日志系统是一个记录信息的组件。在 Catalina 中,日志系统是一个跟容器相关联且相对简单的组件。Tomcat 在 org.apache.catalina.logger 包中提供了多个不同的日志系统。本章的应用程序在 ex07.pyrmont 包中。SimpleContext 和Bootstrap 是从第六章中修改得到。本章有三节组成,第一节介绍了所有日志系统都要实现的 org.apache.翻译 2017-01-18 17:52:01 · 691 阅读 · 0 评论 -
How tomcat works——11 StandardWrapper
概述我们在第5章中已经学到,一共有4种容器:engine(引擎)、host(主机)、context(上下文)和 wrapper(包装器)。并且在前面的章节里也介绍了如何建立自己的context 和 wrapper。一个上下文一般包括一个或者多个包装器,每一个包装器代表一个 servlet。本章将介绍Catalina 中 Wrapper 接口的标准实现。首先介绍了一个 HTTP 请求会唤醒的一系列方法翻译 2017-02-28 20:46:54 · 1147 阅读 · 0 评论 -
How tomcat works——9 session管理
概述Catalina通过名为manager的组件来完成session管理,该组件由org.apache.catalina.Manager接口表示。 一个manager总是与context相关联。 其中,manager负责创建,更新和销毁(无效)session对象以及可返回有效的session对象给任何请求组件。一个 servlet 可以使用 getSession()方法获得一个 session 对象翻译 2017-02-11 21:31:12 · 1039 阅读 · 0 评论 -
How tomcat works——序言
在路上2006年的暑假,抱着早点接触社会的心态,从合肥坐24小时绿皮车跑到广州打暑假工。当时感触到:学电气自动化的似乎天天要和那些油乎乎的机械打交道;哪一天如果自己想干点什么,初期投入买个设备都要很多钱。 广州回来后,一天下午我在家里菜园马路边的草丛中捡了一部摩托罗拉手机。手机里面的游戏启动屏是冒着热气的茶杯,还有着JAVA4个字母,第一眼就甚是喜欢那个图案——与君初相识,犹如故人归。2007年,原创 2017-06-15 18:19:38 · 796 阅读 · 1 评论