在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>

tomcat配置文件context.xml和server.xml分析的更多相关文章

  1. eclipse tomcat集成开发,修改server.xml

    根据需求,需要修改server.xml文件,用于更改tomcat的运行方式.发现修改后,在eclipse中发布项目,server.xml的修改又被恢复了.网上找了n多资料只了解到eclipse维护自己 ...

  2. tomcat原理(一)server.xml中的host虚拟主机的理解

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  3. [从零开始搭网站五]http网站Tomcat配置web.xml和server.xml

    点击下面连接查看从零开始搭网站全系列 从零开始搭网站 上一章我们在CentOS下搭建了Tomcat,但是还是没有跑起来...那么这一章就把最后的配置给大家放上去. 有两种方式:一种是用 rm -f 给 ...

  4. Tomcat 初探(二) server.xml 配置

    前言 在上一篇文章中,我们在示例中演示了网站的发布,其中涉及到了 server.xml 的修改,本文中我会给大家详细解释一下 server.xml 文件中的节点及其属性的作用,本片文章参考并摘抄了他人 ...

  5. eclipse和tomcat整合之后每次发布server.xml被修改(转)

    eclipse每次发布,server.xml和context.xml总是被还原 直接找到eclispse工程下的server工程,把里面的相应的server.xml和context.xml修改了即可, ...

  6. 分享一篇Linux系统使用Tomcat服务时交互式修改server.xml中端口号的shell脚本

    #!/bin/bash echo -e '\n' echo "***********************************" port1=`grep -r "s ...

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

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

  8. tomcat服务器配置域名访问项目server.xml

    <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to the Apache Software Foundation (ASF ...

  9. tomcat 配置文件server.xml 详解 Connector Engine Host Context

    目录 一 server.xml 1.1 server 配置 1.2 service 配置 1.3 Executor 1.4 Connector 配置 1.5 Engine 其他tocmat 文章 一 ...

随机推荐

  1. 利用Springboot-mail发送邮件

    相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送.在Spring Boot的Starter模块中也为此提供了自动化配置.下面通过实例看看 ...

  2. JDK源码分析(2)LinkedList

    JDK版本 LinkedList简介 LinkedList 是一个继承于AbstractSequentialList的双向链表.它也可以被当作堆栈.队列或双端队列进行操作. LinkedList 实现 ...

  3. 【LOJ#6279】数列分块3

    题目大意:维护 N 个数组成的序列,支持两种操作:区间加.区间查询某个值的前驱(小于该值的最大值,若无前驱,输出-1). 题解1:可以像分块2一样,维护每个块内元素的一个有序序列,每次查询时二分查找即 ...

  4. 【POJ3974】最长回文字串

    在这里采用的是哈希+二分的方法. 根据回文串的性质可知,可以将回文分成奇回文和偶回文分别进行处理. 对于奇回文来说,每次枚举的端点一定是重合的,因此只需计算出端点左右公共的长度是多少即可,因此二分的是 ...

  5. UIManager的字体颜色参数对照表

    FileChooser.fileTypeHeaderTextTextArea.margincom.sun.java.swing.plaf.windows.WindowsSplitPaneUIcom.s ...

  6. Windows 服务程序、窗口界面、桌面交互、与远程桌面

    昨天用c写了一个windows服务(服务内部带一个gui窗口+系统托盘),在windows xp sp3上测试,启动服务后,系统托盘显示正常. 但在另一台windows 2003 sp2 上测试(通过 ...

  7. for master

    冒泡排序 Bubble sort function bubleSort(){ var array=[1,8,9,3,2,5,4]; console.log('冒泡排序前',array); for(va ...

  8. 在windows上部署使用redis出现的问题及解决方法

    在windows上部署使用Redis出现问题的解决方法  原文链接:https://www.cnblogs.com/herry52/p/5938902.html 下载Redis 在Redis的官网下载 ...

  9. Codeforces Round #523 (Div. 2) C. Multiplicity

    C. Multiplicity 题目链接:https://codeforc.es/contest/1061/problem/C 题意: 给出一串数,问它的“好序列“有多少.好序列的定义是,首先是一个子 ...

  10. poj 3678(SCC+2-SAT)

    传送门:Problem 3678 https://www.cnblogs.com/violet-acmer/p/9769406.html 难点: 题意理解+构图 题意: 有n个点 v[0,2..... ...