Tomcat体系结构初识
对于Tomcat体系结构我们从一张图开始:

概述
Tomcat服务器的启动是基于一个server.xml文件的,Tomcat启动的时候首先会启动一个Server,Server里面就会启动Service,Service里面就会启动多个"Connector(连接器)",每一个连接器都在等待客户机的连接,当有用户使用浏览器去访问服务器上面的web资源时,首先是连接到Connector(连接器),Connector(连接器)是不处理用户的请求的,而是将用户的请求交给一个Engine(引擎)去处理,Engine(引擎)接收到请求后就会解析用户想要访问的Host,然后将请求交给相应的Host,Host收到请求后就会解析出用户想要访问这个Host下面的哪一个Web应用,一个web应用对应一个Context。
//如果设置了Context那么就按照Context运行应用 <Host name="localhost" appBase="H:\WebApps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="H:\WebApps\Demo1"/>//这里可以加web应用私有数据源 <Context path="" docBase="D:\Demo2"/> </Host> //默认web应用方仔webapps目录下 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"></Host> //unpackWARs=false则不解开WAR包运行,autoDeploy=true则有web应用部署到webapps目录下则直接发布
Context.xml
//每个web应用都将加载此内容作为其上下文环境,公共的上下文环境
<!-- The contents of this file will be loaded for each web application --> <Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name="wx" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="1" maxWait="100" username="l" password="l" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@172.30.11.147:1521:tsjzl11" /> <Loader delegate="true" />
//True,表示tomcat将遵循JVM的delegate机制,即一个WebAppClassLoader在加载类文件时,会先递交给SharedClassLoader加载,SharedClassLoader无法加载成功,会继续向自己的父类委托,一直到BootstarpClassLoader,如果都没有加载成功,则最后由WebAppClassLoader自己进行加载。
False,表示将不遵循这个delegate机制,即WebAppClassLoader在加载类文件时,会优先自己尝试加载,如果加载失败,才会沿着继承链,依次委托父类加载。 </Context>
//如果需要配置多个数据源可以添加多个Resource
更加详细的看着里:http://panlianghui-126-com.iteye.com/blog/810056

浙公网安备 33010602011771号