关于【apache- tomcat- 5.5.15/conf /Catalina/localhost配置虚拟目录】时的一些问题。(配置web项目的方式不止一种,虚拟目录就是一个)

最近在做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 applicationrequest dispatcher, 设为true 。在安全性很重要的环境中

,设为false ,使得getContext() 总是返回null 。缺省值为false


docBase web 应用的文档基准目录(Document Base ,也称为Context Root ),或者是WAR 文件的路径。可以使用绝对路径,也可以使用相对于context 所属的HostappBase 路径。


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 如果该值为trueSystem.outSystem.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 应用用来加载servletjavabean 的类加载器。正常情况下,使用缺省的类加载器就足够了;


L ogger -
配置用来接收和处理所有日志消息的logger ,包括调用ServletContext.log() 函数记录的所有消息;


Manager -
配置用于创建,销毁,维持HTTP sessionsession manager. 正常情况下,使用缺省的session manager 配置就足够了;


Realm -
配置Realm ,该Realm 的用户数据库以及相关的角色仅用于这个特定的web 应用中。如果没有指定,该web 应用使用所属的HostEngineRealm


Resources -
配置用于访问与这个web 应用相关联的静态资源。正常情况下,使用缺省的resource manager 就足够了。


专有特征

 

 

访问日志
正常情况下,运行web 服务器会生成访问日志。访问日志以标准格式为每个请求输出一行信息。Catalina 包含一个可选的Valve 实现,可以用标准格式生成日志, 还可以使用任意定制

的格式。

通过在EngineHost 或者Context 中嵌套一个Valve 元素,Catalina 会为该容器处理的所有请求创建访问


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

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

 


 


你可能感兴趣的:(Web,Servlets,manager,session,servlet,Path)