Context元素代表一个web应用,运行在某个特定的虚拟主机上。如Servlet Specification 2.2或以后版本中描述的那样,每个web应用基于一个Web Application Archive(WAR)文件,或者是一个目录,包含WAR文件解压后的内容。有关Web Application Archive的更多信息,可以参考Servlet Specification和Tomcat 应用程序开发者指南。
通过将请求URI的最长可能前缀与每个Context的context路径进行匹配,Catalina选择相应的web 应用处理HTTP请求。一旦选定,根据web application deployment descriptor 文件中定义的servlet映射,Context会选择一个正确的servlet来处理进来的请求。servlet映射必须定义在该web应用目录层次结构中的/WEB-INF/web.xml中。
你可以在一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。另外,你必须定义一个context路径长度为0的Context,这个Context称为该虚拟主机的缺省web应用,用来处理那些不能匹配任何Context的Context路径的请求。
除了在Host元素中嵌套Context元素以外,你也可以将它们存储在单个文件中(以.xml为后缀),放在$CATALINA_HOME/conf/[enginename]/[hostname]/目录下面。有关这方面的更多信息,参考应用的自动发布。这种方法允许动态重新配置web应用,因为如果修改了conf/server.xml,就必须重新启动Tomcat。
除了明确指定Context元素以外,还有其他几种技术可以自动生成Context元素。参考Automatic Application Deployment 和 User Web Applications
以下的描述使用变量$CATALINA_HOME来指Tomcat 5安装的目录。大多数的相对路径都是以该目录为基准。但是,通过设置CATALINA_BASE目录,可以运行多个Tomcat 5实例,这时你应该使用$CATALINA_BASE来作为目录基准,而不是使用$CATALINA_HOME。
属性
通用属性
所有Context的实现支持如下属性:
backgroundProcessorDelay 这个值代表在context及其子容器(包括所有的wrappers)上调用backgroundProcess方法的延时,以秒为单位。如果延时值非负,子容器不会被调用,也就是说子容器使用自己的处理线程。如果该值为正,会创建一个新的线程。在等待指定的时间以后,该线程在主机及其 子容器上调用backgroundProcess方法。context利用后台处理session过期,监测类的变化用于重新载入。如果没有指定,该属性的缺省值是-1,说明context依赖其所属的Host的后台处理。
className 实现的Java类名。该类必须实现org.apache.catalina.Context接口。如果没有指定,使用标准实现(在下面定义)。
cookies 如果想利用cookies来传递session identifier(需要客户端支持cookies),设为ture。否则为false,这种情况下只能依靠URL Rewriting传递session identifier。
crossContext 如果想在应用内调用ServletContext.getContext()来返回在该虚拟主机上运行的其他web application的request dispatcher,设为true。在安全性很重要的环境中,设为false,使得getContext()总是返回null。缺省值为false。
docBase 该web应用的文档基准目录(Document Base,也称为Context Root),或者是WAR文件的路径。可以使用绝对路径,也可以使用相对于context所属的Host的appBase路径。
override 如果想利用该Context元素中的设置覆盖DefaultContext中相应的设置,设为true。缺省情况下使用DefaultContext中的设置。
privileged 设为true,允许context使用container servlets,比如manager servlet。
path web应用的context路径。catalina将每个URL的起始和context path进行比较,选择合适的web应用处理该请求。特定Host下的context path必须是惟一的。如果context path为空字符串(""),这个context是所属Host的缺省web应用,用来处理不能匹配任何context path的请求。
reloadable 如果希望Catalina监视/WEB-INF/classes/和/WEB-INF/lib下面的类是否发生变化,在发生变化的时候自动重载web application,设为true。这个特征在开发阶段很有用,但也大大增加了服务器的开销。因此,在发布以后,不推荐使用。但是,你可以使用Manager应用在必要的时候触发应用的重载。
wrapperClass org.apache.catalina.Wrapper实现类的名称,用于该Context管理的servlets。如果没有指定,使用标准的缺省值。
标准实现
Context的标准实现是org.apache.catalina.core.StandardContext.它还支持如下的附加属性:
属性 描述
debug 与这个Engine关联的Logger记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为0。
swallowOutput 如果该值为true,System.out和System.err的输出被重定向到web应用的logger。如果没有指定,缺省值为false
useNaming 如果希望Catalina为该web应用使能一个JNDI InitialContext对象,设为true。该InitialialContext符合J2EE平台的约定,缺省值为true。
workDir Context提供的临时目录的路径,用于servlet的临时读/写。利用javax.servlet.context.tempdir属性,servlet可以访问该目录。如果没有指定,使用$CATALINA_HOME/work下一个合适的目录。
嵌套组件
下列元素可以嵌套在Context元素中,但每个元素至多只能嵌套一次。
Loader-配置该web应用用来加载servlet和javabean的类加载器。正常情况下,使用缺省的类加载器就足够了;
Logger - 配置用来接收和处理所有日志消息的logger,包括调用ServletContext.log()函数记录的所有消息;
Manager -配置用于创建,销毁,维持HTTP session的session manager.正常情况下,使用缺省的session manager配置就足够了;
Realm - 配置Realm,该Realm的用户数据库以及相关的角色仅用于这个特定的web应用中。如果没有指定,该web应用使用所属的Host或Engine的Realm。
Resources - 配置用于访问与这个web应用相关联的静态资源。正常情况下,使用缺省的resource manager就足够了。
分享到:
相关推荐
### Tomcat JNDI数据源配置详解 #### 一、引言 在现代Web应用开发中,数据库连接管理是一项至关重要的任务。为了提高应用程序的性能和可维护性,通常会采用连接池技术来管理和复用数据库连接。Apache Tomcat作为一...
Tomcat 5是Apache软件基金会的Jakarta项目中的一个核心项目,是一个开源的Servlet容器,实现了Java Servlet和JavaServer Pages(JSP)规范。本文将深入探讨Tomcat 5的启动流程、目录结构以及配置详解。 1. **Tomcat...
### Tomcat6连接池配置详解(自动重连) #### 一、引言 在现代Web应用开发中,数据库连接管理是非常重要的一环。为了提高应用性能并确保资源的有效利用,通常采用连接池技术来管理数据库连接。Apache Tomcat作为一...
Apache Tomcat是一个开源的Servlet容器,主要用来运行Java Servlet和JavaServer Pages(JSP)。`server.xml`是Tomcat的核心配置文件,控制着Tomcat的启动、运行和停止,对性能优化、安全性提升等方面具有至关重要的...
server.xml是Tomcat中的核心配置文件,负责配置整个服务器的运行参数和连接器信息。下面将对Tomcat server.xml中可能包含的配置知识点进行详细说明: 1. <Server> 标签:这是Tomcat顶层的容器,用于构建整个Tomcat...
《Tomcat中Server.xml详解》 在Apache Tomcat服务器中,`server.xml`是一个至关重要的配置文件,它定义了服务器的基本结构和行为。这个文件位于Tomcat安装目录下的`conf`子目录中,是整个Tomcat配置的核心。本文将...
**Tomcat目录结构配置详解** Tomcat是一款广泛使用的开源Java Servlet容器,它是Apache软件基金会的Jakarta项目的一部分。深入理解Tomcat的目录结构对于优化服务器性能、管理应用程序以及进行安全配置至关重要。...
Tomcat 详解配置 Tomcat 详解配置是指 Tomcat 服务器的配置和架构解析。...Tomcat 详解配置是指 Tomcat 服务器的配置和架构解析,包括 Server、Service、Connector、Engine、Host 和 Context 等元素的配置。
《Tomcat Server.xml配置详解》 Tomcat作为流行的Java应用服务器,其核心配置文件`server.xml`对于理解和管理服务器的运行至关重要。本文将详细解析`server.xml`中的关键元素、属性及其含义,帮助读者深入理解...
Tomcat作为一款广泛使用的开源Java Servlet容器,其配置的精细程度直接影响到Web应用的性能和稳定性。本文将详细解析Tomcat的核心配置元素,包括`<Server>`、`<Service>`、`<Engine>`、`<Host>`和`<Context>`,帮助...
Tomcat是Apache软件基金会Jakarta项目中的一个核心项目,是一款开源、免费的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者可以在Web服务器上运行Java应用程序。本教程将详细...
**Tomcat连接池配置详解** 在Java Web应用中,数据库连接池是不可或缺的一部分,它能够有效地管理和重用数据库连接,提高应用性能并降低系统资源消耗。Tomcat作为一款流行的Servlet容器,内置了多种连接池实现,如...
### Tomcat 9 虚拟路径配置详解 在日常的Web开发中,Apache Tomcat作为一款免费开源的Servlet容器,被广泛应用于部署Java Web应用。对于开发者来说,灵活地配置虚拟路径(也称为虚拟主机或上下文路径)是提高项目可...
【正文】 ...以上只是Tomcat配置中的一部分内容,实际使用中还需要根据具体需求进行细致的调整和优化。通过深入理解和熟练应用这些配置,可以有效地管理和优化Tomcat服务器,提升Web应用的稳定性和性能。
《Tomcat工作原理详解——(5)容器》 在深入探讨Tomcat的工作原理时,我们不得不提到一个核心概念——容器。Tomcat作为一个流行的开源Java Servlet容器,它的内部架构设计是理解其高效运行的关键。本篇将详细介绍...
在Java Web开发领域,Tomcat是一个不可或缺的角色,它是Apache软件基金会的Jakarta项目中的一个核心组件,是一个开源的、轻量级的Servlet容器,广泛应用于Java Web应用程序的部署和运行。本文将深入探讨Tomcat与...
Tomcat的核心配置文件之一是`server.xml`,这个文件位于Tomcat的`conf`目录下,它是Tomcat服务器的全局配置文件,定义了服务器的端口号、数据源、连接器、虚拟主机、Context等关键组件的设置。例如,你可以在这里...
【Tomcat6上部署应用配置详解】 在Java EE开发中,Tomcat是一个广泛使用的轻量级应用服务器,尤其适用于部署Web应用程序。Tomcat6版本的配置对于初学者来说可能有些复杂,但理解其核心概念和配置步骤对于管理和维护...
**Apache Tomcat 6.0.20 数据容器详解** Apache Tomcat是一款广泛使用的开源Java Servlet容器,尤其在开发和部署Web应用程序时扮演着重要角色。Tomcat 6.0.20是该系列的一个特定版本,它在当时提供了稳定且高效的...