3.3.4 配置Tomcat的<Context>元素 (转)

本章3.3.2节已经介绍了在Tomcat中发布JavaWeb应用的最快捷的方式,即只需把JavaWeb应用的所有文件复制到<CATALINA_HOME>/webapps目录下即可,Tomcat会按照默认的方式来发布和运行JavaWeb应用。如果需要更加灵活地发布Web应用,则需要为Web应用配置Tomcat的<Context>元素。

<Context>元素是 Tomcat 中使用最频繁的元素,它代表了运行在虚拟主机<Host>上的单个Web应用。本书第2章的2.3节(Tomcat的组成结构)在介绍Tomcat的组成结构时已经简单介绍了<Context>元素、<Host>元素和<Engine>元素。在一个<Engine>中可以有多个<Host>,在一个<Host>中可以有多个<Context>。<Context>元素的主要属性的说明参见表3-4。

表3-4  Context元素的主要属性

(续表)

在一般情况下,<Context>元素都会使用默认的标准 Context 组件,即 className属性采用默认值org.apache.catalina.core.StandardContext。标准Context组件除了具有表3-4列出的属性,还具有表3-5所示的属性。

表3-5  标准Context组件的专有属性

在 Tomcat 4.x 版本中,直接在<CATALINA_HOME>/conf/server.xm文件中配置<Context>元素。这种配置方式有一个弊端:如果在Tomcat运行时修改server.xml文件,比如添加<Context>元素,那么所做的修改不会立即生效,而必须重新启动Tomcat,才能使所做的修改生效。

因此Tomcat 6.x尽管也允许直接在server.xml文件中配置<Context>元素,但不提倡采用这种方式。Tomcat 6.x提供了多种配置<Context>元素的途径。当Tomcat 6.x加载一个 Web 应用时,会依次按照以下五种方式尝试查找 Web 应用的<Context>元素,直到找到为止

(1)到<CATALINA_HOME>/conf/context.xm文件中查找<Context>元素。这个文件中的<Context>元素的信息适用于所有Web应用。

(2)到<CATALINA_HOME>/conf/[enginename]/[hostname]/context.xml.default 文件中查找<Context>元素。[enginename]表示<Engine>的 name 属性,[hostname]表示<Host>的name属性。在context.xml.default文件中的<Context>元素的信息适用于当前虚拟主机中的所有Web应用,例如以下文件中的<Context>元素适用于名为Catalina的Engine下的localhost主机中的所有Web应用:

Xml代码  

  1. <CATALINA_HOME>/conf/Catalina/localhost/context.xml.default

(3)到<CATALINA_HOME>/conf/[enginename]/[hostname]/[contextpath].xml文件中查找<Context>元素。[contextpath]表示单个Web应用的URL入口。在[contextpath].xml文件中的<Context>元素的信息只适用于单个 Web 应用,例如以下文件中的<Context>元素适用于名为“Catalina”的Engine下的localhost主机中的helloapp应用:

Xml代码  

  1. <CATALINA_HOME>/conf/Catalina/localhost/helloapp.xml

(4)到Web应用的META-INF/context.xml文件中查找<Context>元素。这个文件中的<Context>元素的信息适用于当前Web应用。

(5)到<CATALINA_HOME>/conf/server.xm文件中的<Host>元素中查找<Context>子元素。该<Context>元素的信息只适用于单个Web应用。

如果仅仅为单个 Web 应用配置<Context>元素,可以优先选择第三种或第四种方式。第三种方式要求在Tomcat的相关目录下增加一个包含<Context>元素的配置文件,而第四种方式则要求在 Web 应用的相关目录下增加一个包含<Context>元素的配置文件。对于这两种方式,Tomcat在运行时都会监测包含<Context>元素的配置文件是否被更新,如果被更新,Tomcat 会自动重新加载并启动 Web 应用,使对<Context>元素所做的修改生效。

下面先采用第四种方式配置<Context>元素。在 helloapp 目录下新建一个META-INF子目录,然后在其中创建一个context.xml文件,它的内容如下:

Xml代码  

  1. <Context path="/helloapp" docBase="helloapp" reloadable="true"/>

以上<Context>元素的 docBase 属性表明,helloapp 应用的文件路径为<CATALINA_HOME>/webapps/helloapp;path属性表明访问helloapp应用的URL入口为“/helloapp”。

下面再采用第三种方式配置<Context>元素。假定 helloapp 应用的文件路径为C:\chapter03\helloapp,并且在<CATALINA_HOME>/webapps 目录下没有发布helloapp应用。在<CATALINA_HOME>/conf目录下先创建Catalina目录,接着在Catalina目录下再创建localhost目录,然后在<CATALINA_HOME>/conf/Catalina/localhost目录下创建helloapp.xml文件,它的内容如下:

Xml代码  

  1. <Context path="/helloapp" docBase="C:\
  2. chapter03\helloapp" reloadable="true"/>

以上<Context>元素的 docBase 属性指定了 helloapp 应用的绝对路径,为C:\chapter03\helloapp;path属性表明访问helloapp应用的URL入口为“/helloapp”。由于helloapp.xml文件位于Catalina/localhost/子目录下,因此helloapp应用将运行在名为Catalina 的 Engine 组件的 localhost 虚拟主机中。访问 helloapp应用中的 login.htm和hello.jsp的URL分别为:

