IDEA/Tomcat 原理:如何將 Tomcat 集成到 IDEA?實現由傳統部署延伸到熱部署 Java EE 項目?

文章目錄

  • 前言
  • 一、將 Tomcat 集成到 IDEA 中
    • 1.1、進入 IDEA Tomcat 配置頁面
    • 1.2、配置并集成 Tomcat
    • 1.3、配置完成說明
    • 1.4、集成檢查
      • 1.4.1、檢查主頁面信息及服務器配置信息
  • 二、創建并部署 Java EE 項目
    • 2.1、創建新項目或者模塊(自行選擇)
    • 2.2、進行 Java EE 項目配置
    • 2.3、“Next”對項目起名,“Finish”完成 Java EE 項目部署
    • 2.4、查看 Java EE 項目
      • 2.4.1、對應版本約束信息
      • 2.4.2、設置虛擬目錄
      • 2.4.3、Java EE 項目目錄說明
    • 2.5、運行 Java EE 項目
    • 2.6、對 Java EE 項目進行部署
    • 2.7、對 Java EE 項目進行熱部署
  • 總結


前言

通過對 IDEA/Tomcat 原理的講解,對比其不同之處,講解如何將 Tomcat 集成到 IDEA 中,創建并部署 Java EE 項目。由傳統的部署方式延伸到熱部署 Java EE 項目,可以極大地提高項目開發的效率,方便新手入門。

在這里插入圖片描述


一、將 Tomcat 集成到 IDEA 中

1.1、進入 IDEA Tomcat 配置頁面

上方導航欄點擊“Run→Edit Configurations…”進入配置頁面,如下圖所示:

在這里插入圖片描述
說明:

  • Application 指的是對于本地當前應用的配置信息
  • Templates 指的是對于整個模板信息的全局配置

在這里插入圖片描述
打開 Run/Debug Configuration 窗口,下滑找到 Tomcat Server 配置,Local 是本地配置,Remote 是遠程配置,如下圖所示:

在這里插入圖片描述

1.2、配置并集成 Tomcat

“Server”界面點擊“Configure…”,如下圖所示:

在這里插入圖片描述
點擊“+”選擇 Tomcat 在本地的安裝路徑進行匹配,如下圖所示:

在這里插入圖片描述
配置完成,點擊“OK”,如下圖所示:

在這里插入圖片描述

1.3、配置完成說明

在“Sever”頁面可以看到我們集成后的信息,下面的端口默認 8080,我們無須再對其進行修改。點擊“OK”完成設置,如下圖所示:

在這里插入圖片描述

1.4、集成檢查

在 Tomcat 配置完成后,我們需要對配置進行進一步的檢查以確保配置成功。

1.4.1、檢查主頁面信息及服務器配置信息

點擊“Application server”我們可以看到服務器信息已經加載,如下圖所示:

在這里插入圖片描述
再次點擊“Configure…”進入服務器配置頁面,左側的加減可以增刪當前服務器,在下面的“Classes”面板中我們可以看到 IDEA 已經加載到了 Tomcat 的兩個 JAR 包:一個 jsp 的 JAR 包、一個 servlet 的 JAR 包。至此,Tomcat 集成完畢。

在這里插入圖片描述
在這里插入圖片描述

二、創建并部署 Java EE 項目

2.1、創建新項目或者模塊(自行選擇)

依次點擊“File→New→Project/Module”,如下圖所示:

在這里插入圖片描述
創建 Java 企業級項目,根據自身安裝情況選擇 SDK 以及 Server 版本,如下圖所示:

在這里插入圖片描述

2.2、進行 Java EE 項目配置

在下方導航欄“Additional Libraries and Frameworks”中下滑找到“Web Application”并勾選,同時勾選下面“Create web.xml”,創建 Web 項目的核心配置文件。

說明:JDK 的版本與下面“Web Application” Servlet 的版本是對應的,如 JDK8 對應的是 Servlet 的 4.0,JDK7 對應的是 Servlet 的 3.1 版本。

在這里插入圖片描述

2.3、“Next”對項目起名,“Finish”完成 Java EE 項目部署

在這里插入圖片描述
在這里插入圖片描述

2.4、查看 Java EE 項目

2.4.1、對應版本約束信息

