tomcat结构分析.pdf_第1页
tomcat结构分析.pdf_第2页
tomcat结构分析.pdf_第3页
tomcat结构分析.pdf_第4页
tomcat结构分析.pdf_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Tomcat是一个基于组件的服务器 它的构成组件都是可配置的 其中最外层的组件是Catalina Servlet 容器 其他的组 件按照一定的格式要求配置在这个顶层容器中 Tomcat的各个组件是在 conf server xml 文件中配置的 Tomcat 服务器默认情况下对各种组件都有默认的 实现 下面通过分析 server xml 文件来理解 Tomcat的各个组件是如何组织的 server xml 文件的基本组成结构如下 顶层类元素 一个配置文件中只能有一个元素 可包含多个 Service 顶层类元素 本身不是容器 可包含一个 Engine 多个Connector 连接器类元素 代表通信接口 容器类元素 为特定的 Service 组件处理所有客户请求 可包含多个 Host 容器类元素 为特定的虚拟主机处理所有客户请求 可包含多个 Context 容器类元素 为特定的 Web应用处理所有客户请求 以上的类XML 的代码就是 server xml 文件的基本组成结构 一个元素代表一个组件 下面分别介绍这些组件 1 Server 组件 Server 组件对应元素 它是配置文件的最顶层元素 代表一个服务器 一个配置文件中只能有一个元素 2 Service 组件 Service 组件是一些Connector 组件的集合 它本身不是一个容器 所以在这里不能定义日志等组件 一个Service 组件中 只能有一个Engine组件 可以包含多个 Connector 组件 3 Connector组件 Connector组件表示一个接口 通过这个接口接收客户的请求 然户发送给其他的容器组件 最后再把服务器的响应结果 传递给客户 4容器类元素 上面介绍的3 个组件本身并不能处理客户请求 也不能生成响应 在 Tomcat中只有3 个组件是可以处理客户请求并生成响 应的 这3 个组件分别是 Engine Host 和 Context 组件 这3 个组件分别代表了不同的服务范围 通过嵌套关系可以知道 3个组件的范围有如下的关系 Engine Host Context Engine组件下可以包含多个Host 组件 它为特定的Service 组件处理所有客户请求 一个Host 组件代表一个虚拟主机 一个虚拟主机中可以包含多个 Web应用 Context组件 Context组件代表一个Web 应用 Tomcat的各个组件关系 可以用下图描述 一个Java Web application在 Tomcat 中与一个 Context 元素对应 也就是说一个Context 元素定义了一个Java Web application 它们是一一对应的关系 在一个Java Web 应用中可以包含如下内容 Servlet JSP 页面 Java类 静态资源 HTML 文档 图片等 描述Web 应用的描述文件 客户每次提出请求时指定要访问的资源 如果客户没有指定具体资源 Tomcat 使用默认的资源响应客户 显示文件夹中的 资源列表或者提示错误 一 TOMCAT 的目录结构 bin 存放windows 或 Linux平台上启动和关闭Tomcat 的脚本文件 conf 存放Tomcat 服务器的各种全局配置文件 其中最重要的是 server xml 和web xml doc 存放Tomcat 文档 server 包含三个子目录 classes lib 和webapps server lib 存放 Tomcat 服务器所需的各种 JAR 文件 server webapps 存放 Tomcat 自带的两个 WEB 应用admin应用和 manager 应用 common lib 存放 Tomcat 服务器以及所有 web应用都可以访问的jar 文件 shared lib 存放所有 web应用都可以访问的 jar 文件 但是不能被Tomcat 服务器访问 logs 存放Tomcat 执行时的日志文件 src 存放Tomcat 的源代码 webapps Tomcat 的主要 Web发布目录 默认情况下把Web 应用文件放于此目录 work 存放JSP 编译后产生的 class文件 二 WEB 应用的目录结构 假设在 CATALINA HOME webapps 下有helloapp 的 web应用 helloapp Web应用的根目录 所有的 jsp文件和html 文件都在此目录下 helloapp WEB INF 存放该 web应用发布时的描述文件web xml helloapp WEB INF class 存放各种 class文件 Servlet 文件也存放于此目录下 helloapp WEB INF lib 存放各钟 Web应用所需要的 jar 文件 比如可以存放 JDBC 驱动程序的JAR 文件 三 Tomcat 加载类和资源的顺序为 以 helloapp应用为例 1 helloapp webapps helloapp Web INF 下的 classes lib 子目录中 calss 及 jar 仅helloapp 可以加载 2 Bootstrap JAVA HOME jre lib ext jar 3 System CLASSPATH class 和 CLASSPATH 中指定的jar 4 Common CATALINA HOME common 下的classes lib endores子目录中 class 及 jar 5 Catalina CATALINA HOME server 下的classes lib 子目录中 calss 及 jar 仅Tomcat 可以加载 6 Shared CATALINA HOME shared 下的classes lib 子目录中 calss 及 jar 仅所有Web 应用可以加载 四 CATALINA HOME conf server xml 配置简介 1 元素属性 port 指定一个端口 这个端口负责监听关闭 tomcat 的请求 shutdown 指定向端口发送的命令字符串 通常是 SHUTDOWN 2 元素属性 name 指定service 的名字 通常是 Catalina 3 元素属性 表示客户端和 service之间的连接 port 指定服务器端要创建的端口号 并使用这个断口监听来自客户端的请求 minProcessors 考察是否有此属性 服务器端启动时创建的处理请求的线程数 maxProcessors 考察是否有此属性 最大可以创建的处理请求的线程数 maxThreads 服务器创建的最大线程数 minSpareThreads 最小剩余线程数 maxSpareThreads 最大剩余线程数 enableLookups 如果为 true 则可以通过调用request getRemoteHost 进行DNS 查询来得到远程客户端的实际 主机名 若为false 则不进行 DNS 查询 而是返回其IP 地址 redirectPort 指定当服务器正在处理 HTTP 请求时收到了一个SSL 传输请求后重定向的端口号 acceptCount 指定当所有可以使用的处理请求的线程数都被使用时 可以放到处理队列中的请求数 超过的请求将 不予处理 connectionTimeout 指定超时的时间数 以毫秒为单位 disableUploadTimeout 不明 debug 不明 protocol 不明 4 元素属性 指定 service中的请求处理主机 接收和处理来自Connector 的请求 name 指定Engine 的名字 通常是 Catalina defaultHost 指定默认的处理请求的主机名 至少与某个 host元素的name属性值是相同的 5 元素属性 表示一个 web应用程序 docBase 指定此 Web应用的绝对或相对路径 也可以为 WAR 文件的路径 path 表示此 Web应用程序的 url 的入口 如为 hello 则请求的URL 为http localhost 8080 hello reloadable 如果为 true 则 Tomcat 在运行时会自动监视 Web应用的 WEB INF lib 和 WEB INF classes 下文件的改 动 自动装载新应用 使我们可以在不重启 Tomcat 的情况下更新 Web 应用 6 元素属性 表示一个虚拟主机 name 指定虚拟主机名字 debug 指定日志级别 appBase 存放 Web应用程序的基本目录 可以是绝对路径或相对于 CATALINA HOME 的目录 默认是 CATALINA HOME webapps unpackWARs 如果为 true 则 tomcat 会自动将 WAR 文件解压后运行 否则不解压而直接从WAR 文件中运行应用 程序 autoDeploy 如果为 true 表示 Tomcat 启动时会自动发布 appBase目录下所有的 Web 应用 包括新加入的 Web应 用 deployOnStarup 如果此项为 true 表示 Tomcat 服务器启动时会自动发布 appBase目录下所有 Web 应用 如果 Web 应用在 server xml 中没有相应的元素 则将采用默认的Context 配置 deployOnStarup的默认设置是true alias 指定虚拟主机的别名 可以指定多个别名 xmlValidation 不明 xmlNamespaceAware 不明 7 元素属性 表示日志 调试和错误信息 className 指定 logger使用的类名 此类必须实现org apache catalina Logger 接口 prefix 指定log文件名的前缀 文件名 suffix 指定 log文件名的后缀 扩展名 timestamp 如果为 true 则 log文件名中会加入日期时间 如下例 localhost log 2006 10 04 txt directory 指定 log文件存放的目录 8 元素属性 表示存放用户名 密码及 role的数据库 className 指定 Realm使用的类名 此类必须实现org apache catalina Realm 接口 resourceName 不明 9 元素属性 功能与 Logger 相似 其 prefix 和su

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论