macOS下载、安装、使用tomcat服务器及IntelliJ IDEA for Mac 如何集成、配置、运行tomcat
文章目錄
- web 服務(wù)器軟件
- tomcat
- 如何下載安裝 tomcat
- macOS 下如何啟動(dòng) tomcat
- Windows 啟動(dòng) tomcat
- 部署項(xiàng)目的方式
- 直接將項(xiàng)目放到 webapps 目錄下即可
- 在 tomcat 的配置文件 server.xml 中進(jìn)行配置部署
- 在 tomcat 的 localhost 目錄下通過(guò) xml 文件完成部署
- IntelliJ IDEA 集成 tomcat
- IntelliJ IDEA 啟動(dòng) tomcat
- IntelliJ IDEA 部署項(xiàng)目
- IntelliJ IDEA 自動(dòng)部署項(xiàng)目
- IntelliJ IDEA 熱部署
- 手動(dòng)觸發(fā) Update 動(dòng)作時(shí)需要 IDEA 做什么
- IDEA 失去焦點(diǎn)時(shí)做什么
- 熱部署總結(jié)
- IntelliJ IDEA 運(yùn)行 tomcat 的選項(xiàng)說(shuō)明
- IntelliJ IDEA 對(duì) tomcat 的配置
- web 應(yīng)用程序如何調(diào)試
網(wǎng)絡(luò)通信三要素:
1.IP:電子設(shè)備(計(jì)算機(jī))在網(wǎng)絡(luò)中的唯一標(biāo)識(shí)。
2.端口:應(yīng)用程序在計(jì)算機(jī)中的唯一標(biāo)識(shí)。范圍:0~65536
3.傳輸協(xié)議:規(guī)定了數(shù)據(jù)傳輸?shù)囊?guī)則
3.1.基礎(chǔ)協(xié)議:
3.1.1. tcp:安全協(xié)議,三次握手。速度稍慢
3.1.2. udp:不安全協(xié)議。速度快
web 服務(wù)器軟件
服務(wù)器:安裝了服務(wù)器軟件的計(jì)算機(jī)
服務(wù)器軟件:接收用戶的請(qǐng)求,處理請(qǐng)求,做出響應(yīng)
- web服務(wù)器軟件:接收用戶的請(qǐng)求,處理請(qǐng)求,做出響應(yīng)。
- 在web服務(wù)器軟件中,可以部署web項(xiàng)目,讓用戶通過(guò)瀏覽器來(lái)訪問(wèn)這些項(xiàng)目
- 也叫web容器
常見(jiàn)的 Java 相關(guān)的 web 服務(wù)器軟件:
weblogic : Oracle 公司,大型的JavaEE服務(wù)器,支持所有的JavaEE規(guī)范, 收費(fèi)的。
websphere : IBM 公司,大型的JavaEE服務(wù)器, 支持所有的JavaEE規(guī)范, 收費(fèi)的。
JBOSS : JBOSS 公司,大型的JavaEE服務(wù)器,支持所有的JavaEE規(guī)范,收費(fèi)的。
Tomcat : Apache 基金組織,中小型的JavaEE服務(wù)器,僅僅支持少量的JavaEE規(guī)范(例如:servlet/jsp)。開(kāi)源的,免費(fèi)的。
注:JavaEE 是 Java 語(yǔ)言在企業(yè)級(jí)開(kāi)發(fā)中使用的技術(shù)規(guī)范的總和,一共規(guī)定了13項(xiàng)大的規(guī)范
tomcat
如何下載安裝 tomcat
官網(wǎng):https://tomcat.apache.org/
參考:https://blog.csdn.net/dongzhensong/article/details/87807378
macOS 下如何啟動(dòng) tomcat
給 bin 目錄的所有者授予執(zhí)行的權(quán)限:
sudo chmod -R u+x /Users/liaowenxiong/Applications/apache-tomcat-8.5.73/bin # 或者 sudo chmod -R 755 /Users/liaowenxiong/Applications/apache-tomcat-8.5.73/bin注:755 代表所有者用戶對(duì)擁有讀、寫、執(zhí)行的權(quán)限,同組其他人員以及其它用戶擁有執(zhí)行和讀的權(quán)限,沒(méi)有寫的權(quán)限。
2.切換到 tomcat 的 bin 目錄下
cd /Users/liaowenxiong/Applications/apache-tomcat-8.5.73/bin3.啟動(dòng) tomcat
sh startup.sh # 或者 ./startup.sh4.停止 tomcat
sh shutdown.sh ./shutdown.sh5.瀏覽器地址欄輸入:localhost:8080,驗(yàn)證是否成功啟動(dòng) tomcat
Windows 啟動(dòng) tomcat
Windows 系統(tǒng)可以雙擊 startup.bat 啟動(dòng)服務(wù)器(啟動(dòng)窗口不要關(guān)閉掉),雙擊 shutdown.bat 關(guān)閉服務(wù)器。關(guān)閉終端窗口也可以關(guān)閉服務(wù)器(不推薦),在啟動(dòng)服務(wù)器窗口按 Ctrl + C 也可以停止服務(wù)器。
雙擊批處理腳本文件時(shí)可能存在的問(wèn)題:
1.黑窗口一閃而過(guò)
解決:配置 JAVA_HOME 環(huán)境變量,JDK的安裝目錄設(shè)為變量值
2.默認(rèn)端口號(hào)被占用,導(dǎo)致啟動(dòng)失敗
解決:
1.找到占用端口號(hào)的進(jìn)程,殺死該進(jìn)程
2.修改tomcat的默認(rèn)端口號(hào)
在tomcat的配置目錄下找到 server.xml 文件,在文件中找到:
將 Connector 元素的 port 屬性值改成其它的端口號(hào)即可。
一般將 tomcat 的默認(rèn)端口號(hào)改成 80,該端口號(hào)是 http 協(xié)議默認(rèn)的端口號(hào),因此輸入 URL 時(shí)可以省略端口號(hào)。
部署項(xiàng)目的方式
直接將項(xiàng)目放到 webapps 目錄下即可
http://ip:port/xxx/hello.html
其中 /xxx 是項(xiàng)目的訪問(wèn)路徑,稱為虛擬目錄;hello.html 是項(xiàng)目中的資源路徑。
缺點(diǎn):每次修改項(xiàng)目的代碼后,都要把項(xiàng)目重新放到 webapps 目錄下,太麻煩
注:通常會(huì)把項(xiàng)目打成 war 包,放到 webapps 目錄下,會(huì)自動(dòng)解包;刪除 war 包對(duì)應(yīng)的項(xiàng)目文件夾也會(huì)自動(dòng)刪除。
在 tomcat 的配置文件 server.xml 中進(jìn)行配置部署
在 tomcat 的 server.xml 文件的 <Context> 標(biāo)簽中進(jìn)行配置部署
參考《tomcat服務(wù)器通過(guò)配置來(lái)部署程序》
好處:不再需要把項(xiàng)目放到 webapps 目錄下,而且修改了項(xiàng)目的代碼后,也不需要手動(dòng)重新部署,這樣比較方便
缺點(diǎn):
2.1.server.xml 是 tomcat 的核心配置文件,所以在這個(gè)文件中配置會(huì)有安全風(fēng)險(xiǎn)
2.2.如果一個(gè)tomcat部署多個(gè)項(xiàng)目時(shí),每次配置改動(dòng)都要重啟服務(wù)器
注:server.xml 修改后,需要重啟 tomcat,相關(guān)配置才能生效
在 tomcat 的 localhost 目錄下通過(guò) xml 文件完成部署
在 tomcat 的 conf/Catalina/localhost 目錄下創(chuàng)建 xml 文檔,進(jìn)行項(xiàng)目的配置部署
例如,創(chuàng)建一個(gè)名為 hello.xml 的文件,在里面寫如下的內(nèi)容:
<Context docBase="E:\Workspaces\hyt2pf\context"debug="5" reloadable="true" crossContext="true" workDir="E:\Workspaces\hyt2pf\work"/>注:項(xiàng)目的訪問(wèn)路徑(虛擬目錄)是 xml 文件名,即 /hello
好處:熱部署,部署項(xiàng)目或者刪除項(xiàng)目,都不需要重啟服務(wù)器
IntelliJ IDEA 集成 tomcat
第一步:點(diǎn)擊頂部菜單欄 Run → Edit Configurations
第二步:選擇左側(cè) Templates → Tomcat Server → Local,接著點(diǎn)擊頁(yè)面中的 Server 標(biāo)簽頁(yè),再點(diǎn)擊 Application server 下拉列表框右邊的 Configure 按鈕,配置服務(wù)器。
第三步:配置服務(wù)器
第四步:創(chuàng)建配置文件
前面幾步只是使用 IDEA 的 Template of Tomcat Server 進(jìn)行服務(wù)器集成的相關(guān)配置,最后你要把配置信息創(chuàng)建成一份配置文件才能使用。
IntelliJ IDEA 啟動(dòng) tomcat
IntelliJ IDEA 部署項(xiàng)目
這里特別強(qiáng)調(diào)下,只有點(diǎn)擊 deploy 后,IDEA 才會(huì)根據(jù)你選擇的部署方式生成對(duì)應(yīng)的文件,所以下圖所示的文件以及部署動(dòng)作都是在點(diǎn)擊 deploy 后由 IDEA 自動(dòng)完成的。
本地電腦中的 IDEA 工作空間中的項(xiàng)目目錄結(jié)構(gòu)截圖:
IntelliJ IDEA 自動(dòng)部署項(xiàng)目
你添加了要部署的 Artifacts(工件/產(chǎn)品/成品)后,服務(wù)器啟動(dòng)時(shí)會(huì)自動(dòng)完成已選 Artifacts 的部署工作。
也就是下圖所示的步驟你完成了,那么重啟服務(wù)器會(huì)自動(dòng)完成項(xiàng)目的部署。
在 Deployment 標(biāo)簽頁(yè)中添加了 Artifacts,其實(shí)并不是部署項(xiàng)目,這里只是選擇項(xiàng)目的部署方式而已,服務(wù)器啟動(dòng)后或者你在底部的服務(wù)器窗格中選擇服務(wù)器,點(diǎn)擊右鍵的【deploy】才會(huì)真正的部署項(xiàng)目。
如何理解部署這個(gè)動(dòng)作,請(qǐng)參閱《部署應(yīng)用程序到服務(wù)器到底是什么意思?部署到底在干什么事情?》。
IntelliJ IDEA 熱部署
熱部署就是正在運(yùn)行狀態(tài)的應(yīng)用,修改源碼之后,在不重新啟動(dòng)服務(wù)器(包含 JVM)的情況下能夠自動(dòng)把增量?jī)?nèi)容部署到服務(wù)器上,使得修改立即生效。
熱部署為了解決的問(wèn)題有兩個(gè), 一是在開(kāi)發(fā)的時(shí)候,修改代碼后不需要重啟服務(wù)器就能看到效果,大大提升開(kāi)發(fā)效率;二是生產(chǎn)環(huán)境上運(yùn)行的程序,可以在不停止運(yùn)行的情況下進(jìn)行升級(jí),不影響用戶使用。
熱部署/熱插拔/熱替換(HotSwap)是在不重啟服務(wù)器(包含 JVM) 的前提下,能自動(dòng)偵測(cè)到 class 文件的變化,更新發(fā)布包中的 class 文件以及已經(jīng)加載入內(nèi)存中處于運(yùn)行時(shí)的 class 的行為,所以熱部署不僅要替換 class 文件,還要更新已經(jīng)加載到 Java 虛擬機(jī)內(nèi)存中的正在運(yùn)行的 class。
手動(dòng)觸發(fā) Update 動(dòng)作時(shí)需要 IDEA 做什么
以下截圖指明了 On 'Update' action 配置的位置:
On ‘Update’ action:手動(dòng)觸發(fā) Update 動(dòng)作時(shí)需要 IDEA 做什么?
所謂手動(dòng)觸發(fā) Update 動(dòng)作是指你主動(dòng)點(diǎn)擊下圖所示的按鈕去更新 tomcat 應(yīng)用程序。
但你點(diǎn)擊這個(gè)更新按鈕時(shí)會(huì)彈出如下所示的小窗口,你會(huì)發(fā)現(xiàn)你在 On 'Update' action 的下拉列表框中選擇的是什么,那么這個(gè)小窗口就默認(rèn)選中的是什么。
其實(shí) On 'Update' action 這個(gè)設(shè)置是有點(diǎn)多余了,因?yàn)閮H僅是設(shè)置手動(dòng)觸發(fā) update 按鈕時(shí)默認(rèn)的行為是什么,你依舊需要手動(dòng)去點(diǎn)擊 update 按鈕,再點(diǎn)擊【確定】按鈕,IDEA 才會(huì)去做什么,沒(méi)有減少用戶操作的步驟。
具體行為選項(xiàng)的含義:
| Update resources | 更新資源,意思就是你手動(dòng)觸發(fā) Update 動(dòng)作,IDEA 會(huì)更新 js/html/css/xml 等靜態(tài)的資源文件,不過(guò)上文提到了,你依舊需要點(diǎn)擊【確定】按鈕,IDEA 才會(huì)執(zhí)行 |
| Update classes and resources | 更新字節(jié)碼文件和資源文件,意思就是你手動(dòng)觸發(fā) Update 動(dòng)作,IDEA 會(huì)更新資源文件以及字節(jié)碼文件。特別注意:java文件修改后,debug 模式下立即生效。run 模式下不立即生效,需要 redeployed 才可生效。 jsp文件修改后,在運(yùn)行模式和調(diào)試模式下都是立即生效 |
| Redeploy | 重新部署。不重啟 tomcat,而是把原來(lái)項(xiàng)目文件刪掉,然后重新發(fā)布 |
| Restart server | 重啟tomcat |
如果服務(wù)器存在以 war 方式部署的項(xiàng)目,則行為選項(xiàng)如下圖所示:
當(dāng)服務(wù)器存在以 war 形式部署的項(xiàng)目時(shí),On Update action 與 On frame deactivation 中的選項(xiàng)沒(méi)有 Update resources 和 Update classes and resources,取而代之的是 Hot Swap Classes 選項(xiàng),意思
IDEA 失去焦點(diǎn)時(shí)做什么
所謂 IDEA 失去焦點(diǎn)或者失活,是指你最小化 IDEA 窗口或者切換到其它應(yīng)用程序了,例如你在編碼的時(shí)候按 ? + tab 切換到瀏覽器去查詢東西的時(shí)候,當(dāng)前 IDEA 程序就失去焦點(diǎn)了。
On frame deactivation 建議選擇 Do nothing,因?yàn)闀簳r(shí)離開(kāi) IDEA 的情況非常頻繁,如果每次離開(kāi)都要重新 Build Project(即編譯項(xiàng)目) 、更新發(fā)布包中的文件(不僅要更新發(fā)布包中的文件,還要更新已經(jīng)加載進(jìn)內(nèi)存中 class,這些動(dòng)作對(duì)于 tomcat 而言叫作 reload),計(jì)算機(jī)性能、IDEA 的使用體驗(yàn)會(huì)大打折扣。
熱部署總結(jié)
On Update action 設(shè)置為 Update classes and resources,On frame deactivation 設(shè)置為 Do nothing。
通常的使用情況是:當(dāng)更新完 Java 代碼或 JSP 或靜態(tài)資源文件后,手動(dòng)點(diǎn)擊下圖所示的更新按鈕,當(dāng)出現(xiàn)下圖所示的綠色背景的提示框,則更新完成,即熱部署完成。
如果每次點(diǎn)擊的時(shí)候不希望出現(xiàn)下圖所示的彈框:
你可以把下圖所示的復(fù)選框取消打勾:
新建 Java 文件不可以通過(guò)熱部署方式完成自動(dòng)部署更新,需要重新部署或重啟服務(wù)器;但新建的靜態(tài)資源文件可以采用熱部署方式自動(dòng)部署更新。
IntelliJ IDEA 運(yùn)行 tomcat 的選項(xiàng)說(shuō)明
Run:啟動(dòng) tomcat,快捷鍵 ? + R,在 tomcat 已經(jīng)運(yùn)行中時(shí)按快捷鍵 ? + R 會(huì)彈出對(duì)話窗口,讓你選擇操作項(xiàng)目;而快捷鍵 ? + ? + R 則是快速重啟 tomcat,沒(méi)有對(duì)話彈窗
Rerun:重啟 tomcat,也就是 Restart Server
Run comcat with Coverage:
Run tomcat with CPU Profiler:
Run tomcat with Allocation Profiler:
Run tomcat with Java Flight Recorder:
IntelliJ IDEA 對(duì) tomcat 的配置
上面的配置信息保存在哪里?
其實(shí) IntelliJ IDEA 會(huì)把每一份tomcat配置文件的信息保存在下面的目錄下:
/Users/liaowenxiong/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/我的tomcat的配置文件保存在下面的目錄:
/Users/liaowenxiong/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/0e0b39f5-0ff8-4713-ab72-81b276953084如果有多份配置文件,則會(huì)在 /Users/liaowenxiong/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/ 目錄下隨機(jī)生成多個(gè)目錄,把配置信息保存到這些目錄下。
[~/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/0e0b39f5-0ff8-4713-ab72-81b276953084/conf]$ ls Catalina catalina.properties context.xml jaspic-providers.xsd server.xml tomcat-users.xml web.xml catalina.policy catalina.properties.0 jaspic-providers.xml logging.properties server.xml.0 tomcat-users.xsd web.xml.0我一直好奇下圖所示的虛擬目錄保存在哪里?
原來(lái)是在 …conf/Catalina/localhost 目錄下創(chuàng)建同名的 xml 文件,以這樣的方式部署項(xiàng)目。
查看下 web_demo_03.xml:
[~/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/0e0b39f5-0ff8-4713-ab72-81b276953084/conf/Catalina/localhost]$ cat web_demo_03.xml <Context path="/web_demo_03" docBase="/Users/liaowenxiong/Documents/IdeaProjects/java-exercises/web-demo-03/target/web-demo-03-1.0-SNAPSHOT" />%怎么找到這個(gè)目錄的?
在 tomcat 控制臺(tái)看 Catalina.log 日志內(nèi)容,如下圖所示:
如果是 windows 操作系統(tǒng),如下圖所示:
web 應(yīng)用程序如何調(diào)試
1.在類的源碼文件中添加斷點(diǎn)
2.以 debug 模式啟動(dòng) tomcat
3.瀏覽器地址欄輸入請(qǐng)求資源路徑,訪問(wèn) web 服務(wù)
4.查看調(diào)試詳情
總結(jié)
以上是生活随笔為你收集整理的macOS下载、安装、使用tomcat服务器及IntelliJ IDEA for Mac 如何集成、配置、运行tomcat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安卓蓝牙设置软件(安卓蓝牙设置)
- 下一篇: IntelliJ IDEA for Ma