我們可以看到該目錄結構是完全正確的,同時,web.xml 我們可以看到使用的是 Schema 的約束,而且對應的版本為 4.0,如下圖所示:

在這里插入圖片描述
這時如果我們再次點擊 Tomcat 配置頁面會發現,左側已經部署了一個 Tomcat Server,同時在部署的項目中也已經進行了加載,web 項目被打包成 war 包的形式,如下圖所示:

在這里插入圖片描述

2.4.2、設置虛擬目錄

如果你在“Application context”處填寫的虛擬目錄為/,項目在將來訪問的時候就不需要虛擬目錄了,而是相當于一個根路徑,如下圖所示:

在這里插入圖片描述

2.4.3、Java EE 項目目錄說明

在這里插入圖片描述
Java 動態項目目錄說明:

--項目名稱--WEB-INF--web.xml:該項目的核心配置文件--classes 目錄:放置中間字節碼文件--lib 目錄:放置項目依賴的 jar 包

2.5、運行 Java EE 項目

下圖的兩個地方都可以運行,或者 Ctrl+Shift+F10,如下圖所示:

在這里插入圖片描述
在這里插入圖片描述

2.6、對 Java EE 項目進行部署

這時,如果你足夠細心,你可以發現地址欄中的地址信息為:http://localhost:8080/而不是http://localhost:8080/index.jsp,如下圖所示:

在這里插入圖片描述
對地址欄信息進行修改,修改為http://localhost:8080/index.jsp,可以看到仍然是剛才頁面。這是為什么呢?我們將在下面的第 7 點為大家進行詳細講解。

在這里插入圖片描述
我們再次在 web 目錄下創建一個 hellohtml.html 的文件,直接在地址欄修改地址運行,會發現瀏覽器無法加載到該文件,而在我們的 IDEA 中是確實存在該文件的。

在這里插入圖片描述
在這里插入圖片描述
這時我們就需要重啟服務器,刷新頁面信息,就可以成功進行加載了。

在這里插入圖片描述
在這里插入圖片描述

2.7、對 Java EE 項目進行熱部署

我們對于上面的現象進行解釋:index.jsp 比較特殊,是一個默認的首頁,是已經在配置里進行了聲明。所以http://localhost:8080/打開是項目首頁,http://localhost:8080/index.jsp打開也是首頁。

同時我們發現,如果每一次更改信息都需要重啟服務器,會極大地降低開發的效率,這就需要我們配置熱部署,以求在更改資源后無需多次重啟服務器。

“Run→Edti configurations…→Run/Debug configurations”,對以下兩則內容進行修改。

在這里插入圖片描述
不選擇 Update classes and resources 是因為 Java 代碼會多次修改,如果多次部署會影響我們的性能。

促使 IDEA 能在我們更新資源后重新部署我們的項目,這樣我們就無需重啟服務器了。

在這里插入圖片描述
新創建一個文件試驗一下,成功!

在這里插入圖片描述


總結

本文我們分別從 IDEA 和 Tomcat 這兩個 IDE 的原理方面進行了分析,并進行了將 Tomcat 集成到 IDEA 中的完整步驟,而對于Java EE 項目的部署我們分別從實戰的角度對比了傳統項目的部署方式和在 IDEA 里面實現熱部署,我們可以明顯發現熱部署的優勢:降低了服務器每次啟動的次數,效率大大提升,多次修改代碼無需多次重啟服務器。

在這里插入圖片描述


我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530743.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530743.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530743.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SSM 整合 2:Java EE 開發環境的搭建(JDK 配置、Tomcat 安裝、IDE 安裝、IDE 集成 Tomcat、Spring 及其組件的下載)

文章目錄 前言一、安裝并配置 JDK1.1、下載并安裝 JDK1.2、配置環境變量1.2.1、從控制面板進入用戶變量設置1.2.2、新建用戶變量 Java_Home 和 Path(根據自己安裝目錄設置)1.2.3、檢測 JDK 是否安裝成功二、安裝 Tomcat 應用服務器2.1、下載 apache-tomcat-9.02.2、啟動 Tomc…

Eclipse 答疑:如何使用 Eclipse 進行斷點(Breakpoints)調試?

