淺談Tomcat服務(wù)器安裝及優(yōu)化

發(fā)布時(shí)間:2024-01-30
系統(tǒng)運(yùn)維
博文大綱:
一、tomcat概述
二、tomcat組件及其特點(diǎn)
三、安裝tomcat
四、tomcat中server.xml 文件結(jié)構(gòu)
五、多實(shí)例(一臺(tái)主機(jī)運(yùn)行多個(gè)tomcat)
六、自定義目錄
七、使用tomcat實(shí)時(shí)監(jiān)控jvm虛擬機(jī)資源使用情況
八、開啟jmx遠(yuǎn)程調(diào)試功能
九、配置使用https訪問tomcat服務(wù)器
十、開啟manager管理頁面
十一、開啟host-mangent管理頁面
十二、分割tomcat的運(yùn)行日志
十三、定義tomcat 404錯(cuò)誤返回的頁面
十四、tomcat服務(wù)的內(nèi)存優(yōu)化
十五、tomcat線程池的優(yōu)化
十六、更改tomcat服務(wù)的請(qǐng)求方式
一、tomcat概述
tomcat是apache軟件基金會(huì)項(xiàng)目中的一個(gè)核心項(xiàng)目,是一個(gè)免費(fèi)的開放源代碼的web應(yīng)用服務(wù)器,屬于輕量級(jí)的應(yīng)用服務(wù)器,在中小型企業(yè)和訪問并不是很高的場景很受歡迎,普遍被使用,而且在開發(fā)和調(diào)試jsp程序的首選!
可以這樣認(rèn)為,當(dāng)一臺(tái)服務(wù)器部署好apache服務(wù)器后,可以利用apache服務(wù)器響應(yīng)客戶端的靜態(tài)頁面訪問請(qǐng)求,而tomcat是apache服務(wù)器的擴(kuò)展,當(dāng)運(yùn)行tomcat的時(shí)候?qū)嶋H上是作為一個(gè)apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的,apache服務(wù)器為靜態(tài)頁面提供服務(wù),而tomcat是解析jsp頁面和servlet,并且tomcat也具備靜態(tài)頁面的解析能力,但是跟apache相比還是有些區(qū)別的。
關(guān)于tomcat的內(nèi)容可不是一兩句話就可以說完的,建議訪問tomcat官網(wǎng)詳細(xì)了解!
二、tomcat組件及其特點(diǎn)
1.servlet是什么?
servlet(server applet):是java servlet的簡稱,稱為小服務(wù)程序或服務(wù)連接器,用java編寫的服務(wù)器端程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動(dòng)態(tài)web內(nèi)容。狹義的servlet是指java語言實(shí)現(xiàn)的一個(gè)接口;廣義的servlet是指任何實(shí)現(xiàn)了這個(gè)servlet接口的類;一般情況下,人們將servlet理解為后者。
servlet運(yùn)行于支持java的應(yīng)用服務(wù)器中。從原理上講,servlet可以響應(yīng)任何類型的請(qǐng)求,但絕大多數(shù)情況下servlet只用來擴(kuò)展基于http協(xié)議的web服務(wù)器。
tomcat處理請(qǐng)求和響應(yīng)的過程都是由servlet程序來完成的,并且servlet是為解決實(shí)現(xiàn)動(dòng)態(tài)頁面衍生的內(nèi)容,與nginx和apache想要實(shí)現(xiàn)動(dòng)態(tài)頁面需要和php服務(wù)器溝通的過程一樣,就可以把servlet看做lamp或lnmp中的php。如圖:
tomcat是web應(yīng)用服務(wù)器,是一個(gè)servlet/jsp容器,tomcat作為servlet容器,負(fù)責(zé)處理客戶端請(qǐng)求,并將servlet的響應(yīng)傳送給客戶,而servlet是一種運(yùn)行在java語言的服務(wù)器上的組件,servlet最常見的用途是擴(kuò)展java web服務(wù)器功能,提供非常安全的易于使用cgi替代品。
servlet工作流程:
servlet程序是web服務(wù)器調(diào)用的,當(dāng)web服務(wù)器收到客戶端的servlet訪問請(qǐng)求后,將執(zhí)行以下幾個(gè)過程:
①web服務(wù)器首先檢查是否已經(jīng)裝載并創(chuàng)建了該servlet的實(shí)例對(duì)象。如果是,則直接執(zhí)行第④步;否則,將執(zhí)行第②步;
②裝載并創(chuàng)建該servlet的一個(gè)實(shí)例對(duì)象;
③調(diào)用servlet實(shí)例;
④創(chuàng)建一個(gè)用于封裝http請(qǐng)求的httpservletrequest對(duì)象和一個(gè)代表http響應(yīng)消息的httpservletresponse對(duì)象,然后調(diào)用servlet的service()方法并將請(qǐng)求和響應(yīng)對(duì)象作為參數(shù)傳遞進(jìn)去;
⑤web應(yīng)用程序被停止或重新啟動(dòng)之前,servlet引擎將卸載servlet,并在卸載之前調(diào)用servlet的destroy()方法;
2.tomcat處理數(shù)據(jù)的流程
如圖:
①客戶端通過瀏覽器發(fā)送請(qǐng)求數(shù)據(jù);
②tomcat收到客戶端的請(qǐng)求數(shù)據(jù),由servlet容器處理并進(jìn)行解析,并且把客戶端的數(shù)據(jù)請(qǐng)求request改為servlet request交給后端的servlet實(shí)例;
③servlet實(shí)例收到客戶端的請(qǐng)求數(shù)據(jù)的請(qǐng)求對(duì)象,進(jìn)行處理客戶端的請(qǐng)求,處理完成后將數(shù)據(jù)響應(yīng)給servlet容器,響應(yīng)給servlet容器叫做servlet response;
④servlet容器將收到的響應(yīng)數(shù)據(jù)交給客戶端;
servlet容器與servlet實(shí)例進(jìn)行通信時(shí)需要使用java servlet api接口,而這個(gè)接口是由開發(fā)人員在寫代碼的時(shí)候定義或編寫的。
3.servlet與jsp
jsp作為servlet技術(shù)的擴(kuò)展,經(jīng)常會(huì)有人將兩者搞混,下面簡單介紹一下:
servlet與jsp的區(qū)別:
servlet在java代碼中可以通過httpservletresponse對(duì)象動(dòng)態(tài)輸出html內(nèi)容;
jsp在靜態(tài)html內(nèi)容中嵌入java代碼,然后java代碼在被動(dòng)態(tài)執(zhí)行后生成html頁面;
servlet與jsp各自的特點(diǎn):
servlet雖然能很好地組織業(yè)務(wù)邏輯代碼,但在java源文件中,因?yàn)槭峭ㄟ^字符串拼接的方式生成html內(nèi)容,這樣就很容易導(dǎo)致代碼維護(hù)困難、可讀性較差;
jsp雖然避開了servlet在生成html內(nèi)容方面的劣勢,但是在html中混入大量、復(fù)雜得業(yè)務(wù)邏輯;
4.tomcat的特點(diǎn)
運(yùn)行時(shí)占用的資源小,擴(kuò)展性強(qiáng),支持負(fù)載均衡和郵件服務(wù)器等開發(fā)應(yīng)用系統(tǒng)常用的功能。
三、安裝tomcat
下載tomcat所需軟件
安裝tomcat需要系統(tǒng)java環(huán)境1.8版本以上,centos 7默認(rèn)就已經(jīng)支持java環(huán)境1.8版本,由于現(xiàn)在大部分使用還是centos 6的系統(tǒng),,由于本人采用的centos 7系統(tǒng),所以首先需要卸載jdk環(huán)境。
[root@localhost ~]# rpm -qa | grep jdk //查詢本機(jī)默認(rèn)jdk環(huán)境java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64copy-jdk-configs-3.3-2.el7.noarchjava-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64[root@localhost ~]# rpm -e java-1.8.0-openjdk-headless --nodeps[root@localhost ~]# rpm -e java-1.7.0-openjdk-headless --nodeps //將原本的jdk-headless包卸載[root@localhost ~]# tar zxf jdk-8u211-linux-x64.tar.gz -c /usr/local //將提供的jdk軟件包進(jìn)行解壓[root@localhost ~]# vim /etc/profile //編寫系統(tǒng)環(huán)境變量,在末尾添加以下內(nèi)容 export java_home=/usr/local/jdk1.8.0_211 //指定java安裝路徑 export jre_home=/usr/local/jdk1.8.0_211/jre //java運(yùn)行環(huán)境 export classpath=$java_home/lib/tools.jar:$java_home/lib/dt.jar //聲明java中的類,類就是一類事務(wù)的屬性 export path=$java_home/bin/:$jre_home/bin/:$path //將定義的變量添加到系統(tǒng)環(huán)境變量中[root@localhost ~]# source /etc/profile //重新加載系統(tǒng)環(huán)境變量文件[root@localhost ~]# java -version //查詢支持的java版本信息java version 1.8.0_211 //符合要求java(tm) se runtime environment (build 1.8.0_211-b12)java hotspot(tm) 64-bit server vm (build 25.211-b12, mixed mode)[root@localhost ~]# tar zxf apache-tomcat-8.5.35.tar.gz [root@localhost ~]# mv apache-tomcat-8.5.35 /usr/loca
上一個(gè):華碩主板保修,華碩主板一般是幾年的保修期限
下一個(gè):老人離婚子女該如何贍養(yǎng)老人

無線超聲波液位計(jì)工作原理
古樹熟茶的幾點(diǎn)質(zhì)疑
在線濁度計(jì)/在線式濁度儀
infolytica公司生產(chǎn)的電機(jī)馬達(dá)有哪些優(yōu)點(diǎn)
游戲本玩吃雞需要加速器嗎(游戲筆記本吃雞)
電腦藍(lán)屏代碼0x000000ed的解決方法(電腦藍(lán)屏代碼0x0000001e)
鋼管腳手架碗扣試驗(yàn)機(jī)需要用到的試驗(yàn)工裝匯總
實(shí)事求是的做好金屬管浮子流量計(jì)的生產(chǎn)和銷售
刑法非法持有毒品具體構(gòu)成要件
違法建筑是否有居住權(quán)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos