【翻譯】Tomcat 6.0 部署與發布


本篇參考Tomcat官方文檔:《First Webapp》翻譯,並結合自己的開發經驗介紹關於tomcat部署以及發布的相關內容。

1 目錄結構

  在tomcat中所有的應用都是放置在CATALINA_HOME/webapps下,其中CATALINA_HOME對應的是你的tomcat的根目錄。

  由於Servlet2.2之后的版本規范規定,tomcat中應用的目錄結構都要滿足固定的格式,這樣便於規范一致性。

  放置在webapps下的文件通常是兩種格式:一種壓縮好的項目文件,比如war包!一種是正常的文件夾。

  如果是war包這種項目文件,tomcat會在啟動后自動的把它解壓縮到當前目錄,變成可訪問的文件夾。

  目錄結構包括如下:

/apps
    |------/WEB-INF
            |------/classes 編譯的字節碼文件
            |------/lib 需要的類庫,jar包
            ------web.xml
    |------/META-INF
            ------context.xml
    ------普通前端頁面,jsp等等

  基本的內容細節也如上面描述的一樣。

  其中重點是 web.xml 文件,這個文件也叫做部署描述符,用於配置web應用的相關信息。

  需要注意的是:

  注意相同項的配置順序,tomcat會按照配置順序進行執行或者加載。

  需要注意的地方比如過濾器,還有一些頁面的加載。

 

  其中各項的含義,百度一下也略知一二

<web-app>   
<display-name></display-name>定義了WEB應用的名字   
<description></description> 聲明WEB應用的描述信息   
 
<context-param></context-param> context-param元素聲明應用范圍內的初始化參數。   
<filter></filter> 過濾器元素將一個名字與一個實現<a href="http://www.cnblogs.com/bukudekong/archive/2011/12/26/2302183.html">javax.servlet.Filter</a>接口的類相關聯。   
<filter-mapping></filter-mapping> 一旦命名了一個過濾器,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。   
<listener></listener>servlet API的版本2.3增加了對事件監聽程序的支持,事件監聽程序在建立、修改和刪除會話或servlet環境時得到通知。   
                     Listener元素指出事件監聽程序類。   
<servlet></servlet> 在向servlet或JSP頁面制定初始化參數或定制URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務的。   
<servlet-mapping></servlet-mapping> 服務器一般為servlet提供一個缺省的URL:http://host/webAppPrefix/servlet/ServletName。   
            <span style="color: #008000;">  但是,常常會更改這個URL,以便servlet可以訪問初始化參數或更容易地處理相對URL。</span>在更改缺省URL時,使用servlet-mapping元素。   
 
<session-config></session-config> 如果某個會話在一定時間內未被訪問,服務器可以拋棄它以節省內存。   
          可通過使用HttpSession的setMaxInactiveInterval方法明確設置單個會話對象的超時值,或者可利用session-config元素制定缺省超時值。   
 
<mime-mapping></mime-mapping>如果Web應用具有想到特殊的文件,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。   
<welcome-file-list></welcome-file-list> 指示服務器在收到引用一個目錄名而不是文件名的URL時,使用哪個文件。    
<error-page></error-page> 在返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。   
<taglib></taglib> 對標記庫描述符文件(Tag Libraryu Descriptor file)指定別名。此功能使你能夠更改TLD文件的位置,   
                  而不用編輯使用這些文件的JSP頁面。   
<resource-env-ref></resource-env-ref>聲明與資源相關的一個管理對象。   
<resource-ref></resource-ref> 聲明一個資源工廠使用的外部資源。   
<security-constraint></security-constraint> 制定應該保護的URL。它與login-config元素聯合使用   
<login-config></login-config> 指定服務器應該怎樣給試圖訪問受保護頁面的用戶授權。它與sercurity-constraint元素聯合使用。   
<security-role></security-role>給出安全角色的一個列表,這些角色將出現在servlet元素內的security-role-ref元素   
                   的role-name子元素中。分別地聲明角色可使高級IDE處理安全信息更為容易。   
<env-entry></env-entry>聲明Web應用的環境項。   
<ejb-ref></ejb-ref>聲明一個EJB的主目錄的引用。   
< ejb-local-ref></ ejb-local-ref>聲明一個EJB的本地主目錄的應用。   
</web-app>   
View Code

  比較常用的就是監聽器,過濾器,servlet,session管理,初始化參數等等。

 

  classes 文件夾下放置的是編譯出的.class文件,比如你定義的某個包:com.test.hello.java 經過tomcat的啟動發布后,就會在響應的應用下的classes文件夾下找到com/test/hello.class文件。類似的servlet, bean, 普通的java類都會編譯到此處。

  lib 文件夾下放置的是項目應用的jar包。比如使用了SSH,在項目引用了jar包,最后都會放在這里。這個文件夾下的jar文件是不會編譯到classes文件夾下的。詳細信息參考tomcat的類加載機制。

 

  另外呢,這個文件夾下的jar包是屬於應用自己使用的。tomcat根目錄下還有一個lib文件夾,這里面存放着基本的servlet和jsp需要的jar包。

  如果有一定開發經驗的朋友會發現,有時候自己在IDE里面開發,會莫名其妙的報一些錯誤。但是這些錯誤並不影響最后的發布。這就是因為在開發時,IDE沒有找到對應的jar包,這些jar包存放在tomcat中。當應用發布時,會自動的尋找該文件夾,也就不會報錯了。

  解決辦法,就是再開發時,把tomcat的lib文件夾加入到IDE的編譯環境中。

 

  context.xml 常常用語配置一些運行時改變的參數,這樣tomcat可以定期掃描該文件,進行相應的操作。

  為什么要有這個文件呢?

  就是因為其他的配置文件比如server.xml都是tomcat在啟動時讀取的信息,運行時是不能改變的,因此把一些動態的信息在這里設定就可以運行時期動態加載了。常用的就是配置數據源JNDI,其中詳細的內容會在后文介紹配置文件的時候講解。

2 部署

  什么是部署?

  其實就是把開發完的代碼放在tomcat中,如果使用的是記事本開發,就直接拷貝到webapps下。

  如果使用的是IDE開發,則需要把tomcat集成到IDE中,並配置代碼的映射路徑。

  在IDE中直接右鍵tomcat--->Add and Remove...

 

  如果發現不能把左邊的項目添加到右邊,並提示錯誤。則檢查servelt的版本。通常是由於servlet與tomcat版本不一致導致,版本關系參考:

  舉個例子,tomcat6 僅支持2.5之前的servlet版本,以及1.5之后的JDK版本。、

3 發布

  發布就是把應用中的代碼進行編譯和組織,使用戶可以直接訪問。

  就像生產汽車一樣,tomcat負責把各個零件進行組裝(把代碼進行編譯組織),最后直接把一個可以運行的車子(可訪問的應用)擺在用戶面前。

  發布方法:

  1 直接在tomcat中運行:運行startup.bat或者startup.sh文件。運行方法參考:tomcat啟動

  2 在IDE中啟動:

  在server視圖中右鍵tomcat選擇start或者直接點擊右上角的DEBUG或者START圖標

4 測試

  執行發布后,就可以登錄瀏覽器,輸入:http://localhost:8080/[webapp名字] 訪問應用了。

  其中8080是端口號,可以通過server.xml或者IDE中配置界面修改。

  文檔中也給出了線程池和SSL的配置方式

 

  也可以在IDE中直接雙擊server視圖中的tomcat選項,在彈出的配置界面,修改端口號,記得保存。

  localhost為主機名:也可以使用 本地地址127.0.0.1,或者本地IP地址[可以同ipconfig /all查詢]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM