云下的天空

          堅持 隨心而動 走自己的路

           

          tomcat簡介之web.xml詳解

          原文轉載自:


          一、Tomcat背景

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

           

          二、Tomcat目錄

          tomcat
          |---bin Tomcat:
          存放啟動和關閉tomcat腳本

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

          三、Tomcat類加載

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

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

          2/Web-INF/lib/*.jar

          3Bootstrap

          4System

          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 指定一個端口,這個端口負責監聽關閉tomcat的請求 
                    2
          shutdown 指定向端口發送的命令字符串 
              service: 
                    1
          name 指定service的名字 
              Connector (
          表示客戶端和service之間的連接)
                    1
          port 指定服務器端要創建的端口號,并在這個斷口監聽來自客戶端的請求 
                    2
          minProcessors 服務器啟動時創建的處理請求的線程數 
                    3
          maxProcessors 最大可以創建的處理請求的線程數 
                    4
          enableLookups 如果為true,則可以通過調用request.getRemoteHost()進行DNS

          詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip

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

          端口號 
                    6
          acceptCount 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理

          隊列中的請求數,超過這個數的請求將不予處理 
                    7
          connectionTimeout 指定超時的時間數(以毫秒為單位
              Engine (
          表示指定service中的請求處理機,接收和處理來自Connector的請求)
                    1
          defaultHost 指定缺省的處理請求的主機名,它至少與其中的一個host元素的name

          屬性值是一樣的 
              Context (
          表示一個web應用程序)
                    1
          docBase 應用程序的路徑或者是WAR文件存放的路徑 
                    2
          path 表示此web應用程序的url的前綴,這樣請求的url

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

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

          以在不重起tomcat的情況下改變應用程序 
              host (
          表示一個虛擬主機)
                    1
          name 指定主機名 
                    2
          appBase 應用程序基本目錄,即存放應用程序的目錄 
                    3
          unpackWARs 如果為true,則tomcat會自動將WAR文件解壓,否則不解壓,直接

          WAR文件中運行應用程序 
              Logger (
          表示日志,調試和錯誤信息)
                    1
          className 指定logger使用的類名,此類必須實現org.apache.catalina.Logger 接口 
                    2
          prefix 指定log文件的前綴 
                    3
          suffix 指定log文件的后綴 
                    4
          timestamp 如果為true,則log文件名中要加入時間,如下

          :localhost_log.2001-10-04.txt 
             Realm (
          表示存放用戶名,密碼及role的數據庫)
                    1
          className 指定Realm使用的類名,此類必須實現org.apache.catalina.Realm接口 
             Valve (
          功能與Logger差不多,其prefixsuffix屬性解釋和Logger 中的一樣)
                    1
          className 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve

          類可以記錄應用程序的訪問信息 
              directory
          (指定log文件存放的位置):
              1
          pattern 有兩個值,common方式記錄遠程主機名或ip地址,用戶名,日期,第一行

          請求的字符串,HTTP響應代碼,發送的字節數。combined方式比common方式記

          錄的值更多

           

          五、web.xml配置簡介

          1、默認(歡迎)文件的設置

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

           <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、報錯文件的設置

          <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>

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

          如果執行的某個JSP文件產生NullPointException ,則會調用\webapps\ROOT\null.jsp

           

          3、會話超時的設置

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

          <session-config>

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

          </session-config>

           

          4、過濾器的設置

          <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) 圖片轉化的過濾Image conversion Filters

          4) 數據壓縮的過濾Data compression Filters

          5) 加密過濾Encryption Filters

          6) Tokenizing Filters

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

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

          然后內容類型等,這個順序可以自己定。

           

          六、管理 
              1
          、用戶配置 
                
          在進行具體Tomcat管理之前,先給tomcat添加一個用戶,使這個用戶有權限來進行管理。 
                
          打開conf目錄下的tomcat-users.xml文件,在相應的位置添加下面一行: 
              <user name="user" password="user" roles="standard,manager"/> 
              
          然后重起tomcat,在瀏覽器中輸入http://localhost:8080/manager/,會彈出對話框,輸入上面的用戶

          名和密碼即可。 

              2
          、應用程序列表 
                
          在瀏覽器中輸入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 
               
          上面顯示的信息分別為:應用程序的路徑、當前狀態、連接這個程序的session

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

          這表示example應用程序裝載成功,如果我們將server.xmlContext元素的reloadable屬性設為true,則沒必要利用這種方式重新裝載應用程序,因為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
          、啟動和關閉應用程序 
             
          在瀏覽器中輸入http://localhost:8080/manager/start?path=/examples

          http://localhost:8080/manager/stop?path=/examples分別啟動和關閉examples應用程序。

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

           

          二、Tomcat目錄

          tomcat
          |---bin Tomcat:
          存放啟動和關閉tomcat腳本

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

          三、Tomcat類加載

              Bootstrap($JAVA_HOME/jre/lib/ext/*.jar) 
          System($CLASSPATH/*.class
          和指定的
          jar) 
          Common($CATALINA_HOME/common 
          下的classes,lib,endores三個子目錄

          Catalina ($CATALINA_HOME/server/
          下的classeslib目錄僅對Tomcat可見
          )
          &Shared($CATALINA_HOME/shared/
          下的classeslib目錄以及$CATALINA_HOME/lib目錄)僅對Web應用程序可見,Tomcat不可見WebApp($WEBAPP/Web-INF/*僅對該WEB應用可見
          classes/*.class lib/*.jar)

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

          2/Web-INF/lib/*.jar

          3Bootstrap

          4System

          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 指定一個端口,這個端口負責監聽關閉tomcat的請求 
                    2
          shutdown 指定向端口發送的命令字符串 
              service: 
                    1
          name 指定service的名字
           
              Connector (
          表示客戶端和service之間的連接)

                    1
          port 指定服務器端要創建的端口號,并在這個斷口監聽來自客戶端的請求 
                    2
          minProcessors 服務器啟動時創建的處理請求的線程數
           
                    3
          maxProcessors 最大可以創建的處理請求的線程數
           
                    4
          enableLookups 如果為true,則可以通過調用request.getRemoteHost()進行DNS

          詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip

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

          端口號 
                    6
          acceptCount 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理

          隊列中的請求數,超過這個數的請求將不予處理 
                    7
          connectionTimeout 指定超時的時間數(以毫秒為單位

              Engine (
          表示指定service中的請求處理機,接收和處理來自Connector的請求)

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

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

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

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

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

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

                    1
          name 指定主機名 
                    2
          appBase 應用程序基本目錄,即存放應用程序的目錄
           
                    3
          unpackWARs 如果為true,則tomcat會自動將WAR文件解壓,否則不解壓,直接

          WAR文件中運行應用程序 
              Logger (
          表示日志,調試和錯誤信息)

                    1
          className 指定logger使用的類名,此類必須實現org.apache.catalina.Logger 接口 
                    2
          prefix 指定log文件的前綴
           
                    3
          suffix 指定log文件的后綴
           
                    4
          timestamp 如果為true,則log文件名中要加入時間,如下

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

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

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

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

              1
          pattern 有兩個值,common方式記錄遠程主機名或ip地址,用戶名,日期,第一行

          請求的字符串,HTTP響應代碼,發送的字節數。combined方式比common方式記

          錄的值更多

           

          五、web.xml配置簡介

          1、默認(歡迎)文件的設置

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

           <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、報錯文件的設置

          <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>

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

          如果執行的某個JSP文件產生NullPointException ,則會調用\webapps\ROOT\null.jsp

           

          3、會話超時的設置

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

          <session-config>

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

          </session-config>

           

          4、過濾器的設置

          <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) 圖片轉化的過濾Image conversion Filters

          4) 數據壓縮的過濾Data compression Filters

          5) 加密過濾Encryption Filters

          6) Tokenizing Filters

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

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

          然后內容類型等,這個順序可以自己定。

           

          六、管理 
              1
          、用戶配置 
                
          在進行具體Tomcat管理之前,先給tomcat添加一個用戶,使這個用戶有權限來進行管理。 
                
          打開conf目錄下的tomcat-users.xml文件,在相應的位置添加下面一行:
           
              <user name="user" password="user" roles="standard,manager"/> 
              
          然后重起tomcat,在瀏覽器中輸入http://localhost:8080/manager/,會彈出對話框,輸入上面的用戶

          名和密碼即可。 

              2
          、應用程序列表 
                
          在瀏覽器中輸入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 
               
          上面顯示的信息分別為:應用程序的路徑、當前狀態、連接這個程序的session


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

          這表示example應用程序裝載成功,如果我們將server.xmlContext元素的reloadable屬性設為true,則沒必要利用這種方式重新裝載應用程序,因為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
          、啟動和關閉應用程序 
             
          在瀏覽器中輸入http://localhost:8080/manager/start?path=/examples

          http://localhost:8080/manager/stop?path=/examples分別啟動和關閉examples應用程序。

          posted on 2011-06-02 17:40 天空布藍 閱讀(19170) 評論(0)  編輯  收藏 所屬分類: JAVA EE


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          Flex學習鏈接

          搜索

          •  

          最新評論

          • 1.?re: tomcat7的配置
          • 新建變量名: TOMCAT_HOME 應該為CATALINA_HOME
          • --houkai
          • 2.?re: tomcat7的配置
          • 確實是的@寒澈
          • --houkai
          • 3.?re: tomcat7的配置
          • @ftp123
            你娘里個大雪碧 里面會有common這個文件夾嗎 不知道還尼瑪在這瞎比比 純尼瑪誤導人 我最惡心的就是這樣沒事裝逼的人 艸
          • --cao
          • 4.?re: tomcat7的配置
          • 從哪抄來的,是抄的,你也說聲啊,要不自己測試下也可以,害人測試半天。
          • --ftp123
          • 5.?re: tomcat7的配置
          • %TOMCAT_HOME%\common\lib 從tomcat6.0開始已經沒有common文件夾了,直接用\lib,害我找了半天common文件夾啊,趕快改過來吧
          • --寒澈

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜宾县| 甘泉县| 邵阳县| 渭源县| 盱眙县| 荣昌县| 连城县| 西昌市| 黄大仙区| 巨野县| 德保县| 凭祥市| 南漳县| 都匀市| 乃东县| 镇安县| 汉沽区| 昆山市| 大兴区| 论坛| 高雄县| 元江| 南雄市| 平潭县| 溆浦县| 垣曲县| 准格尔旗| 麦盖提县| 唐海县| 灌阳县| 宁蒗| 葫芦岛市| 金沙县| 屏边| 沧州市| 监利县| 叙永县| 堆龙德庆县| 嵩明县| 米脂县| 肇庆市|