關於Tomcat的13道面試題,你能答對幾個?

陝西優就業發表於2020-01-14

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章