春天的光輝

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

           

          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)

          隨筆檔案

          文章分類

          文章檔案

          我的鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 基隆市| 得荣县| 胶南市| 华安县| 江华| 德惠市| 仙桃市| 格尔木市| 彭泽县| 余干县| 常山县| 静安区| 黄梅县| 白山市| 康保县| 山阳县| 荃湾区| 罗平县| 天门市| 冀州市| 措美县| 新泰市| 满城县| 宕昌县| 濮阳县| 讷河市| 盐亭县| 黔西| 嘉鱼县| 泸西县| 忻州市| 夏津县| 拉孜县| 西藏| 镶黄旗| 高青县| 南昌市| 绩溪县| 金乡县| 新蔡县| 清涧县|