文章目錄前言一、打開需要調試的程序二、設置斷點三、進行代碼調試3.1、在上方標簽欄,點擊“Debug As→Java Application”3.2、進入調試頁面并查看設置斷點的具體位置信息3.3、產看具體變量信息總結前言 我們在使用 Eclipse 進行代碼調試時,可以選擇在一…

在 Windows 命令提示符下啟動 MySQL:net start mysql 發生系統錯誤 5。 拒絕訪問。解決方式小結

文章目錄前言一、錯誤描述二、錯誤產生場景三、產生錯誤原因四、解決方式總結前言 我們有時候需要通過 Windows 命令提示符來啟動 MySQL 服務,但是如果你不注意操作權限的話,可能就會報以下錯誤,現在我們來解決這個問題:net start…

XHTML 語法規則及 HTML/XHTML(XHTML 1.0/XHTML 1.1 和 HTML 4.01/HTML 5) 文檔類型說明

文章目錄前言一、XHTML 語法規則二、XHTML、HTML 文檔類型說明三、XHTML 文檔類型3.1、XHTML 1.0 過渡類型(Transitional)3.2、XHTML 1.0 嚴格類型(Strict)3.3、XHTML 1.0 框架類型(Frameset)3.4、XHTML 1.…

Eclipse 答疑:代碼版權?如何更改 Eclipse 中注釋塊的 @author 版權信息?

文章目錄前言一、打開需要進行版權標注的類二、進入配置頁面三、編輯配置信息四、測試總結前言 我們在使用 IDE——Eclipse 進行開發時,在需要注明版權信息的時候,如果不更改默認設置的話,在注釋塊 author 的內容就是電腦系統默認的&#xff…

Java 修飾符詳解:吐血整理,帶你從底層語法和開發案例疏通這 11 種常見修飾符

文章目錄前言一、11 種常見的 Java 修飾符1.1、修飾符應用表1.2、修飾符訪問權限對比二、public 修飾符2.1、public 修飾符語法說明2.2、public 修飾符開發應用三、private 修飾符3.1、private 修飾符語法說明3.2、private 修飾符開發應用四、protected 修飾符4.1、protected 修…

Java 反射機制詳解:私有方法調用頭大?如何通過反射調用類中的私有方法?

文章目錄前言一、私有方法在本類中直接調用1.1、在本類中實例化,調用私有方法1.2、嘗試在其他類直接調用私有方法(錯誤示范)二、使用反射實例化類強制調用私有方法2.1、使用類加載器加載被調用的類2.2、使用 Object 類對獲取的類進行實例化2.…

jQuery 遍歷:思路總結,項目場景中如何處理/控制獲取的 each 遍歷次數?

文章目錄前言一、項目場景分析二、實體類定義描述(僅關鍵代碼)2.1、實體類定義描述2.2、邏輯處理與分析2.3、遍歷數據如何修改的問題暴露三、處理思路3.1、源碼分析 jQuery 中的 each 遍歷3.2、如何解決 jQuery 中控制獲取 each 的遍歷次數總結前言 前臺…

JavaScript 事件:Web 表單如何實現禁用右鍵、復制粘貼/剪切和輸入框自動填充?

文章目錄前言一、禁用鼠標右鍵1.1、分析說明1.2、操作原理1.3、實現效果1.4、實現代碼1.5、補充:JS 中的 button 事件屬性二、禁用復制粘貼2.1、分析說明2.2、實現代碼三、禁用輸入框自動填充功能3.1、分析說明3.2、實現效果3.3、實現代碼總結前言 我們在項目中&…

MySQL 模糊查詢:MySQL 數據庫 like 語句通配符模糊查詢小結

MySQL 報錯:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 數據庫 like 語句通配符模糊查詢小結 文章目錄MySQL 報錯:Parameter index out of range (1 > number of parameters, which is 0)——…

內網擊穿之 HTTP 穿透:網站沒上線?如何讓全世界的人都可以訪問你本地的網站?

文章目錄前言一、內網穿透原理與工具介紹1.1、內網穿透工作原理1.2、內網穿透工具介紹二、啟動內網穿透工具2.1、命令及配置介紹2.2、查看映射信息三、進行訪問測試3.1、遠程訪問本地站點資源3.2、關閉內網穿透總結前言 對于大多數程序員來說,網站一經開發測試后&am…

