柚子快報邀請碼778899分享:java Tomcat
1.Tomact是什么
所以Tomcat就是一個服務(wù)器,而且是本地的服務(wù)器,可以將我們的Java程序放在Tomcat服務(wù)器中,就可以用它來完成不同客戶端的請求和響應(yīng)。當(dāng)Tomcat啟動后,客戶端發(fā)送請求過來,通過在Tomcat上的Java程序完成請求,然后將處理的結(jié)果返回給客戶端。
2.在idea中使用Tomcat
打開IDEA創(chuàng)建一個HelloTomcat項目。
Next之后,輸入項目名稱就創(chuàng)建完成了。那接下配置Tomcat。
點擊IDEA中的Add Configuration 或者打開菜單Run --> 選擇Edit Configuration 都可以。
彈出窗口后點擊+,然后往下滑,然后選擇Tomcat Server的Local(如果沒有Tomcat Server則點擊 items more)。
點擊Local之后會出現(xiàn)如下界面,然后將我們下載的Tomcat配置進(jìn)來
Tomcat中部署并運行項目,當(dāng)我們配置完Tomcat后,IDEA下面會彈出一個界面。
右擊Tomcat選擇Artifacts,然后將項目添加進(jìn)去,在右擊Run就可以了。
3.IDEA中的Tomcat熱部署:
熱部署就是應(yīng)用正在運行的狀態(tài)下,修改了它的一些源碼后,可以在不重啟服務(wù)器的情況自動把增量內(nèi)容編譯并部署到服務(wù)器上,使得修改立即生效。熱部署為了解決的問題有兩個, 一是在開發(fā)的時候,修改代碼后不需要重啟應(yīng)用就能看到效果,大大提升開發(fā)效率;二是生產(chǎn)上運行的程序,可以在不停止運行的情況下進(jìn)行升級,不影響用戶使用。
在配置Tomcat中Server的配置里,有個on update action和on frame deactivation:
on update action :表示在當(dāng)項目啟動之后,項目代碼更新之后的動作是什么?具體如下:
Update resources:只更新資源文件,例如更改了jsp,html等。 Update classes and resources:更新類信息和資源文件,但是一般更新類信息都是無效,所以如果更改了類,都會重新部署。 Redeploy:重新部署項目(推薦)。 Restart server:重新啟動服務(wù),盡量不要重新啟動服務(wù),因為很慢。
on frame deactivation :表示當(dāng)焦點離開IDEA之后會觸發(fā)哪個更新動作。有三個可以選項:
Do nothing:不做任何事。 Update resources:只更新資源文件. Update classes and resources:更新類信息和資源文件。
建議設(shè)置:
on update action 設(shè)置為:Redeploy
on frame deactivation設(shè)置為:Update classes and resources
配置完后點擊Apply即可啟動你的tomcat,然后改一下jsp、java文件實驗熱部署配置是否成功。
注意:IDEA熱部署并非絕對實時, 還是會有延時的,假如你手速快的話可能會出現(xiàn)改了并沒有馬上生效。所以此時不要懷疑熱部署沒有配置成功,稍微等一會你會看到開發(fā)工具左下角會有一個class reload的提示,出現(xiàn)這個提示才說明已經(jīng)熱部。而且如果XML文件有改動的話是不會自動部署的。
4.Tomcat的Server結(jié)構(gòu)
在Tomcat中比較核心的一個文件就是conf目錄下的server.xml文件,它主要包含Tomcat一些核心配置文件,如:啟動端口,用戶配置,Context等,Tomcat的啟動首先就是加載這個文件。
我們打開server.xml看上去很復(fù)雜。其實大部分都是注釋。下面是一個簡圖說明了各組件之間的關(guān)系
Tomcat包含的主要組件:服務(wù)器Server,服務(wù)Service,連接器Connector、引擎Engine、主機(jī)Host、上下文Context等。
1.Server組件
?
這會讓Tomcat啟動一個server實例(即一個JVM),它監(jiān)聽在8005端口以接收shutdown命令。各Server的定義不能使用同一個端口,這意味著如果在同一個物理機(jī)上啟動了多個Server實例,必須配置它們使用不同的端口。這個端口的定義用于為管理員提供一個關(guān)閉此實例的便捷途徑,因此,管理員可以直接telnet至此端口使用SHUTDOWN命令關(guān)閉此實例。不過,基于安全角度的考慮,這通常不允許遠(yuǎn)程進(jìn)行。
Server的相關(guān)屬性:
className: 用于實現(xiàn)此Server容器的完全限定類的名稱,默認(rèn)為org.apache.catalina.core.StandardServer; port: 接收shutdown指令的端口,默認(rèn)僅允許通過本機(jī)訪問,默認(rèn)為8005; shutdown:發(fā)往此Server用于實現(xiàn)關(guān)閉tomcat實例的命令字符串,默認(rèn)為SHUTDOWN;
2.Service組件
Service主要用于關(guān)聯(lián)一個引擎和與此引擎相關(guān)的連接器,每個連接器通過一個特定的端口和協(xié)議接收入站請求交將其轉(zhuǎn)發(fā)至關(guān)聯(lián)的引擎進(jìn)行處理。因此,Service要包含一個引擎、一個或多個連接器。
?
這定義了一個名為Catalina的Service,此名字也會在產(chǎn)生相關(guān)的日志信息時記錄在日志文件當(dāng)中。
Service相關(guān)的屬性:
className: 用于實現(xiàn)service的類名,一般都是org.apache.catalina.core.StandardService。 name:此服務(wù)的名稱,默認(rèn)為Catalina;
柚子快報邀請碼778899分享:java Tomcat
好文鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。