Javaphua Blog

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            46 Posts :: 5 Stories :: 46 Comments :: 0 Trackbacks

          Tomcat簡(jiǎn)介 ?

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

          ?

          二、 Tomcat 目錄

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

          |---conf Tomcat:存放 不同的配置文件(server.xml和web.xml);
          |---doc:存放Tomcat文檔;
          |---lib
          /japser/common :存放 Tomcat運(yùn)行需要的庫(kù)文件(JARS);
          |---logs:存放Tomcat執(zhí)行時(shí)的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 三個(gè)子目錄
          )
          Catalina ($CATALINA_HOME/server/
          下的 classes lib 目錄僅對(duì) Tomcat 可見
          )
          &Shared($CATALINA_HOME/shared/
          下的 classes lib 目錄以及 $CATALINA_HOME/lib 目錄 ) 僅對(duì) Web 應(yīng)用程序可見 , 對(duì) Tomcat 不可見 WebApp($WEBAPP/Web-INF/* 僅對(duì)該 WEB 應(yīng)用可見
          classes/*.class lib/*.jar)

          加載類和資源的順序?yàn)椋?/font>
          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 配置簡(jiǎn)介

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

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

          ??????????1
          port 指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),并在這個(gè)斷口監(jiān)聽來(lái)自客戶端的請(qǐng)求
          ??????????2
          minProcessors 服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線程數(shù)

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

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

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

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

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

          隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理
          ??????????7
          connectionTimeout 指定超時(shí)的時(shí)間數(shù) ( 以毫秒為單位
          )
          ????Engine (
          表示指定 service 中的請(qǐng)求處理機(jī),接收和處理來(lái)自 Connector 的請(qǐng)求 )

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

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

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

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

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

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

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

          ??????????3
          unpackWARs 如果為 true ,則 tomcat 會(huì)自動(dòng)將 WAR 文件解壓,否則不解壓,直接

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

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

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

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

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

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

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

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

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

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

          錄的值更多

          ?

          五、 web.xml 配置簡(jiǎn)介

          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 、報(bào)錯(cuò)文件的設(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>

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

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

          ?

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

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

           <session-config>

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

           </session-config>

          ?

          4 、過(guò)濾器的設(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>

          ?

          過(guò)濾:

           1) 身份驗(yàn)證的過(guò)濾 Authentication Filters

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

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

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

           5) 加密過(guò)濾 Encryption Filters

           6) Tokenizing Filters

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

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

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

          ?

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

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

          名和密碼即可。

          ? ???2
          、應(yīng)用程序列表

          posted on 2006-07-25 14:04 Javaphua 閱讀(228) 評(píng)論(0)  編輯  收藏
          主站蜘蛛池模板: 广灵县| 大安市| 隆子县| 眉山市| 沙田区| 金堂县| 宣恩县| 房山区| 苗栗县| 池州市| 宜章县| 宜兰市| 宁城县| 龙山县| 龙里县| 佳木斯市| 乐安县| 延边| 西吉县| 宁夏| 三明市| 连城县| 扎兰屯市| 建湖县| 陵川县| 昌吉市| 嵩明县| 汤原县| 肃南| 漯河市| 塔河县| 东兰县| 手机| 嘉禾县| 日土县| 临洮县| 随州市| 天全县| 涞水县| 尚义县| 塘沽区|