`

Tomcat sources reading

 
阅读更多
1. Catalina 2 modules: Connector & container
Connector: create a request & response object per each http request
Container: receive request & response objects from connector and invoke servlet's service() method.

2. Request: encapsules inputStream
   Response: encapsules outputStream

3. HttpConnector (one) & HttpProcessor (many)
HttpConnector implements Runnable, run in its own thread. when running/starting, new create a serverSocket and wait for http request.
For each request, it would create a HttpProcessor and invoke processor.process(socket).
HttpProcessor for each passed in socket, create a HttpRequest & HttpResponse. Parse first line & headers and fullfill HttpRequest object. and last process.

4. Container.invoke(Request request, Response response)
Use URLClassLoader to load servlet class (new instance), then call servlet.service(HttpServletRequest, HttpServletResponse)

5. BootStrap process
init a HttpConnector and then call connector.setContainer(container instance)

6. 4 type containers
Engine (whole catalina servlet engine)
--> Host (virtual host of one or more context)
--> Context (one web applicaiton)
--> Wrapper (one single servlet)

7. 4 interfaces after container.invoke(request, response) method
Pipeline (tasks to be invoked by container, like filter chain) & Valve (One detail execution task, like a filter)
Pipeline.invoke(request, response) same method as container
Valve.invoke(request, response) (Handle received request)
ValveContext.invokeNext() to iterate valves
Contained(阀Valve通过实现该接口至多于一个Servlet相关联): getContriner() & setContainer(container)

8. org.apache.catalina.Mapper映射器: maps between a protocol and a container
wrapper = (Wrapper) context.map(request, true)

9. Lifecycle, LIfecycleEvent & LifecycleListener
Lifecycle.start()/stop(): all components must implements these 2 methods
分享到:
评论

相关推荐

    tomcat-catalina-9.0.31-sources.jar

    tomcat-catalina-9.0.31-sources.jar 最新catalina 9 的源码,attach 后可以更加方便调试Bug,更加深入准确的定位错误!

    tomcat7tomcat8tomcat9

    Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...

    tomcat7,tomcat8,tomcat9

    Tomcat7、Tomcat8和Tomcat9是不同版本的Tomcat,每个版本都有其特性和改进。 **Tomcat7**: Tomcat7是2011年发布的,它主要支持Java Servlet 3.0和JSP 2.2规范。这个版本引入了一些重要改进,包括增强的安全性、更...

    all-samples-tomcat-3.0.0-sources.jar

    标签:all-samples-tomcat-3.0.0-sources.jar,all,samples,tomcat,3.0.0,sources,jar包下载,依赖包

    tomcat5.5tomcat最新客户端

    tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat...

    tomcat-coyote-7.0.34-sources.jar.zip

    本篇文章将详细探讨标题为“tomcat-coyote-7.0.34-sources.jar.zip”的源码资源,带你走进Tomcat Coyote的世界。 Coyote是Tomcat中的核心组件之一,主要负责处理HTTP请求和响应。它的设计目标是提供一个高性能、低...

    tomcat 7 和 tomcat 8

    Tomcat 7 和 Tomcat 8 是两个非常重要的版本,它们是Apache软件基金会开发的开源Java Servlet容器,主要用于运行Java Web应用程序。这两个版本都遵循Java EE(Enterprise Edition)规范,但各自具有不同的特点和改进...

    atmosphere-compat-tomcat-0.6.3-sources.jar.zip

    标签:atmosphere-compat-tomcat-0.6.3-sources.jar.zip,atmosphere,compat,tomcat,0.6.3,sources,jar.zip包下载,依赖包

    tomcat 5.0 tomcat 5.0

    tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0tomcat 5.0

    spring-instrument-tomcat-4.0.0.RELEASE-sources.jar

    spring-instrument-tomcat-4.0.0.RELEASE-sources.jar

    atmosphere-compat-tomcat7-1.0.7-sources.jar

    atmosphere-compat-tomcat7-1.0.7-sources.jar

    Tomcat7.0 tomcat最新版本

    Apache Tomcat 7.0是Java Servlet和JavaServer Pages(JSP)的开源Web应用程序服务器,由Apache软件基金会开发和维护。它是最流行的轻量级应用服务器,特别适合部署Java Web应用程序。Tomcat 7.0是7.x系列的一个版本...

    idea tomcat runner插件

    **Idea Tomcat Runner插件详解** 在Java开发领域,IntelliJ IDEA是一款备受推崇的集成开发环境(IDE),尤其以其高效、智能的代码编辑功能和丰富的插件生态而著称。对于使用Java Web应用的开发者来说,Tomcat服务器...

    tomcat打补丁方法

    ### Tomcat打补丁方法详解 #### 一、前言 Apache Tomcat是一款开源的Servlet容器,它能够作为Web服务器独立运行,也可以与Apache等其他Web服务器配合使用。Tomcat因其简单性和灵活性,在中小型项目中得到了广泛...

    Tomcat深入剖析pdf+源码(Tomcat运行原理)

    《Tomcat深入剖析》这本书是理解Apache Tomcat服务器工作原理的宝贵资料,它由美国作者撰写并被翻译成中文,适合各个层次的开发者阅读。通过深入学习,读者能够对Tomcat的内部机制有全面而深入的理解,从而更好地...

    java代码启动tomcat

    Java 代码启动 Tomcat 在 Java 中,使用 Tomcat 服务器来发布 Web 应用程序是一种常见的做法。下面,我们将详细介绍如何使用 Java 代码来启动 Tomcat 服务器,并实现远程控制 Tomcat。 标题: Java 代码启动 ...

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    《深入理解Tomcat-Redis-Session-Manager:在Tomcat7和Tomcat8中的应用》 在现代Web应用程序开发中,session管理是一个至关重要的环节,它涉及到用户会话的持久化和跨请求的数据共享。传统的session管理方式在高...

    eclipse部署tomcat 报错

    "eclipse部署tomcat报错解决方案" 在Eclipse中部署Tomcat服务器时,可能会遇到各种问题。本文将讨论在Eclipse中部署Tomcat服务器时出现的问题和解决方案。 问题描述 在Eclipse中部署Tomcat服务器时,可能会出现...

    SmartTomcat-3.8.5.zip

    《SmartTomcat插件在IDEA中的安装与使用详解》 SmartTomcat是专为IntelliJ IDEA(简称IDEA)设计的一款强大的Tomcat服务器管理插件,版本为3.8.5。它极大地简化了开发者在IDEA中部署、运行和调试Java Web应用程序的...

    springboot单独升级Tomcat

    Spring Boot 单独升级 Tomcat 在 Spring Boot 项目中,Tomcat 的升级是非常重要的,因为低版本的 Tomcat 存在漏洞,可能会导致安全问题。在本文中,我们将详细介绍如何单独升级 Tomcat,以解决漏洞问题。 知识点 1...

Global site tag (gtag.js) - Google Analytics