IDEA開(kāi)發(fā)并部署運(yùn)行WEB項(xiàng)目全過(guò)程
WEB項(xiàng)目的標(biāo)準(zhǔn)結(jié)構(gòu)
一個(gè)標(biāo)準(zhǔn)的可以用于發(fā)布的WEB項(xiàng)目標(biāo)準(zhǔn)結(jié)構(gòu)如下:

app 本應(yīng)用根目錄:
static 非必要目錄,約定俗成的名字,一般在此處放靜態(tài)資源 ( css js img)
WEB-INF 必要目錄,必須叫WEB-INF,受保護(hù)的資源目錄,瀏覽器通過(guò)url不可以直接訪問(wèn)的目錄
- classes 必要目錄,src下源代碼,配置文件,編譯后會(huì)在該目錄下,web項(xiàng)目中如果沒(méi)有源碼,則該目錄不會(huì)出現(xiàn)
- lib 必要目錄,項(xiàng)目依賴的jar編譯后會(huì)出現(xiàn)在該目錄下,web項(xiàng)目要是沒(méi)有依賴任何jar,則該目錄不會(huì)出現(xiàn)
- web.xml 必要文件,web項(xiàng)目的基本配置文件. 較新的版本中可以沒(méi)有該文件,但是學(xué)習(xí)過(guò)程中還是需要該文件
index.html 非必要文件,index.html/index.htm/index.jsp為默認(rèn)的歡迎頁(yè)
url的組成部分和項(xiàng)目中資源的對(duì)應(yīng)關(guān)系

WEB項(xiàng)目部署的方式
- 方式1 直接將編譯好的項(xiàng)目放在webapps目錄下
- 方式2 將編譯好的項(xiàng)目打成war包放在webapps目錄下,tomcat啟動(dòng)后會(huì)自動(dòng)解壓war包(其實(shí)和第一種一樣)
- 方式3 可以將項(xiàng)目放在非webapps的其他目錄下,在tomcat中通過(guò)配置文件指向app的實(shí)際磁盤(pán)路徑
在磁盤(pán)的自定義目錄上準(zhǔn)備一個(gè)app

在tomcat的conf下創(chuàng)建Catalina/localhost目錄,并在該目錄下準(zhǔn)備一個(gè)app.xml文件
<!--
path: 項(xiàng)目的訪問(wèn)路徑,也是項(xiàng)目的上下文路徑,就是在瀏覽器中,輸入的項(xiàng)目名稱
docBase: 項(xiàng)目在磁盤(pán)中的實(shí)際路徑
-->
<Context path="/app" docBase="D:\mywebapps\app" />
啟動(dòng)tomcat訪問(wèn)測(cè)試即可
IDEA中開(kāi)發(fā)并部署運(yùn)行WEB項(xiàng)目
部署步驟
- 建立tomcat和idea的關(guān)聯(lián)
- 使用idea創(chuàng)建一個(gè)javaWEB工程,在WEB工程中開(kāi)發(fā)代碼
- 使用idea將工程構(gòu)建成一個(gè)可以發(fā)布的app
- 使用idea將構(gòu)建好的app部署到tomcat中,啟動(dòng)運(yùn)行
IDEA關(guān)聯(lián)本地Tomcat
可以在創(chuàng)建項(xiàng)目前設(shè)置本地tomcat,也可以在打開(kāi)某個(gè)項(xiàng)目的狀態(tài)下找到settings

找到 Build,Execution,Eeployment下的Application Servers ,找到+號(hào)

選擇Tomcat Server

選擇tomcat的安裝目錄

點(diǎn)擊ok

關(guān)聯(lián)完畢

IDEA創(chuàng)建web工程
推薦先創(chuàng)建一個(gè)空項(xiàng)目,這樣可以在一個(gè)空項(xiàng)目下同時(shí)存在多個(gè)modules,不用后續(xù)來(lái)回切換之前的項(xiàng)目,當(dāng)然也可以忽略此步直接創(chuàng)建web項(xiàng)目


檢查項(xiàng)目的SDK,語(yǔ)法版本,以及項(xiàng)目編譯后的輸出目錄


