春天的光輝

          把春天的氣息和光芒灑滿大地,沐浴著身邊的每一個人... ...

           

          Tomcat開發技術之與HTTP服務器的集成(1)

          作者:孫衛琴 文章來源:賽迪網 點擊數: 1407 更新時間:2005-6-12

          Tomcat最主要的功能是提供Servlet/JSP容器,盡管它也可以作為獨立的Java Web服務器,它在對靜態資源(如HTML文件或圖像文件)的處理速度,以及提供的Web服務器管理功能方面都不如其他專業的HTTP服務器,如IIS和Apache服務器。

          因此在實際應用中,常常把Tomcat與其他HTTP服務器集成。對于不支持Servlet/JSP的HTTP服務器,可以通過Tomcat服務器來運行Servlet/JSP組件。

          當Tomcat與其他HTTP服務器集成時,Tomcat服務器的工作模式通常為進程外的Servlet容器,Tomcat服務器與其他HTTP服務器之間通過專門的插件來通信。關于Tomcat服務器的工作模式的概念可以參考本書1.4節。

          本章首先討論Tomcat與HTTP服務器集成的一般原理,然后介紹Tomcat與Apache以及IIS集成的詳細步驟。

          22.1 Tomcat與HTTP服務器集成的原理

          Tomcat服務器通過Connector連接器組件與客戶程序建立連接,Connector組件負責接收客戶的請求,以及把Tomcat服務器的響應結果發送給客戶。默認情況下,Tomcat在server.xml中配置了兩種連接器:



          ?

          																								<!-- Define a non-SSL Coyote HTTP/1.1
          Connector on port 8080 -->
              <Connector port="8080"
                         maxThreads="150" 
          			   minSpareThreads="25" 
          			   maxSpareThreads="75"
                         enableLookups="false"
          			   redirectPort="8443" 
          			   acceptCount="100"
                         debug="0" 
          			   connectionTimeout="20000" 
                         disableUploadTimeout="true" />
          
              <!-- Define a Coyote/JK2 AJP 1.3 
          	Connector on port 8009 -->
              <Connector port="8009" 
                         enableLookups="false"
          			   redirectPort="8443" debug="0"
                         protocol="AJP/1.3" />
          																						



          第一個連接器監聽8080端口,負責建立HTTP連接。在通過瀏覽器訪問Tomcat服務器的Web應用時,使用的就是這個連接器。

          第二個連接器監聽8009端口,負責和其他的HTTP服務器建立連接。在把Tomcat與其他HTTP服務器集成時,就需要用到這個連接器。

          Web客戶訪問Tomcat服務器上JSP組件的兩種方式如圖22-1所示。



          ?

          圖22-1 Web客戶訪問Tomcat服務器上的JSP組件的兩種方式



          在圖22-1中,Web客戶1直接訪問Tomcat服務器上的JSP組件,他訪問的URL為http://localhost:8080/index.jsp。Web客戶2通過HTTP服務器訪問Tomcat服務器上的JSP組件。假定HTTP服務器使用的HTTP端口為默認的80端口,那么Web客戶2訪問的URL為http://localhost:80/index.jsp 或者 http://localhost/index.jsp。

          下面,介紹Tomcat與HTTP服務器之間是如何通信的。

          22.1.1 JK插件

          Tomcat提供了專門的JK插件來負責Tomcat和HTTP服務器的通信。應該把JK插件安置在對方的HTTP服務器上。當HTTP服務器接收到客戶請求時,它會通過JK插件來過濾URL,JK插件根據預先配置好的URL映射信息,決定是否要把客戶請求轉發給Tomcat服務器處理。

          假定在預先配置好的URL映射信息中,所有"/*.jsp"形式的URL都由Tomcat服務器來處理,那么在圖22-1的例子中,JK插件將把客戶請求轉發給Tomcat服務器,Tomcat服務器于是運行index.jsp,然后把響應結果傳給HTTP服務器,HTTP服務器再把響應結果傳給Web客戶2。

          對于不同的HTTP服務器,Tomcat提供了不同的JK插件的實現模塊。本章將用到以下JK插件:

          與Windows下的Apache HTTP服務器集成:mod_jk_2.0.46.dll

          與Linux(RedHet)下的Apache HTTP服務器集成:mod_jk.so-ap2.0.46-rh72..46-rh72

          與IIS服務器集成:isapi_redirect.dll

          posted on 2006-09-25 11:28 春輝 閱讀(170) 評論(0)  編輯  收藏 所屬分類: Tomcat 相關

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          文章檔案

          我的鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桐梓县| 德令哈市| 长寿区| 谢通门县| 丰城市| 邢台县| 太和县| 萨迦县| 海晏县| 怀仁县| 牡丹江市| 新宁县| 田东县| 平远县| 嘉鱼县| 新野县| 德惠市| 游戏| 广河县| 长沙县| 荆门市| 克山县| 伊宁市| 宝丰县| 繁峙县| 江孜县| 江都市| 师宗县| 运城市| 双流县| 宜兰市| 宁阳县| 白银市| 福鼎市| 涪陵区| 新田县| 临澧县| 绥宁县| 屯昌县| 临夏县| 澄城县|