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连接池配置方法详解 源代码 JSP context.xml
tomcat安装配置详解,tomcat安装配置详解,tomcat安装配置详解
tomcat 中 server.xml配置详解,仅作参考
tomcatserver.xml配置详解.pdf
在Tomcat配置数据源有多种方法,这里主要详细介绍通过JNDI来配置数据源.在实际项目中经常用到.
但注意要备份原来的context.xml文件以防万一。 这是MYSQL配置方法,如果想换其它的数据库只需要改变username="xxx" password="xxx" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1/blog" ...
介绍了关于tomcat5启动流程、配置详解及杂谈。
Tomcat配置详解 Tomcat参数配置 Tomcat参数优化
Apache+Tomcat集群配置详解 把Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。对于已安装IIS的机器,在启动Apache服务之前必须首先停止IIS Admin服务,不然会因为端口...
Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件...
Tomcat详解配置Tomcat详解配置Tomcat详解配置
tomcat中server.xml详解.xml
tomcat+redis负载均衡context.xml配置
描述了Tomcat的Host的Context组件的相关配置及对应Tomcat的启动和访问问题
Tomcat目录结构配置文件,Tomcat的配置技巧精华详解,Tomcat连接池配置……
Tomcat配置技巧详解Tomcat配置技巧详解Tomcat配置技巧详解Tomcat配置技巧详解
Tomcat与JavaWeb开发技术详解书本的源代码。
tomcat6.0+CGI配置详解及实例,配置说明文档里有详细的配置过程,并附上c源码及具体的操作步骤,是本人在学CGI过程中总结的,鉴于网上关于tomcat6.0+cgi实例较少或者配置过程不全,特意拿出来共享,希望对cgi入门者...
tomcat server.xml配置说
介绍了Servlet 规范中web应用程序(web application)的概念,web application 的组织,文档机构,部署描述文件 (/WEB-INF/web.xml). 等 4) Deployer 介绍了如何部署web application,预编译,和验证web ...