posts - 89,  comments - 98,  trackbacks - 0

          自從JSP發(fā)布之后,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發(fā)以后,開始考慮在SUN的JSWDK基礎(chǔ)上開發(fā)一個可以直接提供Web服務(wù)的JSP服務(wù)器,當(dāng)然同時也支持Servlet, 這樣Tomcat就誕生了。

          一、Tomcat背景
            自從JSP發(fā)布之后,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發(fā)以后,開始考慮在SUN的JSWDK基礎(chǔ)上開發(fā)一個可以直接提供Web服務(wù)的JSP服務(wù)器,當(dāng)然同時也支持Servlet, 這樣Tomcat就誕生了。
          Tomcat是jakarta項目中的一個重要的子項目,其被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的java產(chǎn)品,同時它又是sun公司官方推薦的servlet和jsp容器,因此其越來 越多的受到軟件公司和開發(fā)人員的喜愛。servlet和jsp的最新規(guī)范都可以在tomcat的新版本中得到實現(xiàn)。其次, Tomcat是完全免費(fèi)的軟件,任何人都可以從互聯(lián)網(wǎng)上自由地下載。Tomcat與Apache的組合相當(dāng)完美。

          ?

          二、 Tomcat 目錄

          tomcat
          |---bin Tomcat:
          存放啟動和關(guān)閉tomcat腳本 ;

          |---conf Tomcat:存放 不同的配置文件(server.xml和web.xml);
          |---doc:存放Tomcat文檔;
          |---lib
          /japser/common :存放 Tomcat運(yùn)行需要的庫文件(JARS);
          |---logs:存放Tomcat執(zhí)行時的LOG文件;
          |---src:存放Tomcat的源代碼;
          |---webapps:Tomcat的主要Web發(fā)布目錄(包括
          應(yīng)用程序示例 );
          |---work:
          存放jsp編譯后產(chǎn)生的class文件 ;

          三、Tomcat類加載

          ??? Bootstrap($JAVA_HOME/jre/lib/ext/*.jar)
          System($CLASSPATH/*.class
          和指定的
          jar)
          Common($CATALINA_HOME/common
          下的 classes,lib,endores 三個子目錄
          )
          Catalina ($CATALINA_HOME/server/
          下的 classes lib 目錄僅對 Tomcat 可見
          )
          &Shared($CATALINA_HOME/shared/
          下的 classes lib 目錄以及 $CATALINA_HOME/lib 目錄 ) 僅對 Web 應(yīng)用程序可見 , Tomcat 不可見 WebApp($WEBAPP/Web-INF/* 僅對該 WEB 應(yīng)用可見
          classes/*.class lib/*.jar)

          加載類和資源的順序為:
          1
          、 /Web-INF/classes

          2 、 /Web-INF/lib/*.jar

          3 Bootstrap

          4 、 System

          5 、 $CATALINA_HOME/common/classes
          6
          $CATALINA_HOME/common/endores/*.jar

          7 、 $CATALINA_HOME/common/lib/*.jar

          8 、 $CATALINA_HOME/shared/classes
          9
          、 $CATALINA_HOME/shared/lib/*.jar

          ?

          四、 server.xml 配置簡介

          下面講述這個文件中的基本配置信息,更具體的配置信息請參考 tomcat 的文檔:
          ????server:
          ??????????1
          、 port 指定一個端口,這個端口負(fù)責(zé)監(jiān)聽關(guān)閉 tomcat 的請求
          ??????????2
          、 shutdown 指定向端口發(fā)送的命令字符串
          ????service:
          ??????????1
          name 指定 service 的名字

          ????Connector (
          表示客戶端和 service 之間的連接 )

          ??????????1
          、 port 指定服務(wù)器端要創(chuàng)建的端口號,并在這個斷口監(jiān)聽來自客戶端的請求
          ??????????2
          minProcessors 服務(wù)器啟動時創(chuàng)建的處理請求的線程數(shù)

          ??????????3
          maxProcessors 最大可以創(chuàng)建的處理請求的線程數(shù)

          ??????????4
          enableLookups 如果為 true ,則可以通過調(diào)用 request.getRemoteHost() 進(jìn)行 DNS

          詢來得到遠(yuǎn)程客戶端的實際主機(jī)名,若為 false 則不進(jìn)行 DNS 查詢,而是返回其 ip

          地址
          ??????????5
          、 redirectPort 指定服務(wù)器正在處理 http 請求時收到了一個 SSL 傳輸請求后重定向的

          端口號
          ??????????6
          、 acceptCount 指定當(dāng)所有可以使用的處理請求的線程數(shù)都被使用時,可以放到處理

          隊列中的請求數(shù),超過這個數(shù)的請求將不予處理
          ??????????7
          、 connectionTimeout 指定超時的時間數(shù) ( 以毫秒為單位
          )
          ????Engine (
          表示指定 service 中的請求處理機(jī),接收和處理來自 Connector 的請求 )

          ??????????1
          、 defaultHost 指定缺省的處理請求的主機(jī)名,它至少與其中的一個 host 元素的 name

          屬性值是一樣的
          ????Context (
          表示一個 web 應(yīng)用程序 )

          ??????????1
          、 docBase 應(yīng)用程序的路徑或者是 WAR 文件存放的路徑
          ??????????2
          、 path 表示此 web 應(yīng)用程序的 url 的前綴,這樣請求的 url

          http://localhost:8080/path/****
          ??????????3
          、 reloadable 這個屬性非常重要,如果為 true ,則 tomcat 會自動檢測應(yīng)用程序的

          /WEB-INF/lib /WEB-INF/classes 目錄的變化,自動裝載新的應(yīng)用程序,我們可

          以在不重起 tomcat 的情況下改變應(yīng)用程序
          ????host (
          表示一個虛擬主機(jī) )

          ??????????1
          、 name 指定主機(jī)名
          ??????????2
          、 appBase 應(yīng)用程序基本目錄,即存放應(yīng)用程序的目錄

          ??????????3
          、 unpackWARs 如果為 true ,則 tomcat 會自動將 WAR 文件解壓,否則不解壓,直接

          WAR 文件中運(yùn)行應(yīng)用程序
          ????Logger (
          表示日志,調(diào)試和錯誤信息 )

          ??????????1
          className 指定 logger 使用的類名,此類必須實現(xiàn) org.apache.catalina.Logger 接口
          ??????????2
          、 prefix 指定 log 文件的前綴

          ??????????3
          、 suffix 指定 log 文件的后綴

          ??????????4
          、 timestamp 如果為 true ,則 log 文件名中要加入時間,如下

          :localhost_log.2001-10-04.txt
          ??Realm (
          表示存放用戶名,密碼及 role 的數(shù)據(jù)庫 )

          ??????????1
          、 className 指定 Realm 使用的類名,此類必須實現(xiàn) org.apache.catalina.Realm 接口
          ?? Valve (
          功能與 Logger 差不多,其 prefix suffix 屬性解釋和 Logger 中的一樣 )

          ??????????1
          、 className 指定 Valve 使用的類名,如用 org.apache.catalina.valves.AccessLogValve

          類可以記錄應(yīng)用程序的訪問信息
          ????directory
          (指定 log 文件存放的位置):

          ??? 1
          pattern 有兩個值, common 方式記錄遠(yuǎn)程主機(jī)名或 ip 地址,用戶名,日期,第一行

          請求的字符串, HTTP 響應(yīng)代碼,發(fā)送的字節(jié)數(shù)。 combined 方式比 common 方式記

          錄的值更多

          ?

          五、 web.xml 配置簡介

          1 、默認(rèn) ( 歡迎 ) 文件的設(shè)置

          tomcat4\conf\web.xml 中, <welcome-file-list> IIS 中的默認(rèn)文件意思相同。

          <welcome-file-list>

           <welcome-file>index.html</welcome-file>

           <welcome-file>index.htm</welcome-file>

           <welcome-file>index.jsp</welcome-file>

           </welcome-file-list>

          ?

          2 、報錯文件的設(shè)置

           <error-page>

           <error-code>404</error-code>

           <location>/notFileFound.jsp</location>

           </error-page>

           <error-page>

           <exception-type>java.lang.NullPointerException</exception-type>

           <location>/null.jsp</location>

           </error-page>

          如果某文件資源沒有找到,服務(wù)器要報 404 錯誤,按上述配置則會調(diào)用 \webapps\ROOT\notFileFound.jsp 。

          如果執(zhí)行的某個 JSP 文件產(chǎn)生 NullPointException ,則會調(diào)用 \webapps\ROOT\null.jsp

          ?

          3 、會話超時的設(shè)置

          設(shè)置 session 的過期時間,單位是分鐘;

           <session-config>

           <session-timeout>30</session-timeout>

           </session-config>

          ?

          4 、過濾器的設(shè)置

           <filter>

           <filter-name>FilterSource</filter-name>

           <filter-class>project4. FilterSource </filter-class>

           </filter>

           <filter-mapping>

           <filter-name>FilterSource</filter-name>

           <url-pattern>/WwwServlet</url-pattern>

           (<url-pattern>/haha/*</url-pattern>)

           </filter-mapping>

          ?

          過濾:

           1) 身份驗證的過濾 Authentication Filters

           2) 日志和審核的過濾 Logging and Auditing Filters

           3) 圖片轉(zhuǎn)化的過濾 Image conversion Filters

           4) 數(shù)據(jù)壓縮的過濾 Data compression Filters

           5) 加密過濾 Encryption Filters

           6) Tokenizing Filters

           7) 資源訪問事件觸發(fā)的過濾 Filters that trigger resource access events XSL/T 過濾 XSL/T filters

           9) 內(nèi)容類型的過濾 Mime-type chain Filter 注意監(jiān)聽器的順序,如:先安全過濾,然后資源,

          然后內(nèi)容類型等,這個順序可以自己定。

          ?

          六、管理
          ? ???1
          、用戶配置
          ?????
          在進(jìn)行具體 Tomcat 管理之前,先給 tomcat 添加一個用戶,使這個用戶有權(quán)限來進(jìn)行管理。
          ?????
          打開 conf 目錄下的 tomcat-users.xml 文件,在相應(yīng)的位置添加下面一行:

          ??? <user name="user" password="user" roles="standard,manager"/>
          ???
          然后重起 tomcat ,在瀏覽器中輸入 http://localhost:8080/manager/ ,會彈出對話框,輸入上面的用戶

          名和密碼即可。

          ? ???2
          、應(yīng)用程序列表
          ?????
          在瀏覽器中輸入 http://localhost:8080/manager/list ,瀏覽器將會顯示如下的信息:
          ??? OK - Listed applications for virtual host localhost
          ??? /ex:running:1
          ??? /examples:running:1
          ??? /webdav:running:0
          ??? /tomcat-docs:running:0
          ??? /manager:running:0
          ??? /:running:0
          ????
          上面顯示的信息分別為:應(yīng)用程序的路徑、當(dāng)前狀態(tài)、連接這個程序的 session 數(shù)


          ? ? 3
          、重新裝載應(yīng)用程序
          ?????
          在瀏覽器中輸入 http://localhost:8080/manager/reload?path=/examples ,瀏覽器顯示如下:
          ??? OK - Reloaded application at context path /examples ???

          這表示 example 應(yīng)用程序裝載成功,如果我們將 server.xml Context 元素的 reloadable 屬性設(shè)為 true ,則沒必要利用這種方式重新裝載應(yīng)用程序,因為 tomcat 會自動裝載。

          ?

          4 、顯示 session 信息
          ????
          在瀏覽器中輸入 http://localhost:8080/manager/sessions?path=/examples ,瀏覽器顯示如下:
          ????OK - Session information for application at context path /examples Default maximum session inactive

          interval 30 minutes

          5
          、啟動和關(guān)閉應(yīng)用程序
          ???
          在瀏覽器中輸入 http://localhost:8080/manager/start?path=/examples

          http://localhost:8080/manager/stop?path=/examples 分別啟動和關(guān)閉 examples 應(yīng)用程序。

          posted on 2006-07-28 09:43 水煮三國 閱讀(298) 評論(0)  編輯  收藏 所屬分類: Database
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(4)

          隨筆分類(85)

          隨筆檔案(89)

          文章分類(14)

          文章檔案(42)

          收藏夾(37)

          java

          oracle

          Sybase

          搜索

          •  

          積分與排名

          • 積分 - 211648
          • 排名 - 266

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新和县| 龙江县| 马尔康县| 淄博市| 报价| 昌平区| 兖州市| 开化县| 宜都市| 射阳县| 开鲁县| 德化县| 沭阳县| 新民市| 高安市| 杭州市| 凌海市| 山丹县| 汕尾市| 横峰县| 通化市| 昂仁县| 上林县| 芮城县| 盐亭县| 高平市| 武威市| 十堰市| 甘谷县| 金门县| 万盛区| 阿拉尔市| 东源县| 南木林县| 佛冈县| 南华县| 历史| 油尖旺区| 长治市| 界首市| 凭祥市|