天天看點

tomcat

一. 簡介

  Apache的一個子項目,是一款Servlet/JSP容器。

  Servlet是一種伺服器端的Java應用程式,具有獨立于平台和協定的特性,可以生成動态的Web頁面。 它擔當客戶請求與伺服器響應的中間層。Servlet是位于Web 伺服器内部的伺服器端的Java應用程式,與傳統的從指令行啟動的Java應用程式不同,Servlet由Web伺服器進行加載,該Web伺服器必須包含支援Servlet的Java虛拟機。

二.Servlet容器調用Servlet處理請求/響應過程

  1. 當客戶請求通路某個Servlet時,Servlet容器将建立一個ServletRequest對象和ServletResponse對象;
  2. 在ServletRequest對象中封裝了客戶請求資訊,然後Servlet容器把ServletRequest對象傳給客戶所請求的Servlet;
  3. Servlet把響應結果寫在ServletResponse中,由Servlet容器把響應結果傳給客戶。
tomcat

三. tomcat結構

  tomcat伺服器是由一系列可配置的元件構成,其中核心元件是Servlet容器,它是所有其他Tomcat元件的頂層容器。可以在server.xml檔案中進行配置,每個Tomcat元件在server.xml檔案中對應一種配置元素。

<Server>  //Servlet容器
    <Service>
        <Connector/>  //連接配接器。和客戶實際互動的元件,它負責接受客戶的請求,以及想客戶傳回響應結果。
 
        ......
        <Connector/>
        <Engine>
            <Host>  //虛拟主機
                <Context></Context>  //運作在虛拟主機上的單個web應用。
                ......
                <Context></Context>
            </Host>
            ......
            <Host>
                ......
            </Host>
        </Engine>
    </Service>
    ......
    <Service>
        ......
    </Service>
</Server>
      

頂層配置元素        <Server> 和<Service>;

連接配接器類元素       <Connector>  介于客戶服務之間的通信接口,負責将客戶的請求發送給伺服器,并将伺服器的響應結果傳遞給客戶;

容器類元素          <Engine>,<Host>,<Context>處理客戶請求并生成響應結果的元件

嵌套類元素          <Loger>,<Value>,<Realm> 可以加入到容器中的元件

<Server>   元素代表整個Servlet容器,它是Tomcat執行個體的頂層元素。<Server>元素中可以包含一個或多個<Service>元素。

<Service>   包含一個<Engine>元素,以及一個或多個<Connector>元素,這些<Connector>元素共享同一個<Engine>元素

<Connector>代表和客戶實際互動的元件,它負責接受客戶的請求,以及想客戶傳回響應結果。

<Engine>    每個<Service>元素隻能包含一個<Engine>元素。<Engine>元素處理在同一個<Service>中所有<Connector>元素接收到的客戶請求。

<Host>     一個<Engine>可以包含多個<Host>元素。每個<Host>元素定義了一個虛拟主機,它可以包含一個或多個Web應用。每個Web應用必須有唯一的URL路徑,這個URL路徑在<Context>元素的path屬性中設定。如:<Context   path=“/child” docBase=“web-test”   debug=“0” Reloadable=“true”>。reloadable為true,則tomcat運作中會動态監視class等檔案的改動,如果監視到有class檔案被更新,tomcat會自動重新加載Web應用。開發階段設為true,釋出階段設為false.通路時:www.xxx.com/child-->webapps/test.

如:

<Host name="localhost" appBase="/opt/webapps" unpackWARs="true" autoDeploy="true">

<Context path="/adu" docBase="adu-web" debug="0" reloadable="false"></Context>

</Host>

則:www.xxx.com/adu-->/opt/webapps/adu-web

四. JAVA web應用

Java Web應用由一組靜态HTML頁面,Servlet,JSP和其他的class組成。每種元件在Web應用中都有固定的存放目錄。

Java Web應用通過一個基于XML的釋出描述符檔案來配置其釋出資訊,這個檔案名為web.xml。

五. 部署

部署一個新的tomcat需要修改的地方:

1)bin/catalina.sh(調試設定)

CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -DDEBUG_ENV -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=35577"
# OS specific support........
      

2)conf/server.xml

<Server port="45742" shutdown="SHUTDOWN">
 ...... 
<Connector port="45741" protocol="HTTP/1.1" maxThreads="2000" acceptCount="2000" connectionTimeout="20000" redirectPort="45743" />
 ......
<Connector port="45744" protocol="AJP/1.3" redirectPort="45743" />
.....
<Host name="localhost" appBase="/opt/webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="adu-web" debug="0" reloadable="false"></Context>
</Host>
......
      

  

  • 作者:水岩
  • 出處:http://www.cnblogs.com/waterystone
  • 本部落格中未标明轉載的文章歸作者水岩和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

如果您覺得本文對您的學習有所幫助,可通過支付寶(左) 或者 微信(右) 來打賞部落客,增加部落客的寫作動力

tomcat
tomcat

繼續閱讀