1.學會tomcat的原理
答:Tomcat是一個JSP/Servlet容器,是一個在Java項目與JVM之間的中間容器。其作爲Servlet容器,有三種工作模式:獨立的Servlet容器、進程內的Servlet容器和進程外的Servlet容器。
Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器。處理一個http請求如下:
(1) 請求被髮送到本機端口8080,被在那裏偵聽的Coyote HTTP/1.1 Connector獲得
(2)Connector把該請求交給它所在的Service的Engine來處理,並等待來自Engine的迴應
(3)Engine獲得請求localhost/wsota/wsota_index.jsp,匹配它所擁有的所有虛擬主機Host
(4)Engine匹配到名爲localhost的Host(即使匹配不到也把請求交給該Host處理,因爲該Host被定義爲該Engine的默認主機)
(5)localhost Host獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有Context
(6)Host匹配到路徑爲/wsota的Context(如果匹配不到就把該請求交給路徑名爲”"的Context去處理)
(7)path=”/wsota”的Context獲得請求/wsota_index.jsp,在它的mapping table中尋找對應的servlet
(8)Context匹配到URL PATTERN爲*.jsp的servlet,對應於JspServlet類
(9) 構造HttpServletRequest對象和HttpServletResponse對象,作爲參數調用JspServlet的doGet或doPost方法
(10)Context把執行完了之後的HttpServletResponse對象返回給Host
(11)Host把HttpServletResponse對象返回給Engine
(12)Engine把HttpServletResponse對象返回給Connector
(13)Connector把HttpServletResponse對象返回給客戶browser
2.理解tomcat的請求路徑問題
答:把打包生成的war文件放到tomcat的webapp文件夾下,然後運行bin文件夾下的startup.bat文件,在瀏覽器可以看到本地網頁:
通過訪問tomcat的webapps下的文件路徑下的index.jsp訪問網頁。前面的8080可以通過server.xml的connector標籤來改變端口。如果直接用http://localhost是因爲localhost是一個域名,瀏覽器可以解析出來。
如果不想加項目名想訪問的話,直接放到ROOT文件夾即可。可以在hosts文件中看到127.0.0.1和localhost一致。用下面的語句可以方便一點:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
3.學會tomcat與idea整合
答:把文件放出去到tomcat中運行比較麻煩,這裏可以直接把tomcat和idea進行整合。現在設置裏面下載tomcat,如下:
然後找到下載的tomcat進行配置:
然後啓動tomcat,會把項目發佈到tomcat裏面去,出現下面的信息表示成功:
4.學會使用idea實現tomcat的熱部署
答:上一個題目的操作其實是一個靜態部署,下面可以進行熱部署,找到bulid工具,然後下面一個就是熱部署:
然後把靜態部署去掉,只剩下熱部署,如下:
然後我們的熱部署結果成功了:
熱部署其實就是靜態部署,不必每次運行,直接可以隨時改隨時看。