Java代码  

  1. http://localhost:8080/helloapp/login.htm
  2. http://localhost:8080/helloapp/hello.jsp

在 server.xm文件中已经有一个名为 localhost 的<Host>元素,如果采用第五种方式配置<Context>元素,最常见的做法是在该<Host>元素中插入<Context>子元素,例如:

Java代码  

  1. <Host name="localhost"              appBase="webapps"
  2. unpackWARs="true"        autoDeploy="true"
  3. xmlValidation="false"   xmlNamespaceAware="false">
  4. <Context path="/helloapp" docBase="helloapp" reloadable="true"/>
  5. </Host>

Tips

如果没有为Web应用配置Tomcat的Context元素,那么Tomcat会为Web应用提供一个默认的Context组件。例如在按照本章3.3.2节的方式发布helloapp应用时,Tomcat就给它提供了默认的Context组件。

http://pengtyao.iteye.com/blog/1028968

时间: 2024-12-16 10:23:13

3.3.4 配置Tomcat的<Context>元素 (转)的相关文章

Tomcat Server Context 配置

context 元素代表一个web应用在特定的虚拟主机上运行.在一个 Host 元素中嵌套多个 Context 元素,但每个路径 path 必须是唯一的 还须定主一个 path="" 的 Context,缺省 web 应用.处理不能匹配任何 Context 的Conteext 路径的请求. 除在 Host 元素中嵌套,也可存放在单个文件中,放在 $CATALINA_HOME/conf/[enginename]/[hostname]/目录下面 应用的自动发布,这咱方法允许动态重新配置we

在tomcat下context.xml中配置各种数据库连接池(JNDI)

1.   首先,需要为数据源配置一个JNDI资源.我们的数据源JNDI资源应该定义在context元素中.在tomcat6版本中,context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中.因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载.而context.xml文件则不然,tomcat服务器会定时去扫描这个文件.一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器

Tomcat中Context的配置

Tomcat直接ip地址访问不用加端口和项目名 当我们开发完一个WEB项目 然后部署到tomcat下,正常情况下应该是这样访问:http://localhost:端口号/项目名 如果我们想让用户仅仅输入域名来访问我们的项目,我们就需要修改Tomcat的Context设置. 修改{TOMCAT_HOME}/conf/server.xml文件 使用文本编辑器打开server.xml文件,在<Host>节点下增加<Context>节点,并设置path.docBase.reloadable

JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomcat的目录结构* bin目录:存放tomcat的启动和终止脚本 * startup.bat 启动脚本 * bootstrap.jar,启动脚本最终执行的java程序 * org.apache.catalina.startup.Bootstrap * shutdown.bat 终止脚本 * conf目录

CentOS 6.5上安装并配置Tomcat

一.下载并安装jdk 到oracle官网下载jdk,然后上传到CentOS上. cd /opt/tools/ [[email protected] tools]# ll jdk-8u101-linux-i586.tar.gz apache-tomcat-7.0.72.tar.gz  -rw-r--r-- 1 root root   8931288 Sep 14 20:39 apache-tomcat-7.0.72.tar.gz -rw-r--r-- 1 root root 183456778 O

Tomcat 的context.xml

1. 在tomcat 5.5之前: --------------------------------------------------------------- Context体如今/conf/server.xml中的Host里的<Context>元素,它由Context接口定义.每一个<Context元素代表了执行在虚拟主机上的单个Web应用 xml <Context path="/kaka" docBase="kaka" debug=&

第二部分_搭建Java Web开发环境与配置Tomcat服务器&amp;JSP详解

MyEclipse集成Tomcat 首先配置Tomcat,即配置环境变量Java_HOME.path,在第一讲中已经完成了,不再赘述. Eclipse代码风格导入MyEclipse: 每个项目都要配置一次代码风格,文字大小,快捷键等等比较麻烦,可以用File下面的导入.导出功能.比如Eclipse下的File->General->Preferences->export all,生成一个*.epf文件,然后用MyEclipse中的File->import->General-&g

Tomcat 的context.xml说明、Context标签讲解

Tomcat的context.xml说明.Context标签讲解 1. 在tomcat 5.5之前 --------------------------- Context体现在/conf/server.xml中的Host里的<Context>元素,它由Context接口定义.每个<Context元素代表了运行在虚拟主机上的单个Web应用 Xml代码 <Context path="/kaka" docBase="kaka" debug=&quo

IntelliJ IDEA 2017 配置Tomcat 运行Web项目

以前都用MyEclipse写程序的 突然用了IDEA各种不习惯的说 借鉴了很多网上好的配置办法,感谢各位大神~ 前期准备 IDEA.JDK.Tomcat请先在自己电脑上装好 好么~ 博客图片为主 请多看红框框 开始 1.创建.配置项目 1.1创建项目 New Project - [next] 1.2 给你的项目起名字,选地方 - [finish] 1.3开始配置项目 配置 project structure [F4] 或 项目右键 [Open Module Settings]或 右上角有个黑蓝色