Tomcat知识系列
文章平均质量分 59
blueskypan
这个作者很懒,什么都没留下…
展开
-
Tomcat Wiki笔记
#######################################Tomcat wiki学习#######################################1. 标准目录格局(1) *.html, *.jsp, *.js, *.css,etc 存放在根目录下,或者做根的子目录(2) /WEB-INF/web.xml :描述webApp的servlets...原创 2018-09-28 13:18:37 · 502 阅读 · 0 评论 -
How Tomcat works 18: JMX管理
1. Tomcat中的JMX概述(1)概述 对于一个可以被管理的Java对象,我们需要创建另一个对象MBean或Managed Bean。org.apache.catalina.mbeans包中有:ConnectorMBean, StandardEngineMBean, StandardHostMBean, StandardContextMBean。 一个MBean暴露出...原创 2018-10-31 16:23:27 · 183 阅读 · 0 评论 -
How Tomcat works 16-17: ShutdownHook 和Tomcat启动
Shutdown Hook一、概述 1. JVM会响应关闭自己的两种Event (1)应用程序调用System.exit方法或最后一个非守护进程non-daemon退出 (2)用户在关java程序之前,突然强制关机,比如CTRL+C或者注销系统 2. JVM为shuttingdown提供了两段式处理流程 (1)JVM会和所有注册过的shutdown ho...原创 2018-10-31 14:12:48 · 378 阅读 · 0 评论 -
How Tomcat works 14: Service 和 Server
一、Server 1. 总体架构位置 2. Server的设计目的 Server提供了优雅的启动停止所有内部组件的功能,有了server,无需再单独启动connector和Container 3. Server具体内部功能 server的许多内部方法都可以配置在server.xml文件中。可以包含0个到多个Service。Server的生命周期关联四个方...原创 2018-10-29 16:01:43 · 150 阅读 · 0 评论 -
How Tomcat works 13:Host容器和Engine容器
一、 Host 容器Host比较简单,主要配置hostname,别名,添加默认和包含的context,以及是否允许自动部署等功能。 (1)Host总体设计架构 (2)Request的处理流程 A. 一个Request进入host后首先会使用pipleline责任链依次调用配置好的valves B. 在StandardValve内部standardHostMa...原创 2018-10-29 13:28:06 · 165 阅读 · 0 评论 -
How Tomcat Works 12: StandardContext
1. StandardContext的配置 (1)启动:start()方法调用后,如果context实例失败,需要将available设为false (2)Tomcat部署context时:会先读取解析%CATALINA_HOME%/conf内的web.xml为所有standardContext,而后会读取解析webapp-level级别的web.xml。此外,authen...原创 2018-10-17 12:19:36 · 122 阅读 · 0 评论 -
How Tomcat works 10: Security
1. 概述: WebApp的资源的访问限制可以通过web.xml文件来支撑。Servlet容器可以通过叫做Authenticator valve类来支持。Authenticator valve会调用context's realms的authenticate方法校验user 2. Realm类 (1)一个Realm通常附属于一个context, 一个container...原创 2018-10-16 22:30:29 · 110 阅读 · 0 评论 -
How Tomcat works 11: StandardWrapper容器
1. Http request处理时序图 2. StandardContext和StandardWrapper的构造函数: Public StandardContext() { super(); pipeline.setBasic(new StandardContextValve()); ...原创 2018-10-16 22:29:50 · 114 阅读 · 0 评论 -
How tomcat works 9: Session Management
1. 概述(1)在HttpRequestBase的doGetSession()中,a. 会使用manager=context.getManager->session=manager.findSession(reqSessionId)b. manager可以使用file或database持久化session2. Sessions(1) 由于安全问题使用StandardSes...原创 2018-10-16 14:36:55 · 126 阅读 · 0 评论 -
How Tomcat works 8: Loader类
1. 概述 (1)需要定制加载类的原因:安全性:每个context需要有自己的class loader来加载所有内部的servlet类。而不能用系统自带的system loader来加载,否则违反安全性约束 重新加载:当WEB-INF/classes中的类改变时,需要重新加载2. Java类加载器(1)JVM每次加载java类,先创建class对象,后载入内存(2)JVM加载...原创 2018-10-16 09:52:49 · 122 阅读 · 0 评论 -
How Tomcat works 7: Logger日志系统
1. Logger接口(1)Code: package com.cisco.tomcat.logger; import java.beans.PropertyChangeListener; import com.cisco.tomcat.lifecycle.Container; public interface Logger { public static...原创 2018-10-15 14:48:16 · 128 阅读 · 0 评论 -
How Tomcat works 6: Lifecycle
概述 Catalina由许多组件组成,当容器启动时,这些组件都需要启动。当容器停止时,所有组件都需要做清除动作。如:调用所有servlet的detroy动作,session manager把session对象存入第二存储位置。启动和停止组件的持续性机制就是实现Lifecycle接口的实现类。 Lifecycle接口的实现组件可以触发一个或多个事件(Events): 与启...原创 2018-10-14 23:25:38 · 117 阅读 · 0 评论 -
How Tomcat works 4-5: Container
Container概述(1)主要包含四种:Engine:整个catalina servlet容器, Host:一个虚拟主机包含多个context容器, Context:一个web应用容器,包含一道多个Wrapper容器, Wrapper:独立servlet容器(2)UML图(3)添加/移除/查找子容器:container.addChild(container) -> con...原创 2018-10-14 23:20:01 · 148 阅读 · 0 评论 -
How Tomcat works 3: 简单的connector
Connetor的业务流程图:StringManager:(1)用于给tomcat管理各种error message。不同语言包的error Message存储在如:LocalStrings.properties, 日文的文件如:LocalStrings_jp.properties(2)StringManager是包内共享,全局使用Singleton pattern将所有key-val...原创 2018-10-14 23:12:10 · 114 阅读 · 0 评论 -
How Tomcat Works 2: A Simple Servlet Server
1 javax.servlet.Servlet 接口(1)接口包含五个方法:Public void init(ServletCongig config)Public void service(ServletRequest request, ServletResponse response)Public void destory()Public void ServletConfi...原创 2018-09-29 14:58:37 · 113 阅读 · 0 评论 -
How Tomcat Works 1: A Simple Http Server
A Simple Web Server Web Server也称作HTTP server,用于客户端和服务器端HTTP通信。Java-base的webserver 主要使用java.net.Socket and java.net.ServerSocket. 1 HTTP协议介绍(Hypertest Transfer Protocol) Client request一个文...原创 2018-09-28 13:22:56 · 147 阅读 · 0 评论 -
How Tomcat Works: Introduction
How Servlet Container works(1) 为一个servlet处理一个request, 主要做三件事 I. 创建一个request 对象(包含parameters,headers,cookies,query string,URI等信息). request 对象是javax.servlet.ServletRequest 接口或该接口的实现实例 ||. 创建...原创 2018-09-28 13:20:09 · 192 阅读 · 0 评论 -
How Tomcat Works 15: Digester
一、概述 前面章节中,使用hard-code来管理各component间的从属关系,如果需要改变则需要重新编译Bootstrap类。幸运的是tomcat设计者采用了更优雅的方法来管理配置,即XML文件server.xml. 这样我们只需要修改server.xml文件就可以设置tomcat。如:<context docBase='myApp' path="/myApp"/> ...原创 2018-10-30 10:02:20 · 200 阅读 · 0 评论