最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IDEA開發(fā)并部署運(yùn)行WEB項(xiàng)目全過程

 更新時(shí)間:2025年07月16日 09:15:42   作者:努力奔跑的魚  
文章介紹了WEB項(xiàng)目標(biāo)準(zhǔn)結(jié)構(gòu)及部署方法,涵蓋目錄劃分(如WEB-INF、classes、lib)、核心文件(web.xml、index.html),以及三種部署方式:直接放置webapps、war包部署、自定義路徑配置,同時(shí)說明了IDEA中如何關(guān)聯(lián)Tomcat、配置項(xiàng)目結(jié)構(gòu)及部署原理

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ù)的資源目錄,瀏覽器通過url不可以直接訪問的目錄

  • classes 必要目錄,src下源代碼,配置文件,編譯后會在該目錄下,web項(xiàng)目中如果沒有源碼,則該目錄不會出現(xiàn)
  • lib 必要目錄,項(xiàng)目依賴的jar編譯后會出現(xiàn)在該目錄下,web項(xiàng)目要是沒有依賴任何jar,則該目錄不會出現(xiàn)
  • web.xml 必要文件,web項(xiàng)目的基本配置文件. 較新的版本中可以沒有該文件,但是學(xué)習(xí)過程中還是需要該文件

index.html 非必要文件,index.html/index.htm/index.jsp為默認(rèn)的歡迎頁

url的組成部分和項(xiàng)目中資源的對應(yīng)關(guān)系

WEB項(xiàng)目部署的方式

  • 方式1 直接將編譯好的項(xiàng)目放在webapps目錄下
  • 方式2 將編譯好的項(xiàng)目打成war包放在webapps目錄下,tomcat啟動后會自動解壓war包(其實(shí)和第一種一樣)
  • 方式3 可以將項(xiàng)目放在非webapps的其他目錄下,在tomcat中通過配置文件指向app的實(shí)際磁盤路徑

在磁盤的自定義目錄上準(zhǔn)備一個(gè)app

在tomcat的conf下創(chuàng)建Catalina/localhost目錄,并在該目錄下準(zhǔn)備一個(gè)app.xml文件

<!-- 
	path: 項(xiàng)目的訪問路徑,也是項(xiàng)目的上下文路徑,就是在瀏覽器中,輸入的項(xiàng)目名稱
    docBase: 項(xiàng)目在磁盤中的實(shí)際路徑
 -->
<Context path="/app" docBase="D:\mywebapps\app" />

啟動tomcat訪問測試即可

IDEA中開發(fā)并部署運(yùn)行WEB項(xiàng)目

部署步驟

  • 建立tomcat和idea的關(guān)聯(lián)
  • 使用idea創(chuàng)建一個(gè)javaWEB工程,在WEB工程中開發(fā)代碼
  • 使用idea將工程構(gòu)建成一個(gè)可以發(fā)布的app
  • 使用idea將構(gòu)建好的app部署到tomcat中,啟動運(yùn)行

IDEA關(guān)聯(lián)本地Tomcat

可以在創(chuàng)建項(xiàng)目前設(shè)置本地tomcat,也可以在打開某個(gè)項(xiàng)目的狀態(tài)下找到settings

找到 Build,Execution,Eeployment下的Application Servers ,找到+號

選擇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ù)來回切換之前的項(xiàng)目,當(dāng)然也可以忽略此步直接創(chuàng)建web項(xiàng)目

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

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

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

創(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包問題

在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)境級別推薦選擇module 級別,降低對其他項(xiàng)目的影響,name可以空著不寫

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

在此位置,可以通過-號解除依賴

IDEA部署-運(yùn)行web項(xiàng)目

檢查idea是否識別modules為web項(xiàng)目并存在將項(xiàng)目構(gòu)建成發(fā)布結(jié)構(gòu)的配置

就是檢查工程目錄下,web目錄有沒有特殊的識別標(biāo)記

以及artifacts下,有沒有對應(yīng) _war_exploded,如果沒有,就點(diǎn)擊+號添加

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

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

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

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

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

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

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

點(diǎn)擊OK后,啟動項(xiàng)目,訪問測試

  • 綠色箭頭是正常運(yùn)行模式
  • "小蟲子"是debug運(yùn)行模式

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

  • 瀏覽器自動打開并自動訪問了index.html歡迎頁

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