先創(chuàng)建一個(gè)普通的JAVA項(xiàng)目

檢查各項(xiàng)信息是否填寫(xiě)有誤

創(chuàng)建完畢后,為項(xiàng)目添加Tomcat依賴



選擇modules,添加 framework support

選擇Web Application 注意Version,勾選 Create web.xml

刪除index.jsp ,替換為 index.html


處理配置文件
在工程下創(chuàng)建resources目錄,專門用于存放配置文件(都放在src下也行,單獨(dú)存放可以盡量避免文件集中存放造成的混亂)
標(biāo)記目錄為資源目錄,不標(biāo)記的話則該目錄不參與編譯

標(biāo)記完成后,顯示效果如下

處理依賴jar包問(wèn)題
在WEB-INF下創(chuàng)建lib目錄
必須在WEB-INF下,且目錄名必須叫l(wèi)ib!!!
復(fù)制jar文件進(jìn)入lib目錄

將lib目錄添加為當(dāng)前項(xiàng)目的依賴,后續(xù)可以用maven統(tǒng)一解決


環(huán)境級(jí)別推薦選擇module 級(jí)別,降低對(duì)其他項(xiàng)目的影響,name可以空著不寫(xiě)

查看當(dāng)前項(xiàng)目有那些環(huán)境依賴


在此位置,可以通過(guò)-號(hào)解除依賴

IDEA部署-運(yùn)行web項(xiàng)目
檢查idea是否識(shí)別modules為web項(xiàng)目并存在將項(xiàng)目構(gòu)建成發(fā)布結(jié)構(gòu)的配置
就是檢查工程目錄下,web目錄有沒(méi)有特殊的識(shí)別標(biāo)記

以及artifacts下,有沒(méi)有對(duì)應(yīng) _war_exploded,如果沒(méi)有,就點(diǎn)擊+號(hào)添加

點(diǎn)擊向下箭頭,出現(xiàn) Edit Configurations選項(xiàng)

出現(xiàn)運(yùn)行配置界面

點(diǎn)擊+號(hào),添加本地tomcat服務(wù)器

因?yàn)镮DEA 只關(guān)聯(lián)了一個(gè)Tomcat,紅色部分就只有一個(gè)Tomcat可選

選擇Deployment,通過(guò)+添加要部署到Tomcat中的artifact

applicationContext中是默認(rèn)的項(xiàng)目上下文路徑,也就是url中需要輸入的路徑,這里可以自己定義,可以和工程名稱不一樣,也可以不寫(xiě),但是要保留/,我們這里暫時(shí)就用默認(rèn)的

點(diǎn)擊apply 應(yīng)用后,回到Server部分. After Launch是配置啟動(dòng)成功后,是否默認(rèn)自動(dòng)打開(kāi)瀏覽器并輸入U(xiǎn)RL中的地址,HTTP port是Http連接器目前占用的端口號(hào)

點(diǎn)擊OK后,啟動(dòng)項(xiàng)目,訪問(wèn)測(cè)試
- 綠色箭頭是正常運(yùn)行模式
- "小蟲(chóng)子"是debug運(yùn)行模式

- 點(diǎn)擊后,查看日志狀態(tài)是否有異常

- 瀏覽器自動(dòng)打開(kāi)并自動(dòng)訪問(wèn)了index.html歡迎頁(yè)

- 工程結(jié)構(gòu)和可以發(fā)布的項(xiàng)目結(jié)構(gòu)之間的目錄對(duì)應(yīng)關(guān)系

