关于【apache- tomcat- 5.5.15/conf /Catalina/localhost配置虚拟目录】时的一些问题。(配置web项目的方式不止一种,虚拟目录就是一个)
转自:http://xiaotot.blog.163.com/blog/static/10546506720120954920485/
最近在做web项目时,总是和 tomcat5.5 目录下面的
/conf /Catalina/localhost这里面的关于项目的配置文件打交道。
他具体是什么呢?
从网上获取信息整理如下:
(3)在 C:/Tomcat 5.5/webapps/下建立abc目录,在/CONF/CATALINA/LOCALHOST
下建立文 件sxzlc.xml,sxzlc.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path ="/sxzlc" docBase ="c:/workspace/abc/webapps"
workDir =“ /workspace/abc/work ” reloadable= "true" >
</Context>
path代表虚拟目录的名称,其实根本不用写,默认使用文件名作为虚拟目录名称
docBase指定本地目录。
如何部署web项目:
(这是我之前一直使用的方法)
Context path="/wPoliceSeeker" docBase="C:/wPoliceSeeker/WebContent" />
关于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 的类加载器。正常情况下,使用缺省的类加载器就足够了;
L ogger - 配置用来接收和处理所有日志消息的logger ,包括调用ServletContext.log() 函数记录的所有消息;
Manager - 配置用于创建,销毁,维持HTTP session 的session manager. 正常情况下,使用缺省的session manager 配置就足够了;
Realm - 配置Realm ,该Realm 的用户数据库以及相关的角色仅用于这个特定的web 应用中。如果没有指定,该web 应用使用所属的Host 或Engine 的Realm 。
Resources - 配置用于访问与这个web 应用相关联的静态资源。正常情况下,使用缺省的resource manager 就足够了。
专有特征
访问日志
正常情况下,运行web 服务器会生成访问日志。访问日志以标准格式为每个请求输出一行信息。Catalina 包含一个可选的Valve 实现,可以用标准格式生成日志, 还可以使用任意定制
的格式。
通过在Engine ,Host 或者Context 中嵌套一个Valve 元素,Catalina 会为该容器处理的所有请求创建访问
以上属性信息参考来自孙鑫老师的网站:(程序员之家论坛)