關於Tomcat的13道面試題,你能答對幾個?
Tomcat伺服器是一個免費的開放原始碼的Web 應用伺服器,Tomcat是Apache軟體基金會(Apache Software Foundation)的Jakarta 專案中的一個核心專案,它早期的名稱為catalina,後來由Apache、Sun 和其他一些公司及個人共同開發而成,並更名為Tomcat。
Tomcat是一個小型的輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP程式的首選,因為Tomcat技術先進、效能穩定,成為目前比較流行的Web應用伺服器。面試中,tomcat也往往會涉及到。
今天 陝西優就業小編就給大家分享一下相關面試題。
推薦閱讀:
【技術乾貨】 http://blog.itpub.net/69902581/viewspace-2672371/
一、什麼是Tomcat?
Tomcat簡單的說就是一個執行JAVA的網路伺服器,底層是Socket的一個程式,它也是JSP和Serlvet的一個容器。
二、tomcat結構目錄有哪些?
①bin:啟動和關閉tomcat的bat檔案。
②conf:配置檔案。
③server.xml該檔案用於配置server相關的資訊,比如tomcat啟動的埠號,配置主機(Host)。
④web.xml檔案配置與web應用(web應用相當於一個web站點)
⑤tomcat-user.xml配置使用者名稱密碼和相關許可權。
⑥lib:該目錄放置執行tomcat執行需要的jar包。
⑦logs:存放日誌,當我們需要檢視日誌的時候,可以查詢資訊。
⑧webapps:放置我們的web應用。
⑨work工作目錄:該目錄用於存放jsp被訪問後生成對應的server檔案和.class檔案。
三、如何配置Tomcat虛擬目錄?
1、在server.xml中的節點下新增如下程式碼。path表示的是訪問時輸入的web專案名,docBase表示的是站點目錄的絕對路徑。
2、進入到confCatalinalocalhost檔案下,建立一個xml檔案,該檔案的名字就是站點的名字。
四、Tomcat體系結構是怎樣的?
瀏覽器 -> tomcat server-> service ->connector -> engine(引擎) -> host(主機) -> web應用。
五、Web請求在Tomcat請求中的請求流程是怎麼樣的?
①瀏覽器輸入URL地址;
②查詢本機hosts檔案尋找IP;
③查詢DNS伺服器尋找IP;
④向該IP傳送Http請求;
⑤Tomcat容器解析主機名;
⑥Tomcat容器解析Web應用;
⑦Tomcat容器解析資源名稱;
⑧Tomcat容器獲取資源;
⑨Tomcat響應瀏覽器。
六、如何在tomcat叢集中實現Session共享
Apache叢集實現Tomcat的Session共享配置其實很簡單,在Tomcat自帶的文件中有詳細的說明( /docs/cluster-howto.html ),只不過是英語的,所以聯合下面根據說下怎麼配置吧:
1、既然是叢集肯定要多準備幾個Tomcat來模擬,比如分別為Tomcat01、Tomcat02、Tomcat03。
如果各Tomcat程式放在不同的機器上,那麼就不會有埠的衝突。如果是放在同一臺機器上的話,那就簡單改幾個埠,防止埠占用造成的衝突。開啟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需要修改,至於修改成什麼樣子,看你自己了,只要不出現埠衝突就可以了,要保證各個Tomcat例項間沒有埠衝突。
七、tomcat有哪些Connector?
Tomcat的Web伺服器聯結器支援兩種協議:AJP和HTTP,它們均定義了以二進位制格式在Web伺服器和Tomcat之間進行資料傳輸,並提供相應的控制命令。
AJP(Apache JServ Protocol)協議:目前正在使用的AJP協議的版本是透過JK和JK2聯結器提供支援的AJP13,它基於二進位制的格式在Web伺服器和Tomcat之間傳輸資料,而此前的版本AJP10和AJP11則使用文字格式傳輸資料。
HTTP協議:誠如其名稱所表示,其是使用HTTP或HTTPS協議在Web伺服器和Tomcat之間建立通訊,此時,Tomcat就是一個完全功能的HTTP伺服器,它需要監聽在某埠上以接收來自於商前伺服器的請求。
八、tomcat的Valve的作用是什麼?
Valve類似於過濾器,它可以工作於Engine和Host/Context之間、Host和Context之間以及Context和Web應用程式的某資源之間。一個容器內可以建立多個Valve,而且Valve定義的次序也決定了它們生效的次序。
九、Webserver和 Application Server的區別是什麼?
最大區別,WebServer 一般僅僅指Web(如servlet,jsp)的應用伺服器,ApplicationServer不僅可以是Web,還可以是Ejb等其它的應用伺服器。
web server可以是application server的一部分,也可以是單獨存在。
十 、Tomcat的預設埠是多少,怎麼修改?
1)找到Tomcat目錄下的conf資料夾;
2)進入conf資料夾裡面找到server.xml檔案;
3)開啟server.xml檔案;
4)在server.xml檔案裡面找到下列資訊;
port=“8080”改成你想要的埠
十一 、Tomcat 有幾種部署方式?
1)直接把Web專案放在webapps下,Tomcat會自動將其部署
2)在server.xml檔案上配置節點,設定相關的屬性即可
3)透過Catalina來進行配置:進入到conf\Catalina\localhost檔案下,建立一個xml檔案,該檔案的名字就是站點的名字。編寫XML的方式來進行設定。
十二、tomcat容器是如何建立servlet類例項?用到了什麼原理?
當容器啟動時,會讀取在webapps 目錄下所有的web應用中的web.xml 檔案,然後對xml檔案進行解析,並讀取servlet註冊資訊。然後,將每個應用中註冊的servlet類都進行載入,並透過反射的方式例項化。(有時候也是在第一次請求時例項化)在servlet註冊時加上如果為正數,則在一開始就例項化,如果不寫或為負數,則第一次請求例項化。
十三、Tomcat頂層架構小結
(1)Tomcat中只有一個Server,一個Server可以有多個Service,一個Service可以有多個Connector和一個Container;
(2) Server掌管著整個Tomcat的生死大權;
(4)Service是對外提供服務的;
(5)Connector用於接受請求並將請求封裝成Request和Response來具體處理;
(6)Container用於封裝和管理Servlet,以及具體處理request請求;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2673221/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 75 道 BAJT 高階 Java 面試題,你能答上幾道?Java面試題
- 75 道 BAJT 中高階 Java 面試題,你能答上幾道?Java面試題
- 測試一下:HBase 40道測試題,你能答對幾道
- 10道網路安全基礎面試題,你答對了幾道?面試題
- 面試時這麼問你Spring Boot,你能答對幾個?面試Spring Boot
- js非同步程式設計面試題你能答上來幾道JS非同步程式設計面試題
- 網易JAVA面試你能答對幾題?(文末附答案解析)Java面試
- 7個關於"this"面試題,你知道幾個?面試題
- 2018美團前端面試題,兩年經驗,你能答對幾道?前端面試題
- 大廠面試常見的幾道SQL題,看你能答嗎?面試SQL
- 精選的這19道C/C+面試題,你能答對多少呢?面試題
- 6道常見的python面試題,你答對了嗎?Python面試題
- promise執行順序面試題令我頭禿,你能作對幾道Promise面試題
- 面試現場簡單幾道java演算法題, 你能寫出幾道?面試Java演算法
- 10道Linux常見面試題,你知道幾個?Linux面試題
- 從一道沒人能答對的面試題聊聊Java的值傳遞面試題Java
- 一道面試題牽出12個前端硬核知識點,你能答出幾個?面試題前端
- 【Java】幾道讓你拿offer的面試題Java面試題
- 這些js原型及原型鏈面試題你能做對幾道JS原型面試題
- 關於PHP字串的一道面試題PHP字串面試題
- 27道Redis精選面試題,你會做幾題?Redis面試題
- 面試中關於nginx的問答面試Nginx
- 週三面試Python開發,這幾道Python面試題差點答錯,Python面試題No7Python面試題
- Handler相關面試題你答對多少?怎樣清晰表達拿下面試官?面試題
- 關於Python爬蟲面試50道題Python爬蟲面試
- 談談OKHttp的幾道面試題HTTP面試題
- 8個最常見卻最容易出錯的演算法題,面試幾乎都會考到,來測試下你能答出幾道?演算法面試
- 常見Linux運維面試題,你答對了嗎?Linux運維面試題
- 關於 Promise 的 9 個面試題Promise面試題
- 幾道和雜湊(雜湊)表有關的面試題面試題
- 資料庫面試簡答、30道高頻面試題資料庫面試題
- 最全面的阿里多執行緒面試題,你能回答幾個?阿里執行緒面試題
- 【譽天教育】這幾道linux基礎選擇題你答對了嗎?Linux
- 2019 全國程式設計師高考卷曝光,你能答對幾題?程式設計師
- 如果這10道關於資料庫的測試題你都會,面試必過!資料庫面試
- 關聯式資料庫SQL面試排名前100道問答題資料庫SQL面試
- 關於Integer面試的一個問題面試
- 邦芒面試:面試中應避免以下幾種答題方式面試