在tomcat 5.5之前
Context体现在/conf/server.xml中的Host里的<Context>元素,它由Context接口定义。每个<Context元素代表了运行在虚拟主机上的单个Web应用
在tomcat 5.5之后
不推荐在server.xml中进行配置,而是在/conf/context.xml中进行独立的配置。因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载。而context.xml文件则不然,tomcat服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。

context.xml

<?xml version='1.0' encoding='utf-8'?>
<Context>
<!-- 监控资源文件,如果web.xml改变了,则自动重新加载应用 -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!--本地测试项目-->
<!-- name,指定JNDI名称 -->
<!-- auth,表示认证方式,一般为Container -->
<!-- maxActive,连接池支持的最大连接数 -->
<!-- maxIdle,连接池中最多可空闲连接数 -->
<!-- maxWait,连接池中连接用完时,新的请求等待时间,单位毫秒 -->
<!-- username,password,数据库用户名/密码 -->
<!-- driverClassName,jdbc驱动 -->
<!-- url,数据库url地址 -->
<Resource name="jdbc/opslocal"
auth="Container"
type="javax.sql.DataSource"
username="scott"
password="admin"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
maxActive="100000"
maxIdle="4"/>
<Resource name="jdbc/inslocal"
auth="Container"
type="javax.sql.DataSource"
username="ins"
password="ayw_ins1"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@132.228.213.137:1521:ossmob"
maxActive="100000"
maxIdle="4"/>
<!--生产项目-->
<Resource name="jdbc/cpflocal"
auth="Container"
type="javax.sql.DataSource"
username="cpf_dispatch"
password="cpf_dispatch"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@132.232.7.51:15211:orcl"
maxActive="100000"
maxIdle="4"/>
</Context>