SSM 整合 3:一個 Spring 入門程序帶你來了解什么是控制反轉(IoC)/依賴注入(DI)?

文章目錄 前言一、使用 Eclipse 創建動態 Web 項目并導入所需 jar 包二、創建接口 TestDao 和實現類2.1、創建接口 TestDao2.2、創建接口的實現類 TestDaoImpl三、創建 Spring 配置文件 applicationContext.xml3.1、如何從官方文檔找配置文件約束信息四、創建測試類并輸出運行結…

軟件設計原則:內聚、耦合有哪幾種類型?內聚度、耦合度如何比較?

文章目錄前言一、何為內聚?1.1、7 種內聚類型及其描述二、何為耦合?2.1、7 種耦合類型及其描述總結前言 高內聚、低耦合是我們在軟件設計過程中必須遵循的一個重要原則,在整個軟件工程中占有很大的比重。而對于內聚和耦合你還是僅僅局限于“高…

數據庫管理工具:如何使用 Navicat Premium 轉儲(導出)和運行(導入)*.sql 文件?

文章目錄前言一、轉儲(導出)數據庫 SQL 文件1.1、選擇“轉儲 SQL 文件”1.2、選擇導出文件存放位置1.3、查看轉儲 SQL 文件界面1.4、查看 SQL 輸出文件1.5、查看輸出文件詳情信息二、運行(導入)數據庫 SQL 文件2.1、新建數據庫2.2…

JSP 編譯原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 編譯生成的 Servlet 源文件?

文章目錄前言一、JSP 文件編譯流程原理二、創建并運行待測試 JSP 頁面三、查找 JSP 編譯文件輸出位置3.1、打開動態項目運行配置3.2、查看 JSP 編譯文件輸出位置3.3、查看 JSP 編譯輸出文件四、JSP 編譯輸出 Servlet 的論證五、訪問 JSP 文件的流程總結前言 相信大家都了解&…

MVC 模式/Servlet/JSP 編譯原理剖析:Servlet 組件到底屬于 MVC 模式的哪一層?

文章目錄前言一、回憶什么是 MVC 模式?1.1、Model、View、Controller 組件介紹1.2、明確 View 與 Controller 組件區別二、什么是 Servlet?2.1、Servlet 的組件定義2.2、Servlet 組件處于 Controller 層?三、老師說 Servlet 是 View 層的&…

操作系統原理:進程 PV 操作如何計算?全網最全三種前驅圖計算類型總結

文章目錄前言一、PV 操作定義1.1、P 操作定義1.2、V 操作定義二、串聯進程(單線前驅圖)2.1、什么是單線前驅圖?2.2、如何計算單線前驅圖的 PV?2.2.1、計算前驅節點 PV2.2.2、計算中間節點 PV2.2.3、計算尾節點 PV三、并聯進程&…

Spring 容器:三種方式解決 Resource leak: ‘applicationContext‘ is never closed 問題

文章目錄前言一、Spring 容器警告產生的場景二、Spring 容器未關閉后果分析2.1、肉眼可見的警告2.2、導致的內存泄漏2.2.1、什么是內存泄漏?2.2.2、如何判斷內存泄漏?2.2.3、Java 中的 GC(垃圾回收)2.2.4、Java 中會導致內存泄漏的…

SSM 整合 4:Spring IoC 容器基于的兩個重要接口 BeanFactory 和 ApplicationContext

文章目錄 前言一、BeanFactory 接口1.1、加載 Spring 配置文件創建 BeanFactory 接口實例1.2、開發中的運用以及使用說明二、ApplicationContext 接口2.1、ClassPathXmlApplicationContext 創建接口實例2.2、FileSystemXmlApplicationContext 創建接口實例2.3、通過 Web 服務器…

SRA 案例:關于華為開發者聯盟基礎服務文檔內容的改進建議(華為開發者聯盟文檔深度體驗官)

文章目錄前言一、文檔中心的外鏈跳轉問題1.1、問題描述1.2、造成的問題1.3、改進建議二、圖片失真和無法放大查看問題2.1、問題描述2.2、造成的問題2.3、改進建議三、個別 SDK 詞匯缺少必要的說明3.1、問題描述3.2、造成的問題3.3、改進建議四、郵箱信息的優化4.1、問題描述4.2…