Servlet&JSP的那些事兒(二十五)

來源:互聯網
上載者:User

web應用程式分為開發和部署兩個階段。通過部署,能實現組件與組件之間的松耦合,降低web應用的維護難度。本篇主要討論如何配置任意目錄下的web程式以及如何以war檔案的形式發布web程式。我們首先討論如何配置任意目錄下的web程式。

配置任意目錄下的web程式

一個web容器可以運行多個web程式,每個web程式都有一個唯一的上下文根,上下文根如何部署是和具體的web容器相關的。對於tomcat來說,安裝目錄下的webapps檔案夾下的每一個子目錄都是一個獨立的web應用程式,這個子目錄的名字就是這個web應用程式的上下文根。我們在之前開發並編譯好web應用程式源碼後,會把程式拷貝到webapps檔案夾下。當tomcat啟動時,會自動載入該檔案夾下的程式,所以我們不需要其他配置就可以直接存取。但是如果我們每完成一個功能,為了測試,都需要將檔案複製到webapps檔案夾下對應的目錄中,那也太繁瑣了。

在web伺服器中可以配置虛擬目錄,虛擬目錄對應的真實目錄可以在任何路徑下。同樣,tomcat中,也有類似的配置。我們需要在xml設定檔中通過<Context>元素的設定來完成。

className ,指定實現org.apache.catalina.Context介面的Java類名。如果沒有指定,使用標準實現org.apache.catalina.core.StandardContext。 

cookies,如果想利用cookies來傳遞session identifier(需要用戶端支援cookies),設為ture。否則為false,這種情況下只能依靠URL Rewriting傳遞session identifier。

crossContext,如果想在應用內調用ServletContext.getContext()來返回在該虛擬機器主機上啟動並執行其他web application的request dispatcher,設為true。在安全性很重要的環境中,設為false,使得getContext()總是返回null。預設值為false。

docBase,該web應用的文檔基準目錄(Document Base,也稱為Context Root),或者是WAR檔案的路徑。可以使用絕對路徑,也可以使用相對於context所屬的Host的appBase路徑。

path,web應用的context路徑。catalina將每個URL的起始和context path進行比較,選擇合適的web應用處理該請求。特定Host下的context path必須是惟一的。如果context path。

reloadable,如果希望Catalina監視/WEB-INF/classes/和/WEB-INF/lib下面的類是否發生變化,在發生變化的時候自動重載web application,設為true。這個特徵在開發階段很有用,但也大大增加了伺服器的開銷。因此,在發布以後,不推薦使用。但是,你可以使用Manager應用在必要的時候觸發應用的重載。 

unpackWAR,如果為true,tomcat在運行web應用程式前將展開所有壓縮的web應用程式。預設值為true。

WAR檔案

如果一個web應用程式的目錄和程式非常多,那麼將該web應用程式部署到另一台機器上就不是很方便了。我們可將web應用程式打包為web歸檔(WAR)檔案,這個過程和把java類檔案打包成JAR檔案的過程類似。利用WAR檔案,可以把servlet類檔案和相關的資源集中到一起進行發布。

如果利用命令列來打包的話,可以進入dos命令,然後切換到web工程所在目錄。執行如下命令:

jar -cvf 工程名.war *

即可將工程所有的子目錄和檔案都打包成一個名為工程名.war的歸檔檔案。如果不想包含src目錄下的java源檔案,可以執行下面的命令:

jar -cvf 工程名.war *.html WEB-INF/

如果使用eclipse開發web應用程式。那麼只需要先再eclipse中配置tomcat外掛程式,然後建立一個web工程。按右鍵web工程,選擇export,選擇web,WAR file,再輸入要打包的檔案名稱和目標目錄即可。eclipse tomcat外掛程式為:http://www.eclipsetotale.com/tomcatPlugin.html(將得到的壓縮包解壓,放入
eclipse 的 plugins 目錄中重啟 eclipse, Tomcat 外掛程式就會安裝成功)

轉載請註明出處:http://blog.csdn.net/iAm333

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.