关于【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项目:

 

(这是我之前一直使用的方法)

1.  把这个web应用(是一个文件夹或一个war文件)拷贝到appbBase下,无需再在任何
    地方  写关于这个web应用的context,访问时按文件夹的 名字(或war文件的名字)
     就可访问。
 
2.  把这个web应用放在除了appbase文件夹下的任何地方,然后写一个随便什么名字的xml
    文件(当然还是建议你写一个和应用同名的),放在安装目录 /server/conf/Catalina/
    你的host下,xml文件中要定义这个应用的访问路径path和物理路径docbase,访问时
    按照 path定义的路径来访问。
 
(第三点是从网上查到的,没有实践过) 
3.在Tomcat的server.xml文件中Host节点下添加:

   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 会为该容器处理的所有请求创建访问

以上属性信息参考来自孙鑫老师的网站:(程序员之家论坛)

http://www.sunxin.org/forum/thread/23206.html

posted on 2013-02-18 21:25  王培  阅读(307)  评论(0编辑  收藏  举报

导航