1. 程式人生 > >將web應用部署到Tomcat的三種方式

將web應用部署到Tomcat的三種方式

工作空間 指定 pat jsp 目錄結構 可選 let r文件 每一個

Tomcat作為Servlet/JSP容器(服務器)挺不錯的,開源免費,需要知道的是Tomcat是一個Web服務器,其符合Servlet/JSP規範,但是卻沒有實現所有JavaEE規範,所以我們還是應該規範說法,稱Tomcat為一個JavaWeb服務器,而不是JavaEE服務器

我們使用IDE部署JavaWeb項目基本上都是一鍵完成,這是IDE給我們該來的好處,但是還是有必要了解一下部署項目的細節

要將JavaWeb應用部署到Tomcat,需要顯式或隱式定定義一個Tomcat上下文。在Tomcat中,每一個Tomcat上下文都表示一個Web應用程序。所以我們也將分為隱式和顯式兩種方式來進行總結

顯式部署

顯式部署總的來說就是以目錄結構的方式部署,不打包,只要項目根目錄(Maven為webapp 普通項目為webRoot/webContent)有WEB-INF(WEB-INF下有classes,jar包,配置文件),有靜態資源(HTML,CSS,JS ,圖片等)即可。再通過一個在Tomcat中的配置文件來將我們的程序發布出來。

顯式部署有兩種方式:

  • 在Tomcat的conf/Catalina/localhost目錄下創建一個XML文件
  • 在Tomcat的conf/server.xml文件中添加一個Context元素

方式一

如果決定給每一個上下文都創建一個XML文件(第一種方式),那麽這文件名就很重要了,因為上下文路徑就是從這個文件名的衍生得到的。例如,將一個Demo1.xml文件放在conf/Catalina/localhost目錄下,那麽這個應用程序的上下文路徑就是Demo1,訪問的URL就為:http://localhost:8080/Demo1

這個上下文文件只有一行代碼:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="d:/Demo1" reloadable="true"></Context>

這裏的docBase是必須的屬性,它定義了應用程序的位置。reloadable屬性是可選的,如果存在並且值為true,那麽一旦程序中Java類文件或者是其他資源文件有任何添加,減少或者是更新,Tomcat都可以檢測到,並且重新加載該應用程序

當把上下文文件添加到Tomcat的指定目錄下,Tomcat就會自動加載應用程序。當刪除這個文件時,Tomcat就會自動卸載應用程序(Eclipse和Idea都是利用這種方式部署項目的,所以去Tomcat部署目錄中是找不到項目根目錄及資源文件的,這些文件存在於IDE項目的工作空間中)

方式二

在conf/server.xml文件中的Host標簽下添加一個Context元素

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
      
      <Context path="/Demo2" docBase="d:/Demo1" reloadable="true"></Context>

</Host>

以第一種方式不同之處在於此處定義上下文需要給上下文路徑定義path屬性,這個path屬性的值表示需要訪問的項目名,訪問的URL就為:http://localhost:8080/Demo2

一般來說,不建議通過server.xml來管理上下文,因為修改了Tomcat配置文件。不過,如果有多個應用程序需要測試,使用這種方式或許更為方便,因為可以在一個文件中同時管理所有的應用程序

隱式部署

方式三

隱式部署真是太方便了,非常建議使用這種方式部署項目。通過將一個war文件或者整個應用程序復制到Tomcat的webapps(Tomcat默認的部署項目位置,可以在server.xml文件中修改,但不建議修改)目錄下,啟動服務器之後就會解壓這個war,解壓到部署項目位置。(MyEclipse就是將項目根目錄部署到Tomcat中,所以會在Tomcat中找到項目根目錄及資源文件)

原文地址:https://www.cnblogs.com/lz2017/p/7147115.html

將web應用部署到Tomcat的三種方式