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 最新catalina 9 的源码,attach 后可以更加方便调试Bug,更加深入准确的定位错误!
Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...
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包下载,依赖包
tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat...
本篇文章将详细探讨标题为“tomcat-coyote-7.0.34-sources.jar.zip”的源码资源,带你走进Tomcat Coyote的世界。 Coyote是Tomcat中的核心组件之一,主要负责处理HTTP请求和响应。它的设计目标是提供一个高性能、低...
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包下载,依赖包
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
atmosphere-compat-tomcat7-1.0.7-sources.jar
Apache Tomcat 7.0是Java Servlet和JavaServer Pages(JSP)的开源Web应用程序服务器,由Apache软件基金会开发和维护。它是最流行的轻量级应用服务器,特别适合部署Java Web应用程序。Tomcat 7.0是7.x系列的一个版本...
**Idea Tomcat Runner插件详解** 在Java开发领域,IntelliJ IDEA是一款备受推崇的集成开发环境(IDE),尤其以其高效、智能的代码编辑功能和丰富的插件生态而著称。对于使用Java Web应用的开发者来说,Tomcat服务器...
### Tomcat打补丁方法详解 #### 一、前言 Apache Tomcat是一款开源的Servlet容器,它能够作为Web服务器独立运行,也可以与Apache等其他Web服务器配合使用。Tomcat因其简单性和灵活性,在中小型项目中得到了广泛...
《Tomcat深入剖析》这本书是理解Apache Tomcat服务器工作原理的宝贵资料,它由美国作者撰写并被翻译成中文,适合各个层次的开发者阅读。通过深入学习,读者能够对Tomcat的内部机制有全面而深入的理解,从而更好地...
Java 代码启动 Tomcat 在 Java 中,使用 Tomcat 服务器来发布 Web 应用程序是一种常见的做法。下面,我们将详细介绍如何使用 Java 代码来启动 Tomcat 服务器,并实现远程控制 Tomcat。 标题: Java 代码启动 ...
《深入理解Tomcat-Redis-Session-Manager:在Tomcat7和Tomcat8中的应用》 在现代Web应用程序开发中,session管理是一个至关重要的环节,它涉及到用户会话的持久化和跨请求的数据共享。传统的session管理方式在高...
"eclipse部署tomcat报错解决方案" 在Eclipse中部署Tomcat服务器时,可能会遇到各种问题。本文将讨论在Eclipse中部署Tomcat服务器时出现的问题和解决方案。 问题描述 在Eclipse中部署Tomcat服务器时,可能会出现...
《SmartTomcat插件在IDEA中的安装与使用详解》 SmartTomcat是专为IntelliJ IDEA(简称IDEA)设计的一款强大的Tomcat服务器管理插件,版本为3.8.5。它极大地简化了开发者在IDEA中部署、运行和调试Java Web应用程序的...
Spring Boot 单独升级 Tomcat 在 Spring Boot 项目中,Tomcat 的升级是非常重要的,因为低版本的 Tomcat 存在漏洞,可能会导致安全问题。在本文中,我们将详细介绍如何单独升级 Tomcat,以解决漏洞问题。 知识点 1...