您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“關(guān)于Tomcat的面試題有哪些”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“關(guān)于Tomcat的面試題有哪些”吧!
一、什么是Tomcat?
Tomcat簡(jiǎn)單的說(shuō)就是一個(gè)運(yùn)行JAVA的網(wǎng)絡(luò)服務(wù)器,底層是Socket的一個(gè)程序,它也是JSP和Serlvet的一個(gè)容器。
二、tomcat結(jié)構(gòu)目錄有哪些?
①bin:?jiǎn)?dòng)和關(guān)閉tomcat的bat文件。
②conf:配置文件。
③server.xml該文件用于配置server相關(guān)的信息,比如tomcat啟動(dòng)的端口號(hào),配置主機(jī)(Host)。
④web.xml文件配置與web應(yīng)用(web應(yīng)用相當(dāng)于一個(gè)web站點(diǎn))
⑤tomcat-user.xml配置用戶(hù)名密碼和相關(guān)權(quán)限。
⑥lib:該目錄放置運(yùn)行tomcat運(yùn)行需要的jar包。
⑦logs:存放日志,當(dāng)我們需要查看日志的時(shí)候,可以查詢(xún)信息。
⑧webapps:放置我們的web應(yīng)用。
⑨work工作目錄:該目錄用于存放jsp被訪問(wèn)后生成對(duì)應(yīng)的server文件和.class文件。
三、如何配置Tomcat虛擬目錄?
1、在server.xml中的節(jié)點(diǎn)下添加如下代碼。path表示的是訪問(wèn)時(shí)輸入的web項(xiàng)目名,docBase表示的是站點(diǎn)目錄的絕對(duì)路徑。
2、進(jìn)入到confCatalinalocalhost文件下,創(chuàng)建一個(gè)xml文件,該文件的名字就是站點(diǎn)的名字。
四、Tomcat體系結(jié)構(gòu)是怎樣的?
瀏覽器 -> tomcat server-> service ->connector -> engine(引擎) -> host(主機(jī)) -> web應(yīng)用。
五、Web請(qǐng)求在Tomcat請(qǐng)求中的請(qǐng)求流程是怎么樣的?
①瀏覽器輸入U(xiǎn)RL地址;
②查詢(xún)本機(jī)hosts文件尋找IP;
③查詢(xún)DNS服務(wù)器尋找IP;
④向該IP發(fā)送Http請(qǐng)求;
⑤Tomcat容器解析主機(jī)名;
⑥Tomcat容器解析Web應(yīng)用;
⑦Tomcat容器解析資源名稱(chēng);
⑧Tomcat容器獲取資源;
⑨Tomcat響應(yīng)瀏覽器。
六、如何在tomcat集群中實(shí)現(xiàn)Session共享
Apache集群實(shí)現(xiàn)Tomcat的Session共享配置其實(shí)很簡(jiǎn)單,在Tomcat自帶的文檔中有詳細(xì)的說(shuō)明( /docs/cluster-howto.html ),只不過(guò)是英語(yǔ)的,所以聯(lián)合下面根據(jù)說(shuō)下怎么配置吧:
1、既然是集群肯定要多準(zhǔn)備幾個(gè)Tomcat來(lái)模擬,比如分別為T(mén)omcat01、Tomcat02、Tomcat03。
如果各Tomcat程序放在不同的機(jī)器上,那么就不會(huì)有端口的沖突。如果是放在同一臺(tái)機(jī)器上的話,那就簡(jiǎn)單改幾個(gè)端口,防止端口占用造成的沖突。打開(kāi)conf文件夾中的server.xml文件,需要修改的端口有:
1、<Server port=“8015” shutdown=“SHUTDOWN”>
2、<Connector port=“8081” protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort=“8443” />
3、<Connector port=“8019” protocol=“AJP/1.3” redirectPort=“8443” />
以上port需要修改,至于修改成什么樣子,看你自己了,只要不出現(xiàn)端口沖突就可以了,要保證各個(gè)Tomcat實(shí)例間沒(méi)有端口沖突。
七、tomcat有哪些Connector?
Tomcat的Web服務(wù)器連接器支持兩種協(xié)議:AJP和HTTP,它們均定義了以二進(jìn)制格式在Web服務(wù)器和Tomcat之間進(jìn)行數(shù)據(jù)傳輸,并提供相應(yīng)的控制命令。
AJP(Apache JServ Protocol)協(xié)議:目前正在使用的AJP協(xié)議的版本是通過(guò)JK和JK2連接器提供支持的AJP13,它基于二進(jìn)制的格式在Web服務(wù)器和Tomcat之間傳輸數(shù)據(jù),而此前的版本AJP10和AJP11則使用文本格式傳輸數(shù)據(jù)。
HTTP協(xié)議:誠(chéng)如其名稱(chēng)所表示,其是使用HTTP或HTTPS協(xié)議在Web服務(wù)器和Tomcat之間建立通信,此時(shí),Tomcat就是一個(gè)完全功能的HTTP服務(wù)器,它需要監(jiān)聽(tīng)在某端口上以接收來(lái)自于商前服務(wù)器的請(qǐng)求。
八、tomcat的Valve的作用是什么?
Valve類(lèi)似于過(guò)濾器,它可以工作于Engine和Host/Context之間、Host和Context之間以及Context和Web應(yīng)用程序的某資源之間。一個(gè)容器內(nèi)可以建立多個(gè)Valve,而且Valve定義的次序也決定了它們生效的次序。
九、Webserver和 Application Server的區(qū)別是什么?
最大區(qū)別,WebServer 一般僅僅指Web(如servlet,jsp)的應(yīng)用服務(wù)器,ApplicationServer不僅可以是Web,還可以是Ejb等其它的應(yīng)用服務(wù)器。
web server可以是application server的一部分,也可以是單獨(dú)存在。
十 、Tomcat的缺省端口是多少,怎么修改?
1)找到Tomcat目錄下的conf文件夾;
2)進(jìn)入conf文件夾里面找到server.xml文件;
3)打開(kāi)server.xml文件;
4)在server.xml文件里面找到下列信息;
port=“8080”改成你想要的端口
十一 、Tomcat 有幾種部署方式?
1)直接把Web項(xiàng)目放在webapps下,Tomcat會(huì)自動(dòng)將其部署
2)在server.xml文件上配置節(jié)點(diǎn),設(shè)置相關(guān)的屬性即可
3)通過(guò)Catalina來(lái)進(jìn)行配置:進(jìn)入到conf\Catalina\localhost文件下,創(chuàng)建一個(gè)xml文件,該文件的名字就是站點(diǎn)的名字。編寫(xiě)XML的方式來(lái)進(jìn)行設(shè)置。
十二、tomcat容器是如何創(chuàng)建servlet類(lèi)實(shí)例?用到了什么原理?
當(dāng)容器啟動(dòng)時(shí),會(huì)讀取在webapps 目錄下所有的web應(yīng)用中的web.xml 文件,然后對(duì)xml文件進(jìn)行解析,并讀取servlet注冊(cè)信息。然后,將每個(gè)應(yīng)用中注冊(cè)的servlet類(lèi)都進(jìn)行加載,并通過(guò)反射的方式實(shí)例化。(有時(shí)候也是在第一次請(qǐng)求時(shí)實(shí)例化)在servlet注冊(cè)時(shí)加上如果為正數(shù),則在一開(kāi)始就實(shí)例化,如果不寫(xiě)或?yàn)樨?fù)數(shù),則第一次請(qǐng)求實(shí)例化。
十三、Tomcat頂層架構(gòu)小結(jié)
(1)Tomcat中只有一個(gè)Server,一個(gè)Server可以有多個(gè)Service,一個(gè)Service可以有多個(gè)Connector和一個(gè)Container;
(2) Server掌管著整個(gè)Tomcat的生死大權(quán);
(4)Service是對(duì)外提供服務(wù)的;
(5)Connector用于接受請(qǐng)求并將請(qǐng)求封裝成Request和Response來(lái)具體處理;
(6)Container用于封裝和管理Servlet,以及具體處理request請(qǐng)求;
到此,相信大家對(duì)“關(guān)于Tomcat的面試題有哪些”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。