Tomcat的核心组件是servlet容器。

Tomcat各个组件之间的嵌套关系

server.xml配置如下:

<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
     <Context docBase="D:\\work\\alaEclipse\\workspace\\iptvsys\\webapps\\lcsmp" path="/" workDir="work\Catalina\portal\_"></Context>
    </Host>
</Engine>
</Service>
</Server>

<Server>

代表整个servlet容器组件。里面可以有一个或多个Service

参数:

className:必须实现org.apache.catalina.Server接口

address:Server等待关闭命令的TCP/IP地址,默认localhost

port:Server等待关闭命令的TCP/IP端口号

shutdown:关闭命令,必须从上面指定的TCP/IP地址和端口获取

<Service>

包含一个Engine和多个Connector。

参数:

className:必须实现org.apache.catalina.Service接口

name:同一个Server里的Service的name必须唯一

<Connector>

代表和客户交互的组件,负责接收客户请求和返回响应结果。HTTP Connector代表一个支持HTTP协议的组件,它可以使Catalina作为一个单独的web
server起作用。参数:

port:Connector建立web socket等待外部连接的TCP端口号

protocol:设置处理传入数据的协议

URIEcoding:指定解码URI数据的编码,默认为ISO-8859-1

<Engine>

Engine用于处理同一个Service中所有Connector接收到的客户请求。

参数:

defaultHost:默认主机名,它标识将处理的所有该主机的请求。该值必须匹配它内置元素其中一个Host的name值。

<Host>

定义一个虚拟主机,可以包含一个或多个应用。

参数:

appBase:默认为webapps,表示appBase目录下的所有的子目录都将自动部署为web应用

name:通常使用已在DNS注册的虚拟主机的网络名,多个Host中必须有一个的name与Engine的defaultHost的值匹配。

<Context>

每一个该元素都代表一个Web应用。

参数:

path:虚拟路径,浏览器访问的url,比如:http://localhost:8080/path

docBase:web应用的实际物理路径,若该路径是相对路径的话,则是相对于appBase而言,若是绝对路径,则与appBase无关。

reloadable:当/WEB_INF/classes或/WEB_INF/lib发生改变,则自动重新加载应用。

<GlobalNamingResources>

常量配置

如果我们想为某个web应用配置常量,可以在WEB-INF/web.xml中配置如下:

<env-entry>
<env-entry-name>maxExemptions</env-entry-name>
<env-entry-value>10</env-entry-value>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>

在java程序中,读取方式如下:

Context initCtx = null;
initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
Integer n = (Integer)envCtx.lookup("maxExemptions");

如果我们想为所有web应用配置相同的常量,可以在tomcat/conf/server.xml下配置:

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN"> <GlobalNamingResources>
<Environment name="maxExemptions" value="10"
type="java.lang.Integer" override="true"/>
</GlobalNamingResources> <Service name="Catalina"> <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> <Engine defaultHost="localhost" name="Catalina"> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <Context docBase="project01" path="/project01" reloadable="true" source="org.eclipse.jst.jee.server:project01">
<ResourceLink name="maxExemptions" global="maxExemptions" type="java.lang.Integer"/>
</Context> </Host> </Engine> </Service> </Server>

在GlobalNamingResources下定义一个Environment,在具体应用Context下,使用ResourceLink指定该Environment资源,global名字就是该Environment的名字。在java中的读取方式和前面相同。

数据源配置

在tomcat/conf/server.xml中配置数据源如下:

<GlobalNamingResources>
<Resource
name="LCSMP116"
username="amsdevelop"
password="amsdevelop123"
maxIdle="30"
maxActive="50"
maxWait="5000"
type="javax.sql.DataSource"
driverClassName="com.sybase.jdbc3.jdbc.SybDriver"
url="jdbc:sybase:Tds:10.21.17.20:5100/LCSMP?charset=cp936" />
</GlobalNamingResources>

并在Context下引用该数据源,也可以在tomcat/conf/Context.xml,tomcat\webapps\应用名\META-INF\context.xml 或者在tomcat/conf/localhost/应用名.xml下加入ResourceLink

<Context docBase="D:\\work\\alaEclipse\\workspace\\iptvsys\\webapps\\lcsmp" path="/" workDir="work\Catalina\portal\_">
<ResourceLink global="LCSMP116" name="DBSERVER_DS" type="javax.sql.DataSource"/>
</Context>

此时便可以在Spring的applicationContext.xml配置dataSource

<beans>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:/comp/env/DBSERVER_DS</value>
</property>
</bean>
</beans>

也可以使用以下方式获取数据源

//获得对数据源的引用:
Context ctx = new InitalContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/DBSERVER_DS");
//获得数据库连接对象:
Connection con = ds.getConnection();
//返回数据库连接到连接池:
con.close();