IDEA部署并運(yùn)行項(xiàng)目的原理

  • idea并沒有直接進(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啟動tomcat時(shí),是讓本地tomcat程序按照tomcat副本里的配置文件運(yùn)行
  • idea的tomcat副本部署項(xiàng)目的模式是通過conf/Catalina/localhost/*.xml配置文件的形式實(shí)現(xiàn)項(xiàng)目部署的

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 整理Java的MyBatis框架中一些重要的功能及基本使用示例

    整理Java的MyBatis框架中一些重要的功能及基本使用示例

    這篇文章主要介紹了Java的MyBatis框架中一些重要的功能及基本使用示例整理,MyBatis可以幫助Java程序進(jìn)行強(qiáng)大的數(shù)據(jù)庫操作,需要的朋友可以參考下
    2016-04-04
  • 剖析Spring WebFlux反應(yīng)式編程設(shè)計(jì)及工作原理

    剖析Spring WebFlux反應(yīng)式編程設(shè)計(jì)及工作原理

    這篇文章主要為大家介紹了Spring WebFlux反應(yīng)式編程模型工作原理的剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-02-02
  • JVM內(nèi)存參數(shù)配置詳解

    JVM內(nèi)存參數(shù)配置詳解

    本文主要介紹了JVM內(nèi)存參數(shù)配置詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringBoot實(shí)現(xiàn)API接口多版本支持的示例代碼

    SpringBoot實(shí)現(xiàn)API接口多版本支持的示例代碼

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)API接口多版本支持的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • java中SimpleDateFormat 的多線程安全問題

    java中SimpleDateFormat 的多線程安全問題

    本文主要介紹了java中SimpleDateFormat 的多線程安全問題,包括其內(nèi)部可變狀態(tài)和競爭條件,文章提供了四種解決方案,下面就來詳細(xì)的介紹一下
    2026-02-02
  • 深度解析Java @Serial 注解及常見錯(cuò)誤案例

    深度解析Java @Serial 注解及常見錯(cuò)誤案例

    Java14引入@Serial注解,用于編譯時(shí)校驗(yàn)序列化成員,替代傳統(tǒng)方式解決運(yùn)行時(shí)錯(cuò)誤,適用于Serializable類的方法/字段,需注意簽名和位置校驗(yàn),建議新項(xiàng)目采用,本文給大家介紹Java @Serial 注解的相關(guān)知識,感興趣的朋友一起看看吧
    2025-07-07
  • java實(shí)現(xiàn)給某個(gè)文件或文件夾設(shè)置特定訪問權(quán)限

    java實(shí)現(xiàn)給某個(gè)文件或文件夾設(shè)置特定訪問權(quán)限

    這篇文章主要為大家詳細(xì)介紹了如何利用java實(shí)現(xiàn)給某個(gè)文件或文件夾設(shè)置特定訪問權(quán)限,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-05-05
  • eclipse下搭建hibernate5.0環(huán)境的步驟(圖文)

    eclipse下搭建hibernate5.0環(huán)境的步驟(圖文)

    這篇文章主要介紹了eclipse下搭建hibernate5.0環(huán)境的步驟(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 如何用java做一個(gè)word轉(zhuǎn)圖片的功能詳解

    如何用java做一個(gè)word轉(zhuǎn)圖片的功能詳解

    這篇文章主要給大家介紹了關(guān)于如何用java做一個(gè)word轉(zhuǎn)圖片的功能,通過實(shí)現(xiàn)Java Word轉(zhuǎn)圖片功能,避免PDF中間轉(zhuǎn)換損耗,涵蓋分頁處理、字體設(shè)置、性能優(yōu)化及替代方案對比,需要的朋友可以參考下
    2025-05-05
  • feign開啟日志Logger.Level?feignLoggerLevel()中Level爆紅的解決

    feign開啟日志Logger.Level?feignLoggerLevel()中Level爆紅的解決

    這篇文章主要介紹了feign開啟日志Logger.Level?feignLoggerLevel()中Level爆紅的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論

昌宁县| 靖州| 化隆| 旺苍县| 邯郸县| 泾川县| 宕昌县| 宕昌县| 奈曼旗| 南城县| 泽库县| 搜索| 延长县| 固始县| 塔河县| 益阳市| 彩票| 南涧| 横峰县| 沁阳市| 厦门市| 华坪县| 建宁县| 镇赉县| 巢湖市| 河西区| 申扎县| 林芝县| 玉树县| 信宜市| 时尚| 澜沧| 醴陵市| 湘阴县| 甘孜县| 凌海市| 万山特区| 孝感市| 昆山市| 江北区| 浙江省|