server.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- port:指定一个端口,负责监听关闭tomcat的请求,shutdown:指定向端口发送的命令字符串-->
<Server port="8005" shutdown="SHUTDOWN"><!-- 监听器:通常实现tomcat内部进行通信的,可在各组件之间完成通信-->
<Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener"/>
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/><!-- 全局命名资源:方便全局引用,所以为其起完名称后可以随便调用的-->
<GlobalNamingResources><!-- pathname:即调用tomcat-user.xml配置文件进行用户认证-->
<Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
</GlobalNamingResources><!-- 服务:一个服务组件通常包含一个引擎和此引擎相关联的一个或多个链接服务器-->
<Service name="Catalina">
<!-- 连接服务器:表示客户端和service之间的连接,一个引擎能配置多个连接器 但是每个连接器的端口不能冲突;负责接收客户请求,以及向客户返回响应结果-->
<!-- port:所在监听端口,protocol:协议版本号,connectionTimeout:连接超时时间,单位毫秒-->
<!-- maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200 -->
<!-- connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间 -->
<Connector port="8080"
maxThreads="1500"
maxProcessors="450"
connectionTimeout="20000"
protocol="HTTP/1.1"
redirectPort="8443"/><!-- redirectPort指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转发至SSL的redirectPort端口-->
<!-- enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true -->
<Connector port="8009" enableLookups ="false" protocol="AJP/1.3" redirectPort="8443"/>
<!--maxThreads:最大线程,scheme:协议版本,secure:安全的-->
<!--clientAuth:不验证客户端,sslProtocol:协议用的是tls-->
<!--
<Connector port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="700"
scheme="https"
secure="true"
maxProcessors="300"
clientAuth="false"
sslProtocol="TLS" />-->
<!--引擎:表示指定service中的请求处理机,接收和处理来自Connector的请求.可以接收用户的http请求,并构建响应报文,而且可以在内部处理java程序的整个套间-->
<!-- defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的 -->
<Engine defaultHost="localhost" name="Catalina"><!-- Realm 表示存放用户名,密码及role的数据库 -->
<!-- className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口 -->
<Realm className="org.apache.catalina.realm.LockOutRealm"><Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm><!-- appBase 应用程序基本目录,即存放应用程序的目录-->
<!-- unpackWARs:如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件,-->
<!-- autoDeploy:如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用-->
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"><!-- ValveclassName:定义阀门,java中类的记录方式,当前所处域名反过来写的记录方式-->
<!-- prefix,suffix:日志的命名-->
<!-- pattern:访问日志的格式-->
<!-- directory 指定log文件存放的位置 -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/><!-- Context 表示运行在虚拟主机上的一个web应用程序,通常为WAR文件 -->
<!-- 一个<Host>可以包含多个<Context>元素.每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个ServletContext对象. -->
<!-- docBase 应用程序的路径或者是WAR文件存放的路径 -->
<!-- path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/****  -->
<!-- reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载应用程序,我们可以在不重起tomcat的情况下改变应用程序 -->
<Context docBase="sample-demo" path="/sample-demo" reloadable="true" source="org.eclipse.jst.jee.server:sample-demo"/>
</Host>
</Engine>
</Service>
</Server>

转载于:https://www.cnblogs.com/xyhero/p/9343924.html

tomcat配置文件context.xml和server.xml分析相关推荐

  1. tomcat访问manager报404;server.xml中配置了Context path

    <Context path="" docBase="crm" debug="0" reloadable="true" ...

  2. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务,因为是入门示例,所以设置极其简单,只需修改$CATALINA_HOME/conf/server.xml文件为如下内容即可 ...

  3. Tomcat server.xml配置文件介绍

    一.server.xml文件介绍 1.server.xml作用     Server.xml配置文件用于对整个容器进行相关的配置. 2.server.xml文件的配置元素列表 <Server&g ...

  4. tomcat Server.xml Context配置

    有时候需要在tomcat里面做特殊的配置,来进行访问: 例如你的程序 名字是hello端口是80  这时候你要访问你的程序 就要用 localhost/hello 来访问了. 但是怎么直接用 loca ...

  5. Tomcat server.xml配置示例

    转载自    Tomcat server.xml配置示例 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完成初始化所需要的.正是由于 ...

  6. 【Linux】循序渐进学运维-tomcat配置文件详解

    文章目录 目录结构及作用 tomcat配置文件 1. context.xml 2. web.xml 3. server.xml 4. tomcat-users.xml 运维常用配置文件讲解 1. 整体 ...

  7. tomcat源码阅读之Server和Service接口解析

    tomcat中的服务器组件接口是Server接口,服务接口是Service,Server接口表示Catalina的整个servlet引擎,囊括了所有的组件,提供了一种优雅的方式来启动/关闭Catali ...

  8. Tomcat源码分析——server.xml文件的加载

    前言 作为Java程序员,对于tomcat的server.xml想必都不陌生.本文基于Tomcat7.0的Java源码,对server.xml文件是如何加载的进行分析. 源码分析 Bootstrap的 ...

  9. Tomcat启动分析server.xml

    2019独角兽企业重金招聘Python工程师标准>>> Tomcat Server的结构图 该文件描述了如何启动Tomcat Server <Server> <Li ...

最新文章

  1. selenium webdriver python 环境搭建
  2. 基于Ubuntu Hadoop的群集搭建Hive
  3. 2021-11-18可变参数
  4. mysql读取整张表_mysql 一个表里的信息是读取另一张表来的
  5. hdu4533 威威猫系列故事——晒被子
  6. Java项目打war包的方法
  7. 华为acl怎么生效_华为ACL配置教程(一)
  8. Nucleic Acids Research | NONCODE数据库V6版发布,涵盖全面的动植物长非编码RNA注释
  9. spring boot、mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问
  10. scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class
  11. Android最佳实践之流畅设计
  12. 数据分析——十大数据分析模型
  13. 计算机管理恢复分区,如何在Windows10中删除磁盘管理器中的恢复分区
  14. Python多线程获取上证50成分股交易数据
  15. win7下关闭wps热点和wps云文档自动漫游的方法
  16. exceljs如何画单元格斜线?
  17. 多彩泡泡屏保特效(JAVA版)
  18. php入侵检测,PHP入侵检测系统—PHPIDS
  19. fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you
  20. 多域名同一空间的处理实例附(ASP代码)

热门文章

  1. 微信ASP.NET高级平台接口
  2. 免费持久的天气预报web service
  3. 计算机网络——访问网站数据传输过程
  4. 吴恩达深度学习 —— 作业2
  5. Uncaught SyntaxError: Unexpected identifier ”的报错解决
  6. 数字图像处理--微分算子为什么也是空间滤波器
  7. 摄影测量--相对定向-绝对定向(C++实现)
  8. [转载]LM算法的实现
  9. Delphi 7自带的TeeChart组件
  10. 统计学习方法笔记(李航)———第三章(k近邻法)