Tomcat功能与架构分析
tomcat概述
tomcat概述
Tomcat概述
Tomcat是一个开源的Java Servlet容器,由Apache软件基金会开
发和维护。它实现了Java Servlet和JavaServer Pages(JSP)规范,并提供了一个HTTP Web服务器环境,可以让开发人员在其上部署和运行Java Web应用程序。Tomcat是使用Java语言编写的,因此它可以在任何支持Java虚拟机(JVM)的平台上运行。
Tomcat的特点
1. 开源免费:Tomcat是一款完全免费且开源的软件,任何人都可以
自由地下载、使用和修改它。
2. 轻量级:Tomcat非常轻量级,只需要很少的系统资源就可以运行,并且它非常容易安装和配置。
3. 易于扩展:Tomcat提供了很多可定制的选项,使得开发人员可以
根据自己的需要扩展和定制Tomcat的功能。
4. 稳定可靠:由于Tomcat经过了长时间的测试和改进,因此它非常
稳定可靠,并且能够处理大量并发请求。
5. 安全性高:Tomcat提供了很多安全性选项,包括SSL/TLS加密、
访问控制、认证等等,使得Web应用程序更加安全可靠。
6. 跨平台性强:由于Tomcat是使用Java语言编写的,因此它可以在任何支持Java虚拟机(JVM)的平台上运行,包括Windows、Linux、Mac OS等等。
Tomcat的架构
Tomcat的架构分为三个层次:
1. Web层:Web层是Tomcat最外层的一层,它负责处理HTTP请
求和响应,并将请求转发给下一层进行处理。
2. Servlet/JSP容器层:Servlet/JSP容器层是Tomcat中间的一层,
Tomcat整体结构简单介绍
Tomcat整体结构简单介绍
Tomcat作为web容器⼴为⼈知,从我最开始学Java⼀直到现在⼯作,可以说是伴随了我的整个编程⽣涯。Tomcat的本质是⼀个Servlet容器。⼀个Servlet能做的事情是:处理请求资源,并为客户端填充response对象。
Tomcat则负责载⼊我们编写的Servlet类,调⽤Servlet的init()⽅法,对于⼀个request请求,创建⼀个servletRequest和⼀个servletResponse实例,调⽤该servlet的service()⽅法,将servletRequest和servletResponse作为参数传⼊,关闭该servlet 时,调⽤destroy()并将其卸载。接下来简单介绍⼀下Tomcat整体的结构。
Tomcat 的总体结构
如图,Tomcat最主要的为两个组件是连接器(connector)和容器(container)。多个connector和⼀个container组成⼀个service,service⽤于对外提供服务,⽽service的⽣命周期由server来控制。server属于最顶层的抽象。
连接器(connector)⽤于处理⽹络连接相关的事情,如socket连接,request封装,连接线程池等⼯作。容器(container)主要处理 connector 接受的请求。Service 只是在 Connector 和 Container 外⾯多包⼀层,把它们组装在⼀起,向外⾯提供服务,⼀个 Service 可以设置多个 Connector,但是只能有⼀个 Container 容器。所有组件的⽣命周期都使⽤lifecycle接⼝统⼀管理,⾥⾯包含init,start,stop,destory⽅法。
tomcat基本架构
tomcat基本架构
Tomcat基本架构简介
在现代互联网应用中,Tomcat(Apache Tomcat)被广泛使用作为Java Servlet 容器来运行和管理Java Web应用程序。作为一个开源项目,Tomcat提供了一个可靠、高效的环境来部署和托管Java Web应用。本文将深入介绍Tomcat 的基本架构,包括它的组成部分、工作原理和核心功能。
一、组成部分
Tomcat基于Java技术实现,由多个组件构成,这些组件共同协作,以提供完整的Web服务器功能。以下是Tomcat的主要组成部分:
1. Catalina:Catalina是Tomcat的核心组件之一,负责管理和执行Servlet的生命周期。它包含了一个Coyote容器用于处理HTTP请求,并通过调用适当的Servlet来生成HTTP响应。
2. Coyote:Coyote是Tomcat的通信组件,用于将HTTP请求转发给Catalina 容器进行处理。它负责处理底层的网络通信,包括解析HTTP请求和生成HTTP 响应。
3. Jasper:Jasper是Tomcat的JSP引擎,用于将JSP文件编译成Java源文件,
并最终生成对应的Servlet类。它提供了JSP的运行时环境,使得Tomcat能够处理和执行JSP页面。
4. Cluster:Tomcat的Cluster组件用于实现集群部署,即可以将多个Tomcat 服务器连接在一起,共同处理和管理Web应用。它提供了负载均衡和会话复制等功能,确保Web应用的高可用性和可扩展性。
tomcat架构及源码解析
很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat 的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所有的connector种类及用法,接着从架构上分析了connector 模块在整个tomcat中所处的位置,最后对connector做了详细的源代码分析。并且我们以Http11NioProtocol为例详细说明了tomcat是如何通过实现ProtocolHandler接口而构建connector的。
通过本文的学习,应该可以轻松做到将tomcat做为web container集成到第三方系统,并且自定义任何你想要的高性能的HTTP连接器
1 Connector介绍
1.1 Connector的种类
Tomcat源码中与connector相关的类位于org.apache.coyote包中,Connector 分为以下几类:
∙Http Connector, 基于HTTP协议,负责建立HTTP连接。它又分为BIO Http Connector与NIO Http Connector两种,后者提供非阻塞IO与长连接
Comet支持。
∙AJP Connector, 基于AJP协议,AJP是专门设计用来为tomcat与http 服务器之间通信专门定制的协议,能提供较高的通信速度和效率。如与
Apache服务器集成时,采用这个协议。
tomcat 源码解读
tomcat 源码解读
Tomcat 是一款流行的开源 Web 服务器和应用服务器,它基于Java 技术开发,支持多种 Web 应用程序和框架。本文将带您深入解读 Tomcat 的源码,帮助您更好地理解 Tomcat 的工作原理和实现细节。
一、Tomcat 架构概述
Tomcat 是一个基于 Java 的开源 Web 服务器和应用服务器,它由多个组件组成,包括 Web 容器、Servlet 容器、连接器、过滤器等。其中 Web 容器和 Servlet 容器是 Tomcat 的核心组件,它们负责管理 Web 应用程序的部署和运行。Tomcat 通过多线程技术实现了高效的处理请求和响应,同时还支持集群和负载均衡等高级功能。
二、源码解析
1. Web 容器源码解析
Web 容器是 Tomcat 的核心组件之一,它负责管理 Web 应用程序的部署和运行。在 Tomcat 中,Web 容器使用 Servlet 技术实现,通过 Servlet API 和相关类库来处理 HTTP 请求和响应。在源码中,Web 容器实现了 Servlet API 中的核心接口,如HttpServletRequest、HttpSession、ServletContext 等,同时还提供了 Web 应用程序所需的配置和部署功能。
2. Servlet 容器源码解析
Servlet 容器是 Tomcat 中另一个核心组件,它负责管理Servlet 的部署和运行。在源码中,Servlet 容器实现了 Servlet API 中的核心接口和类库,提供了对 Servlet 的管理和控制功能。同
tomcat的基本概念
tomcat的基本概念
Tomcat的基本概念
Tomcat是一款基于Java的开源Web服务器。作为Apache软件基金会的一个项目,Tomcat实现了Java Servlet、JavaServer Pages(JSP)和Java API for WebSocket等Java技术的规范,在Web应用开发中扮演着重要的角色。本文将详细介绍Tomcat的基本概念,并一步一步回答相关问题。
第一部分:什么是Tomcat?
Tomcat是一个Web应用服务器,用于提供Java Servlet和JSP 等技术的服务。Tomcat的全称是Apache Tomcat,是Apache软件基金会的一个开源项目。其主要功能是运行和管理Web应用程序,使其可以在网络上被访问和交互。
第二部分:Tomcat的功能和特点是什么?
Tomcat具有以下功能和特点:
1. 支持Java技术:Tomcat可以执行Java Servlet、JSP和Java API for WebSocket等技术,使得开发者可以使用Java编写动态的、可交互的Web应用程序。
2. 轻量级:Tomcat具有相对较小的资源占用和内存消耗,使其易于部署和轻松扩展。这也是为什么T omcat成为Java Web应用服务器的首选之一。
3. 高性能:Tomcat采用了优化的架构和算法,从而提供了卓越的性能。它可以处理大量并发请求,并快速响应用户的操作。
4. 可扩展性:Tomcat具有可扩展的架构,允许用户根据自己的需求添加和定制其他模块和插件。这使得Tomcat适应各种不同规模和复杂度的Web应用开发。
tomcat概述
Tomcat概述
概念介绍
Tomcat是一个由Apache基金会开发的开源Web服务器和JSP容器。它是目前最流行的Java应用服务器之一,被广泛应用于JavaEE(Java Enterprise Edition)的开发和部署中。Tomcat是一个轻量级的服务器,其主要功能是处理HTTP请求和响应,支持Servlet和JSP技术。
功能特点
Tomcat具有以下主要功能特点:
1.Servlet容器:Tomcat提供了完善的Servlet容器,能够运行基于Servlet
规范开发的Java Web应用程序。Servlet是基于Java的服务器端组件,用于处理HTTP请求和响应,生成动态的Web内容。
2.JSP容器:Tomcat还提供了JSP容器,能够运行基于JSP(JavaServer
Pages)技术开发的Web应用程序。JSP是一种动态网页技术,类似于PHP,可以嵌入Java代码,用于生成动态的HTML内容。
3.静态文件服务:Tomcat可以作为一个静态文件的Web服务器,能够直接提
供静态的HTML、CSS、JavaScript等文件。这使得开发人员可以更方便地进行前端开发和测试。
4.负载均衡器:Tomcat支持负载均衡,可以通过集群方式部署多个Tomcat实
例,从而分担服务器的负载,提高系统的性能和可靠性。负载均衡可以根据请求的负荷情况自动将请求分发到不同的Tomcat服务器上进行处理。
5.安全性:Tomcat提供了丰富的安全特性,可以进行用户认证和授权机制的
配置。开发人员可以通过配置Tomcat的安全设置来保护Web应用程序的安全性,防止未授权的访问和恶意攻击。
tomcat 作用
tomcat 作用
Tomcat是一个流行的开源的Java Servlet容器,它主要用于将java代码运行在服务器上。它是一个轻量级的应用服务器,拥有灵活的配置和管理方式,使得开发者可以很容易地部署、管理和扩展Java Web应用程序。
首先,Tomcat作为一个Servlet容器,它能够处理和执行Servlet和JSP(Java Server Pages)的代码。Servlet是一个
Java类,用于处理HTTP请求和响应,并且可以动态地生成HTML内容。通过Tomcat,开发者可以在服务器上运行和管
理Servlet,使得他们可以创建动态的Web应用程序,如社交
媒体平台、电子商务网站等。
此外,Tomcat还具有良好的性能和可靠性。它采用了线程池
和连接池等技术,使得它可以处理大量并发的请求,并且能够有效地管理内存和资源。此外,Tomcat还支持负载均衡和集
群技术,使得多个Tomcat服务器可以协同工作,提供更高的
性能和可用性。
Tomcat还提供了一种安全的访问控制机制,可以保护Web应
用程序免受未经授权的访问和攻击。它提供了基于用户角色(role-based)的访问控制,可以限制用户对资源的访问权限,并且可以通过SSL/TLS协议实现安全的通信。
另外,Tomcat还提供了一些其他的功能和工具,使得开发者
可以更方便地进行开发和调试。例如,它可以与Eclipse和IntelliJ等集成开发环境(IDE)一起使用,方便开发者编写和
调试Java Web应用程序。此外,Tomcat还支持JMX(Java Management Extensions)技术,使得管理员可以监控和管理Tomcat服务器的运行状态。
tomcat在本项目中的作用
tomcat在本项目中的作用
tomcat是一个开源的Web应用服务器,主要用于Java Servlet 和JSP技术的部署和运行。在本项目中,tomcat扮演了重要的角色,具体作用如下:
1. 提供Web容器:tomcat作为Web服务器,提供了一个容器来运行Java Servlet和JSP技术。本项目中的Web应用程序是基于Java Servlet和JSP技术开发的,因此需要一个Web容器来提供支持。
2. 处理HTTP请求:tomcat接收来自客户端的HTTP请求,并将其传递给相应的Servlet进行处理。在本项目中,tomcat负责接收用户的请求,同时把请求转发给应用程序的Servlet进行处理。
3. 管理会话:tomcat可以管理用户的会话信息,包括创建和销毁会话对象、维护会话状态等。在本项目中,tomcat通过JSESSIONID 来识别用户的会话信息,这样就可以确保用户在同一个会话中的请求都能被正确处理。
4. 静态资源管理:tomcat可以处理静态资源,如HTML、CSS、JavaScript文件等。在本项目中,tomcat可以直接提供静态资源的访问,而无需通过Java Servlet来处理。
总之,tomcat在本项目中起到了非常重要的作用,它提供了一个可靠的Web容器来运行Java Servlet和JSP技术,同时还能管理会话、处理静态资源等。
- 1 -
tomcat通俗易懂的说法
tomcat通俗易懂的说法
Tomcat是Apache软件基金会开发的一款免费开放源代码的Web应用服务器,它可以运行大多数的JSP和Servlet容器。Tomcat有不同版本,但是其主要功能都是相同的,即在一个Web服务器上运行Java应用程序。Tomcat是一款用于支持Java Servlet和JavaServer Pages (JSP)的开源Web服务器,它是Apache Software Foundation的一部分。因此,它通常称为Apache Tomcat。 Apache Tomcat也可以作为HTTP代理服务器或反向代理服务器使用,但它主要是作为Web应用服务器而被广泛使用。
Tomcat的基本功能是提供一个Servlet容器来支持Java Web应用程序,包括JavaServer Pages(JSPs)和Web服务。它可以被看作是一个Web应用服务器的运行时环境,它提供了用于运行Web应用程序的所有工具和类库。
Tomcat有两种部署方式,即独立和集成模式。在独立模式下,Tomcat服务器是一个单独的应用程序,它可以运行在任何Java Web容器上。在集成模式下,Tomcat服务器将与另一个Web服务器,如Apache HTTP服务器,一起运行,以使用Tomcat容器处理Servlet和JSP请求。
Tomcat支持多种流行的Java应用程序技术,包括Servlet、JavaServer Pages、Java Expression Language 和WebSocket。它还支持多个Web应用程序框架,如Struts、Spring MVC和JSF,以及其他一些功能强大的Web 应用程序技术。
tomcat源码解读
tomcat源码解读
Tomcat源码解读涉及多个方面,包括整体架构、核心组件、启动过程等。以下是一些关键点:
1.整体架构:Tomcat采用分层的架构设计,主要分为核心层、容器层
和引擎层。核心层包含Tomcat的核心组件,如服务控制器、连接器等;容器层负责管理Web应用程序的生命周期,提供上下文和会话管理等功能;引擎层则负责处理请求,将请求分发到相应的处理线程。
2.核心组件:Tomcat的核心组件包括服务控制器、连接器和处理器等。
服务控制器负责Tomcat的运行和管理;连接器负责接收客户端请求,与外部协议(如HTTP)进行通信;处理器则负责处理请求,将请求转发给相应的Web应用程序。
3.启动过程:Tomcat的启动过程非常简单明了,主要包括加载配置文
件、启动服务、监听端口等步骤。在启动过程中,Tomcat会根据配置文件创建相应的组件,并初始化这些组件。一旦所有组件都已启动并正常运行,Tomcat就可以开始接收客户端请求了。
4.配置文件:Tomcat的配置文件非常重要,包括server.xml、context.xml
和web.xml等。这些文件定义了Tomcat的运行参数、Web应用程序的部署方式和行为等。理解和掌握这些配置文件的含义和作用,是深入了解Tomcat的重要一环。
5.日志系统:Tomcat使用JULI(java.util.logging的扩展)作为默认的
日志系统。通过分析日志文件,可以了解Tomcat的运行状况和性能瓶颈,以便进行优化和调试。
总之,Tomcat源码解读需要深入理解其整体架构、核心组件、启动过程、配置文件和日志系统等方面。通过阅读和理解这些内容,可以更好地掌握Tomcat的工作原理和实现细节,为开发高性能、稳定的Web应用程序提供有力支持。
tomcat作用
tomcat作用
Tomcat是一个开源的Web服务器和Servlet容器,用于Java
编写和运行。它是Apache软件基金会的一个项目,是目前最
流行的Java Web服务器之一。Tomcat的主要作用是提供Java Servlet和JavaServer Pages(JSP)的运行环境,并且它也支持Java WebSocket、Java Expression Language(EL)和Java WebSocket API等规范。
首先,Tomcat的主要作用是作为Web服务器。它能够接收HTTP请求并将静态资源,如HTML文件和图片,发送给客户端浏览器。与其他Web服务器相比,Tomcat的性能较好,能
够快速地响应大量的并发请求。Tomcat还支持HTTPS协议,
可以通过配置SSL证书来加密HTTP请求和响应。
其次,Tomcat作为Servlet容器,可以运行Java Servlet和JSP。Servlet是基于Java的服务器端程序,能够处理客户端发送的HTTP请求,并生成响应。通过Servlet的技术,可以实现动态网页、表单验证、数据库访问等功能。JSP是一种将HTML和Java代码混合的技术,可以用于动态生成网页内容。Tomcat
能够解析和执行Servlet和JSP,从而实现Java Web应用的开
发和运行。
此外,Tomcat还支持Java WebSocket技术。WebSocket是HTML5提供的一种新的协议,能够在客户端和服务器之间建
立持久性的全双工通信。通过Java WebSocket API,开发者可
Tomcat结构分析
l a s t Na me = F r a n k s &f i r s t Na me = Mi c h a e l
6
T o mc a t 结构分析
T o mc a t 结构分析
蒋 波 任 继念 崔 蔚
( 中国工程 物理研 究 院工 学院 , 四川 绵 阳,6 2 1 9 0 0 )
摘
要
本文 分析 了 T o m c a t 的连 接器组件和容器层次结构 以 及各 种相 关支 持组件 。
连 接 器 ; 容器 ;流 水线 ; 阀
Co n ne c t i o n : Ke e p - Al i v e
H os t :l oc a l ho s t
Us e r - A g e n t : Mo z i l l a / 4 . 0( c o mp a t i b l e ; MS I E 4 . 0 1 ; Wi n d o w s 9 8 )
2 0 1 3年 l 2月
第 4期
教
学
与
科பைடு நூலகம்
技
tomcat 的工作原理
tomcat 的工作原理
Tomcat是一个开源的Web服务器,它是由Apache软件基金会下属的Jakarta项目组开发的一个Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范。Tomcat可以作为独立的Web服务器使用,也可以作为Apache Web服务器的插件使用。Tomcat的工作原理主要包括以下几个方面。
一、Tomcat架构
Tomcat架构分为三层:底层是连接器(Connector),中间层是容器(Container),顶层是应用(Application)。其中,连接器用于处理客户端请求,容器用于处理请求并将其转发到相应的Servlet或JSP 页面,应用则负责具体业务逻辑的实现。
1. 连接器
连接器主要负责接收客户端请求,并将其转换成标准格式传递给容器进行处理。Tomcat支持多种协议,如HTTP/1.1、AJP/1.3等。其中HTTP/1.1是最常用的协议,它通过监听80端口来接收客户端请求。
2. 容器
容器主要负责管理Servlet和JSP页面,并将请求转发到相应的Servlet或JSP页面进行处理。Tomcat中有两种类型的容器:Engine 和Host。Engine表示整个Tomcat服务器实例,而Host则表示一个虚拟主机。每个Host可以包含多个Context,每个Context对应一个Web应用程序。
3. 应用
应用是Tomcat中最高层的组件,它负责具体业务逻辑的实现。一个Web应用程序通常包括多个Servlet和JSP页面,它们共同组成了一个完整的Web应用。Tomcat支持多种Web应用开发框架,如Struts、Spring等。
简述tomcat的作用
简述tomcat的作用
Tomcat是一个开源的Web应用服务器,它是Apache软件基金会的一个项目。Tomcat的作用是用于Java Servlet和JavaServer Pages(JSP)技术的Web应用程序的部署和运行。Tomcat是一个轻量级的应用服务器,它可以在多种操作系统上运行,包括Windows、Linux和Mac OS等。
Tomcat的主要作用是将Java Web应用程序部署到服务器上,并提供Web服务。它可以处理HTTP请求和响应,支持多种协议,包括HTTP、HTTPS、FTP等。Tomcat还支持Java Servlet和JSP 技术,这些技术可以帮助开发人员快速开发Web应用程序。
Tomcat的另一个重要作用是管理Web应用程序。它提供了一个Web管理界面,可以用于管理Web应用程序的部署、启动、停止和卸载等操作。管理员可以通过Web管理界面轻松地管理多个Web应用程序,而无需手动编辑配置文件。
Tomcat还提供了一些其他的功能,例如安全性、性能优化和负载均衡等。它支持SSL加密,可以保护Web应用程序的安全性。Tomcat还提供了一些性能优化功能,例如缓存和压缩等,可以提高Web应用程序的性能。此外,Tomcat还支持负载均衡,可以将Web请求分配到多个服务器上,以提高Web应用程序的可用性和性能。
Tomcat是一个非常重要的Web应用服务器,它可以帮助开发人员快速部署和运行Java Web应用程序。它还提供了一些其他的功能,例如管理、安全性、性能优化和负载均衡等,可以帮助管理员轻松地管理Web应用程序,并提高Web应用程序的可用性和性能。
tomcat 知识点总结
tomcat 知识点总结
Tomcat 知识点总结
Tomcat 是一个开源的 Java Web 应用服务器,由 Apache 软件基金会开发和维护。它是目前使用最广泛的Java Web 服务器之一,被广泛应用于企业级Web 应用的开发和部署。本文将对Tomcat 的一些重要知识点进行总结和介绍。
一、Tomcat 的基本概念和特点
1. Tomcat 是一个Servlet 容器和JSP 容器,它实现了Java Servlet 和 JavaServer Pages 规范,用于处理动态的 Web 内容。
2. Tomcat 是一个独立的Web 服务器,可以独立运行,也可以与其他Web 服务器(如Apache HTTP Server)配合使用,实现更强大的功能。
3. Tomcat 使用 Java 语言开发,具有跨平台的特点,可以在不同的操作系统上运行,如 Windows、Linux、MacOS 等。
二、Tomcat 的安装和配置
1. 下载 Tomcat 的安装包,并解压到指定目录。
2. 配置环境变量,设置 JAVA_HOME 和 CATALINA_HOME。
3. 配置 Tomcat 的服务器端口、虚拟主机、连接池等参数。
4. 配置 Tomcat 的日志记录,可以设置日志级别和日志文件位置。
三、Tomcat 的目录结构和重要文件
1. bin 目录:包含了 Tomcat 的启动和关闭脚本。
2. conf 目录:包含了Tomcat 的配置文件,如server.xml、web.xml 等。
3. lib 目录:包含了 Tomcat 运行所需的库文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tomcat功能与架构设计分析
北京恒华伟业科技股份有限公司 2012年09月
目录
1. Java类加载机制 2. Tomcat总体框架结构分析 4. Tomcat的物理结构 5. Tomcat典型功能与设计分析 6. 实用配置与常见问题
2
Java类加载机制
类加载是java 语言提供的最强大的机制之一。尽管类加载并不是热点话题, 但作为编程人员都应该了解其工作机制,明白怎样去配合其工作。 熟悉了类加载机制可以使我们节省很多时间,而不必浪费在调试 ClassNotFoundException等异常上,且为我们开发高扩展性的应用程序提供 了一些思路。
默认实现:org.apache.catalina.core.StandardServer
Listener
所有server.xml中的监听器都实现了LifecycleListener接口。当server中的各种组件 在start、stop等事件发生时触发相应的操作。 如: JasperListener用来在所有web应用程序启动前初始化jasper(JSP编译)。
10
Tomcat总体框架结构分析
Connector
一个连接器(Connector)将在某个指定端口上侦听客户请求,并将获得的请求交 给Engine来处理,从Engine处获得响应结果,并返回给客户端。
Tomcat有两个典型的连接器,一个直接侦听来自客户端浏览器的http请求,一个 侦听来自其它Web服务器的请求。
类加载的作用: 1. 加载Java应用程序所需的字节码文件(*.class、*.jar); 2. 提供一种在运行时动态、灵活地定位资源(代码和数据)的方式; 3. 允许在运行时利用多种不同资源创建应用程序,并提供命名空间机制,
使同一资源的多个版本在虚拟机上共存; 4. 可与安全体系结构集成; 5. 提供在运行时组装应用程序所需的服务。
5
Tomcat中类加载器
Common类加载器负责加载TomcatHOME/common/class下 的.Class文件和common/lib中的jar包,这些类可以被Tomcat内 核和每个Web应用程序都可以看见, 如servlet.jar等 Catalina类加载器从server/classes和server/lib下加载 类,Catalina加载的类只对Tomcat服务器内核可见,对Web应用 程序不可见,对于运行Tomcat内核的线程,它的上下文类加载器 就是Catalina类加载器 Shared类加载器负责从share/classes和share/lib中加载类,它 加载的类只对所有Web应用程序有效,对Tomcat不可见. WebappX类加载器负责加载Web应用程序的/webINF/classes和lib目录下的类,只对当前Web应用程序有效, 对 于运行每个Web应用程序的线程,他们的上下文类加载器就是 它们各自的WebappX类加载器
11
Connector的工作原理
来自百度文库
Coyote Http/1.1 Connector 在端口8080处侦听来自客户浏览器的http请求,
Coyote JK2 Connector 在端口8009处侦听来自其它Web服务器(比如Apache)的
servlet/jsp代理请求。
当使用Coyote Http/1.1 Connector时,Tomcat作为独立的Web容器,同时扮
9
Tomcat总体框架结构分析
Service
Service是这样一个集合:它由一个或者多个Connector,以及一个共享的处理 引擎(Engine)组成。Engine负责处理所有Connector所获得的客户请求。
默认实现: org.apache.catalina.core.StandardService
演Web服务器和Servlet容器的双重角色。当使用Coyote JK2 Connector时,
Tomcat只扮演Servlet容器的角色,Web服务器则由Apache或者其他服务器来提供,
标准扩展(Extension)类加载器:
扩展类加载器是由 Sun 的 ExtClassLoader(sun.misc.Launcher$ExtClassLoader) 实现的。它负责将 < Java_Runtime_Home >/lib/ext 或者由系统变量 java.ext.dir 指定 位置中的类库加载到内存中。开发者可以直接使用标准扩展类加载器。
3
Java类加载器
Java 缺省使用如下三种类型类装入器
启动(Bootstrap)类加载器:
引导类装入器是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib 下 面的类库加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直 接获取到启动类加载器的引用,所以不允许直接通过引用进行操作。
系统(System)类加载器:
系统类加载器是由 Sun 的 AppClassLoader(sun.misc.Launcher$AppClassLoader) 实现的。它负责将系统类路径(CLASSPATH)中指定的类库加载到内存中。开发者 可以直接使用系统类加载器。
4
类加载器的委托机制
1. 首先判断该类型是否已经被加载 2. 如果没有被加载,就委托给父类加载或者 委派给启动类加载器加载 3. 如果存在父类加载器,就委派给父类加载 器加载 4. 如果不存在父类加载器,就检查是否是由 启动类加载器加载的类 5. 如果父类加载器和启动类加载器都不能完 成加载任务,才调用自身的加载功能
6
目录
1. Java类加载机制 2. Tomcat总体框架结构分析 4. Tomcat的物理结构 5. Tomcat典型功能与设计分析 6. 实用配置与常见问题
7
Tomcat总体框架结构分析
Tocmat的各种组件通过相互作用,形成一个完善的有机体。
8
Tomcat总体框架结构分析
Server
Server代表整个Catalina servlet容器。在server.xml配置文件中必须是顶层元素 且唯一,给它配置的属性代表整个容器的属性。