研究Tomcat的結構,徹底解決數據源連接數據庫
Tomcatserver是由一系列的可配置俄組件構成的,當中核心的是Catalina Servlet容器,以下是組件關系
<Server><!--頂層元素,是Tomcat實例的頂層元素,可包括一個或多個Service-->
<Service><!--連接器元素,包括一個Engine元素,以及一個或多個Connector元素,這些Connector共享同一個Engine-->
<Connector><!--實際和客戶交互的組件-->
<Engine><!--
<Host><!--定義一個虛擬主機,它能夠包括一個或多個Web應用-->
<Context><!--使用最頻繁的元素,每一個Context代表執行在虛擬主機上的應用-->
......................</Context>
server以下有個service節點,service節點能夠用Connector配置一個監聽port。service裏有僅僅能有一個Engine節點。它接受同級文件夾Connectorport的請求,能夠通過defaultHost屬性默認指向一個Host,Host就是一個該Connectorport下的域名。以下能夠用Context配置多個虛擬文件夾。
即:server以下能夠有多個service,用於配置不同監聽port
service以下能夠有多個Host,用於配置該port下的不同域名
Host裏能夠包括多個Context,用於配置該port該域名下的不同虛擬文件夾
Host下的Alias是一個域名別稱。能夠配置多個域名
Host裏假設沒有Context節點。假設不是要訪問webapps文件夾下。不加虛擬文件夾訪問。會拋404找不到文件的錯誤
Host以下的context節點配置為:<Context path=“” 後。則這個文件夾為默認的訪問文件夾
須要配置能夠/為列文件夾,在conf/web.xml裏
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把這個的param-value改為true即為能夠列文件夾了。
當然,假設不配置server.xml文件。直接把站點放到webapps,默認會自己主動載入該站點,因此大多數情況,我們都不用對server.xml文件做不論什麽改動。
<Service name="<span style="color:#ff0000;">Catalina</span>"> <Connector port="<span style="color:#ff0000;">8080</span>" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="<span style="color:#ff0000;">8009</span>" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="<span style="color:#ff0000;">localhost</span>"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="<span style="color:#ff0000;">localhost</span>" appBase="<span style="color:#ff0000;">webapps</span>" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> <Service name="<span style="color:#ff0000;">Catalina1</span>"> <Connector port="<span style="color:#ff0000;">8090</span>" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="<span style="color:#ff0000;">8010</span>" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina1" defaultHost="<span style="color:#ff0000;">192.168.0.193</span>"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="<span style="color:#ff0000;">192.168.0.193</span>" appBase="<span style="color:#ff0000;">webapps1</span>" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service>
http://localhost:8080/appName/
http://localhost:8090/appName1/
都能夠成功,OK!
研究Tomcat的結構,徹底解決數據源連接數據庫