IDEA部署并運(yùn)行項(xiàng)目的原理
- idea并沒(méi)有直接進(jìn)將編譯好的項(xiàng)目放入tomcat的webapps中
- idea根據(jù)關(guān)聯(lián)的tomcat,創(chuàng)建了一個(gè)tomcat副本,將項(xiàng)目部署到了這個(gè)副本中
- idea的tomcat副本在C:\用戶\當(dāng)前用戶\AppData\Local\JetBrains\IntelliJIdea2022.2\tomcat\中
- idea的tomcat副本并不是一個(gè)完整的tomcat,副本里只是準(zhǔn)備了和當(dāng)前項(xiàng)目相關(guān)的配置文件而已
- idea啟動(dòng)tomcat時(shí),是讓本地tomcat程序按照tomcat副本里的配置文件運(yùn)行
- idea的tomcat副本部署項(xiàng)目的模式是通過(guò)conf/Catalina/localhost/*.xml配置文件的形式實(shí)現(xiàn)項(xiàng)目部署的

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- idea普通javaweb項(xiàng)目如何部署到tomcat(讀取web.xml文件)
- 教你在IDEA中使用Tomcat部署并啟動(dòng)Web項(xiàng)目
- IDEA2022中部署Tomcat Web項(xiàng)目的流程分析
- IDEA 如何導(dǎo)入別人的javaweb項(xiàng)目進(jìn)行部署
- 在IDEA 2020.3.1中部署Tomcat并且創(chuàng)建第一個(gè)web項(xiàng)目的過(guò)程詳解
- Idea2020.2創(chuàng)建JavaWeb項(xiàng)目(部署Tomcat)方法詳解
- 在idea中將創(chuàng)建的java web項(xiàng)目部署到Tomcat中的過(guò)程圖文詳解
相關(guān)文章
整理Java的MyBatis框架中一些重要的功能及基本使用示例
這篇文章主要介紹了Java的MyBatis框架中一些重要的功能及基本使用示例整理,MyBatis可以幫助Java程序進(jìn)行強(qiáng)大的數(shù)據(jù)庫(kù)操作,需要的朋友可以參考下2016-04-04
剖析Spring WebFlux反應(yīng)式編程設(shè)計(jì)及工作原理
這篇文章主要為大家介紹了Spring WebFlux反應(yīng)式編程模型工作原理的剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-02-02
SpringBoot實(shí)現(xiàn)API接口多版本支持的示例代碼
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)API接口多版本支持的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
java中SimpleDateFormat 的多線程安全問(wèn)題
本文主要介紹了java中SimpleDateFormat 的多線程安全問(wèn)題,包括其內(nèi)部可變狀態(tài)和競(jìng)爭(zhēng)條件,文章提供了四種解決方案,下面就來(lái)詳細(xì)的介紹一下2026-02-02
深度解析Java @Serial 注解及常見(jiàn)錯(cuò)誤案例
Java14引入@Serial注解,用于編譯時(shí)校驗(yàn)序列化成員,替代傳統(tǒng)方式解決運(yùn)行時(shí)錯(cuò)誤,適用于Serializable類的方法/字段,需注意簽名和位置校驗(yàn),建議新項(xiàng)目采用,本文給大家介紹Java @Serial 注解的相關(guān)知識(shí),感興趣的朋友一起看看吧2025-07-07
java實(shí)現(xiàn)給某個(gè)文件或文件夾設(shè)置特定訪問(wèn)權(quán)限
這篇文章主要為大家詳細(xì)介紹了如何利用java實(shí)現(xiàn)給某個(gè)文件或文件夾設(shè)置特定訪問(wèn)權(quán)限,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-05-05
eclipse下搭建hibernate5.0環(huán)境的步驟(圖文)
這篇文章主要介紹了eclipse下搭建hibernate5.0環(huán)境的步驟(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
如何用java做一個(gè)word轉(zhuǎn)圖片的功能詳解
這篇文章主要給大家介紹了關(guān)于如何用java做一個(gè)word轉(zhuǎn)圖片的功能,通過(guò)實(shí)現(xiàn)Java Word轉(zhuǎn)圖片功能,避免PDF中間轉(zhuǎn)換損耗,涵蓋分頁(yè)處理、字體設(shè)置、性能優(yōu)化及替代方案對(duì)比,需要的朋友可以參考下2025-05-05
feign開(kāi)啟日志Logger.Level?feignLoggerLevel()中Level爆紅的解決
這篇文章主要介紹了feign開(kāi)啟日志Logger.Level?feignLoggerLevel()中Level爆紅的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06