Tomcat配置 —— server.xml的更多相关文章

  1. OSChina.net 的 Tomcat 配置 server.xml 参考

    这是目前 oschina.net 正在使用的 tomcat 的 server.xml 的配置文件内容 <Server port="9005" shutdown="S ...

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

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  3. 配置Tomcat的server.xml以适应web-content文件系统的位置改变

    刚才把写的一对jsp.html文件夹改变了位置,然后测试的时候出现了404 后来思考,应该去重新配置tomcat的server.xml文件,修改虚拟路径对应的文件系统路径,修改为当前对应的文件系统路径 ...

  4. tomcat中server.xml配置详解(转载)(一)

    转载自:https://www.cnblogs.com/starhu/p/5599773.html tomcat中server.xml配置详解 Tomcat Server的结构图如下:(该文件描述了如 ...

  5. 关于tomcat的server.xml里host节点配置的一些说明

    其实对这个一直搞不清楚,后来公司的网站遭遇与IIS进行整合,然后上面有几个应用需要进行配置,所以对tomcat的server.xml进行了一些深入的了解 Host的节点主要是起一个对域名解析到那个虚拟 ...

  6. 数据库存储图片相对路径使用问题,配置tomcat的server.xml文件

    我想从前端读取路径的时候,必须输入相对路径+根路径,但是我数据库中存的相对路径 接下来讲解如何通过相对路径获得照片 首先我们需要在tomcat的server.xml文件中更改属性,eslipse可以直 ...

  7. Tomcat的Server.xml虚拟主机和虚拟目录的配置

    以前开发JavaEE网站都布置在Tomcat下,布置目录一般为$CATALINA_HOME/webapps/WebName,所以要访问网站,则在http://localhost后必须要加上上下文路径( ...

  8. Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)

    Tomcat 利用server.xml进行项目映射的部署 2013-07-17 15:14 12843人阅读 评论(4) 收藏 举报  分类: web 开发(5)  版权声明:本文为博主原创文章,欢迎 ...

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

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...

随机推荐

  1. 一步一步学习大数据:Hadoop 生态系统与场景

    Hadoop概要 到底是业务推动了技术的发展,还是技术推动了业务的发展,这个话题放在什么时候都会惹来一些争议. 随着互联网以及物联网的蓬勃发展,我们进入了大数据时代.IDC预测,到2020年,全球会有 ...

  2. 树莓3B+_apt-get update && apt-get upgrade

    在Windows下安装软件,我们只需要有EXE文件,然后双击,下一步直接OK就可以了.但在LINUX下,不是这样的.每个LINUX的发行版,都会维护一个自己的软件仓库,我们常用的几乎所有软件都在这里面 ...

  3. linux中配置JDK环境变量

    使用的centos版本为 7.5 首先我们要把jdk拷到linux中,这里我们借助XShell工具,我们先来看看Xshell的用法 打开Xshell 后点击文件,“新建“,如下图: 起一个名称,主机填 ...

  4. python range,xrange区别

    range: 直接生成一个列表对象 xrange: 生成一个xrange对象 xrange使用: 操作一个非常大的数据时,而且没存比较吃紧的时,可以使用xrange来节省内存 xrange一般在循环里 ...

  5. BFC与浮动

    一.BFC的含义 BFC(block formatting contexts) 块级元素格式化上下文,它决定了块级元素如何对它的内容进行布局,以及与其它元素的关系和相互作用. 块级元素:父级(是一个块 ...

  6. 05ICMP协议与ARP协议(IP协议中重要协议)

    ICMP协议在网络层,应用:ping命令,tracert命令:追踪命令,用于静态路由. ICMP重定向 redirect

  7. Xilinx FPGA高速串行收发器简介

    1 Overview 与传统的并行实现方法相比,基于串行I/O的设计具有很多优势,包括:器件引脚数较少.降低了板空间要求.印刷电路板(PCB)层数较少.可以轻松实现PCB设计.连接器较小.电磁干扰降低 ...

  8. 20155203 2016-2017-3 《Java程序设计》第三周学习总结

    20155203 2016-2017-3 <Java程序设计>第三周学习总结 教材知识要点总结 第四章 文档主文档名必须与公开类名称相同.一个原始码中可以定义多个类,但是只能有一个公开类. ...

  9. 20155213 实验四 Android程序设计

    20155213 实验四 Android程序设计 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事 ...

  10. 20155332 2006-2007-2 《Java程序设计》第2周学习总结

    20155332 2006-2007-2 <Java程序设计>第2周学习总结 教材学习内容总结 在JAVA中分为基本类型和类类型两大类型系统. JAVA中的基本类型主要分为如下几类: 1. ...