`
顽石OK07
  • 浏览: 83877 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

tomcat深入内部结构描述

阅读更多

tomcat服务器是一种Servlet/jsp容器,更实质性的说是Servlet容器,因为jsp最终还是被编译成servlet来执行的。而对于servlet来说,其最长见的用途是扩展java web服务器功能,为来自web客户的请求提供服务。它完全运行在java虚拟机上。由于它的运行在服务器端,因此他的运行不依赖于浏览器。

  tomcat作为servlet容器,负责处理客户请求,把请求传给servlet并把结果返回给客户。servlet容器与servlet之间的接口是由java servlet api定义的,在此api中定义了servlet的各种方法,这些方法在servlet生命周期的不容阶段被servlet容器调用,servlet api还定义了servlet容器传递给servlet的对象类,如请求对象ServletRequest和相应对象ServletResponse

  tomcat服务器是由一系列可配置的组件构成,其中核心组件是Catalina Servlet容器,它是所有其他tomcat组件的顶层容器。tomcat的组件可以在conf/server.xml文件当中进行配置,每个tomcat组件在server.xml文件中进行配置,每个tomcat组件在server.xml文件中对应一种配置元素。具体见下:  

< server>
  < service>
  < Connector>
  < /Connector>
  < Engine>
  < Host>
  < Context>< /Context>
  < /Host>
  < /Engine>
  < /service>
  < /server>

  1.顶层类元素:

  < Server>和< Service>,他们位于整个配置文件的顶层

  < Server>元素代表整个Catalina Servlet容器,它是tomcat实例的顶层元素。< Server>元素当中可包含一个或多个< service>元素。

  < service>元素中包含一个< Engine>元素,以及一个或多个< Connector>元素,这些< Connector>元素共享同一个< Engine>元素

  2.连接器类元素:

  connector,它代表了介于客户与服务器之间的通信接口,负责将客户的请求发送给服务器,并将服务器的相应结果传递给客户。

  3.容器类元素

  < Engine>,< Host>和< context〉

  其中< Engine>组件处理在同一个< service>中所有< Connector>元素接受到的客户请求

  < Host>组件为特定的虚拟机处理所有客户请求。每个< Host>元素定义了一个虚拟主机,它可以包含一个或多个web应用。

  < context>组件为特定的web应用处理所有客户请求。它是使用最频繁的元素。每个< Context>元素代表了运行在虚拟机上的单个web应用,一个< Host>元素中可以包含多个< context>元素

  说到< context>元素,java web应用的主要特征之一就是它与Context的关系,每个web应用有唯一的Context。当java web应用运行时,Servlet容器为每个web应用创建唯一的ServletContext对象,它被整个web应用中所有的组件共享。

 

如下代码: 

 < Context path="/reglog" docBase="reglog" debug="0"
  crosscontext="true" reloadable="true">
  < /Context>

  你可以自己在server.xml当中定义一个context元素,设定你所存在项目的参数及属性。其中path指定访问web应用的url入口

  docBase指定web应用的文件路径,可以给定绝对路径,也可以给定向对于host的appBase属性的相对路径

  reloadable,如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新,服务器会自动重新加载web应用。

  另外说一下tomcat的运行脚本

  如果仔细研究一下tomcat的启动和关闭脚本,会发现startup.bat和shutdown.bat都执行同一个目录下的catalina.bat脚本。其实质是这样的:执行startup.bat脚本,相当于执行了catalina start命令,执行shutdown.bat相当于执行了catalina stop命令。

  common\lib,server\lib,shared\lib这三个目录相信大家都见过吧,但具体是干什么用的呢?

  其中server\lib下的jar文件只能被tomcat服务器访问。

  shared\lib下的jar文件可以被所有的web应用访问,但不能被tomcat服务器访问。

  common\lib目录下的jar文件可以被tomcat服务器和所有的web应用访问吴华鹏 邵红威

 

 转载: http://java.chinaitlab.com/ServletJsp/781242.html

 

分享到:
评论

相关推荐

    Tomcat 8.0.zip

    Java反编译工具,如JD-GUI、FernFlower或Procyon,可以帮助开发者查看和分析类文件的内部结构。 在Tomcat 8.0中,了解反编译的概念尤其重要,因为开发者可能需要查看Tomcat的内部工作方式,或者对Tomcat提供的库...

    How Tomcat Works 中文版

    本书通过逐步揭示Tomcat的各个组件,帮助读者理解Tomcat的内部结构和运作方式。 书中详细描述了servlet容器如何工作,包括以下几个核心步骤: 1. 创建一个request对象并填充相关信息,例如参数、头部、cookies、...

    tomcat 源码分析系列文档

    【标题】"Tomcat源码分析系列文档"深入解析了Apache Tomcat服务器的内部工作原理,涵盖了一系列关键知识点,如HTTP协议、类加载机制、容器设计模式等。这些文档为理解Tomcat的运行机制提供了宝贵的资源。 【描述】...

    tomcat源码 tomcat本来就是开源的

    对于希望深入了解Tomcat内部机制或者定制化开发的开发者而言,研究其源码具有重要的意义: 1. **学习价值**:通过阅读Tomcat源码,可以系统地学习到Java语言在实际项目中的应用技巧,特别是对于多线程、网络编程等...

    apache-tomcat-6.0.10-src

    这个压缩包"apache-tomcat-6.0.10-src"包含了Tomcat 6.0.10版本的源代码,允许开发者深入理解其内部工作原理,并可以根据需求进行定制和扩展。 Tomcat作为Servlet容器,主要负责接收HTTP请求,解析请求并调用相应的...

    apache-tomcat-9.0.84.zip

    Apache Tomcat是一个开源的软件应用服务器,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。...通过深入理解其内部结构和配置,开发者和系统管理员可以有效地利用Tomcat来满足各种Web服务需求。

    Java内嵌式Tomcat-TomcatDemo

    2. **Web应用目录结构**:标准的Web应用通常包含`WEB-INF`目录,其中`web.xml`是部署描述符,定义了应用的配置信息。此外,`WEB-INF/classes`和`WEB-INF/lib`分别用于存放编译后的Java类和外部依赖的JAR包。 3. **...

    how tomcat works中英文版

    Tomcat的目录结构包括WEB-INF目录,其中包含了web.xml文件,这是Web应用程序的部署描述符。它定义了Servlet、过滤器和监听器的配置,以及它们之间的映射关系。理解这个配置文件是管理Tomcat应用的关键。 Tomcat的...

    tomcat源码学习

    【标题】"Tomcat源码学习"涉及到的是对Apache Tomcat服务器内部运行机制的深入理解。Tomcat是一款广泛使用的开源Java Servlet容器,它实现了Java EE的Web应用规范,特别是Servlet和JSP。源码学习是提升技术水平、...

    tomcat8源码的maven项目

    【描述】:“自己整的一个maven项目”意味着这个源码仓库是由个人创建并维护的,用于学习和理解Tomcat 8的内部工作原理。Maven是一个项目管理和综合工具,通过提供一个统一的构建系统、项目信息管理和依赖关系管理,...

    简单的Tomcat源码实现

    【标题】"简单的Tomcat源码实现"涵盖了Tomcat服务器的基础构建和运行原理,这是一个针对初学者或希望深入了解Tomcat内部工作方式的开发者所关注的话题。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它...

    Tomcat6的源码

    【描述】"Tomcat6的可运行Java源码代码,注意可以运行的哦,只需导入即可"表明这个源码包不仅包含源代码,而且是可运行状态,这意味着开发者可以直接在开发环境中导入这些源码,进行调试、学习或定制化修改。Tomcat6...

    Tomcat源码所需要jar包

    在深入探讨Tomcat源码分析之前,我们先要理解这些给定的jar包的作用和它们在Tomcat中的重要性。标题提到的是“Tomcat...通过深入研究这些库,你可以更全面地了解Tomcat的内部工作原理,提升你的Java Web应用开发技能。

    tomcat6.0的源代码

    通过对Tomcat 6.0源代码的学习,开发者不仅可以提升对Servlet和JSP规范的理解,还能掌握服务器内部工作原理,为日常的Web开发带来更深入的认识,提升问题排查和性能优化的能力。同时,这也将有助于向更高级的Tomcat...

    tomcat9源码的eclipse工程

    【描述】"这是一个Eclipse的Tomcat源码工程,适合于查看Tomcat源码"意味着你可以通过Eclipse IDE高效地探索Tomcat的内部工作原理。Eclipse作为一款强大的Java开发工具,拥有优秀的代码导航、调试和重构功能,对于...

    tomcat原代码下载

    【描述】:“Tomcat源代码的获取与学习,是对于想要深入了解这个开源Web服务器和Servlet容器的初学者来说至关重要的。通过研究Tomcat的源代码,我们可以理解其工作原理,提升Java Web开发技能,并为自定义配置或优化...

    Tomcat8源代码

    深入研究Tomcat 8的源代码,不仅可以帮助我们理解其内部工作流程,还能为自定义Tomcat配置、优化性能或开发基于Tomcat的应用提供宝贵的经验。同时,通过阅读源代码,开发者可以学习到Java Web技术、设计模式以及并发...

    tomcat7源码环境搭建

    【描述】:“用于Tomcat7.0开源分析,附件中有详细的搭建手顺,和相关LIB包。” 搭建Tomcat7源码环境首先需要获取源码,这通常从Apache官方网站上下载最新或特定版本的源码。解压后,你会得到一个包含多个目录和...

    tomcat-7.0.52.zip

    源代码允许你查看和修改内部实现,这对于调试、优化、学习或定制Tomcat功能至关重要。以下是关于Tomcat 7.0.52源码的一些关键知识点: 1. **目录结构**:解压后,你会看到如`bin`、`conf`、`lib`、`webapps`、`work...

Global site tag (gtag.js) - Google Analytics