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应用:
- <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应用:
- <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文件,它的内容如下:
- <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文件,它的内容如下:
- <Context path="/helloapp" docBase="C:\
- 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分别为:
- http://localhost:8080/helloapp/login.htm
- http://localhost:8080/helloapp/hello.jsp
在 server.xm文件中已经有一个名为 localhost 的<Host>元素,如果采用第五种方式配置<Context>元素,最常见的做法是在该<Host>元素中插入<Context>子元素,例如:
- <Host name="localhost" appBase="webapps"
- unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false">
- …
- <Context path="/helloapp" docBase="helloapp" reloadable="true"/>
- </Host>
Tips
如果没有为Web应用配置Tomcat的Context元素,那么Tomcat会为Web应用提供一个默认的Context组件。例如在按照本章3.3.2节的方式发布helloapp应用时,Tomcat就给它提供了默认的Context组件。
http://pengtyao.iteye.com/blog/1028968
3.3.4 配置Tomcat的<Context>元素 (转)的更多相关文章
- J2EE环境搭建(三)配置Tomcat 7.0的局部数据源
在J2EE环境搭建(一)中遗留下一个配置Tomcat数据源的问题,最近都在专心搞iOS的东西,由于J2EE布置了作业,所以又回过头来搞下J2EE.汗... 在这里我使用的是MySQL. 1.配置MyS ...
- 配置Tomcat中的Context元素中的中文问题
发布一个名叫helloapp的web应用,helloapp位于D:\我\helloapp.发布的方式是通过配置<CATALINA_HOME>/conf/Catalina/localhost ...
- Java进阶(十)java tomcat中context配置
Tomcat中Context的配置 问题: java tomcat中<context> docBase属性是什么意思? 元素的属性: path:指定访问该Web应用的URL入口. doc ...
- 在tomcat下context.xml中配置各种数据库连接池(JNDI)
1. 首先,需要为数据源配置一个JNDI资源.我们的数据源JNDI资源应该定义在context元素中.在tomcat6版本中,context元素已经从server.xml文件中独立出来了,放在一个 ...
- 《TomCat与Java Web开发技术详解》(第二版) 第三章节的学习总结--利用Context元素来自定义web应用的存储位置
在学习完第三章后(第三章提供的web应用是helloaapp,我将其放到了tomcat/webapps中),对Context元素的作用理解不深:但是当进入第四章后,发现第四章提供的源码包中也有一个叫h ...
- 在tomcat下context.xml中配置各种数据库连接池
作者:郑文亮 Tomcat6的服务器配置文件放在 ${tomcat6}/conf 目录底下.我们可以在这里找到 server.xml 和 context.xml.当然,还有其他一些资源文件.但是在在本 ...
- Tomcat中Context的配置
Tomcat直接ip地址访问不用加端口和项目名 当我们开发完一个WEB项目 然后部署到tomcat下,正常情况下应该是这样访问:http://localhost:端口号/项目名 如果我们想让用户仅仅输 ...
- [原创]同一个Tomcat,配置多个context、多个Host
需求前提: 系统结束后,需要部署到服务器上. 目前只可以映射到一个固定IP的非80端口. 而server端和web端都要暴露到外网. 所以配置两个context,使得client应用不需要添加服务名, ...
- context元素大概解说
Context元素代表一个web应用,运行在某个特定的虚拟主机上.如Servlet Specification 2.2或以后版本中描述的那样,每个web应用基于一个Web Application Ar ...
随机推荐
- Algorithm --> 最长公共子序列(LCS)
一.什么是最长公共子序列 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列. 举例如 ...
- Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)
注解的处理除了可以在运行时通过反射机制处理外,还可以在编译期进行处理.在编译期处理注解时,会处理到不再产生新的源文件为止,之后再对所有源文件进行编译. Java5中提供了apt工具来进行编译期的注解处 ...
- git项目初始化
Command line instructions 1.Git global setup git config --global user.name "99176942"git c ...
- CSS 语法
CSS 语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 选择器通常是您需要改变样式的 HTML 元素. 每条声明由一个属性和一个值组成. 属性(property)是您希望设置的样 ...
- Java基础学习笔记十四 常用API之基本类型包装类
基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们 ...
- Alpha阶段报告-hywteam
一.Alpha版本测试报告 1. 在测试过程中总共发现了多少Bug?每个类别的Bug分别为多少个? BUG名 修复的BUG 不能重现的BUG 非BUG 没能力修复的BUG 下个版本修复 文件路径的表示 ...
- Beta冲刺Day4
项目进展 李明皇 今天解决的进度 因服务器端未完成登录态维护,故无法进行前后端联动. 明天安排 前后端联动调试 林翔 今天解决的进度 因上课和实验室事务未完成登录态维护 明天安排 完成登录态维护 孙敏 ...
- 《高级软件测试》JIRA使用手册(二)JIRA安装
Jira Software 下载地址 Windows系统x86平台:https://downloads.atlassian.com/software/jira/downloads/atlassian- ...
- bzoj千题计划276:bzoj4515: [Sdoi2016]游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=4515 把lca带进式子,得到新的式子 然后就是 维护树上一次函数取min 一个调了一下午的错误: 当 ...
- java实现红包的分配算法
个人推测,微信红包在发出的时候已经分配好金额.比如一个10元的红包发给甲乙丙三个人,其实在红包发出去的时候,已经确定了第一个会领取多少,第二个会领取多少金额. 而不是在领取的时候才计算的.下面贴出实现 ...