WEB容器工作原理
市面上的java web容器常見的有兩種,一種是jetty,一種是tomcat。要想用java實現web容器,首先要知道其工作原理。
以Tomcat為例,我們通常開發出來的war包,會放在tomcat中的webapp下面,tomcat會自動解壓war包。解壓完成後,其實就是一個servlet應用!換句話說,我們寫的war包中的servlet應用只需要關注業務層面的,處理http等網路連結的事情交給都交給tomcat了, 一個請求到達tomcat的流程如下圖:
整體結構大致如下
1、寫一個處理網路請求連線請求實體類、一個和網路請求連線響應實體類
2、寫一個容器主類,包括啟動監聽埠等
3、寫容器的介面,以及註解相關的url附加類便於讓應用servlet
4、寫一個app測試servlet,類似tomcat中跑的war包
如果你監聽的埠是8888,那麼就可以訪問localhost:8888/app,就可以測試了
java寫web容器,其實沒什麼難的,簡單的寫一下了解一下原理即可,真實工作中是不建議自己寫的,有很多問題會考慮不周的。關於web容器網上也有很多例子,可以借鑑瞭解一下。祝你學習愉快。
WEB容器工作原理
市面上的java web容器常見的有兩種,一種是jetty,一種是tomcat。要想用java實現web容器,首先要知道其工作原理。
以Tomcat為例,我們通常開發出來的war包,會放在tomcat中的webapp下面,tomcat會自動解壓war包。解壓完成後,其實就是一個servlet應用!換句話說,我們寫的war包中的servlet應用只需要關注業務層面的,處理http等網路連結的事情交給都交給tomcat了, 一個請求到達tomcat的流程如下圖:
手寫一個小的web容器整體結構大致如下
1、寫一個處理網路請求連線請求實體類、一個和網路請求連線響應實體類
2、寫一個容器主類,包括啟動監聽埠等
3、寫容器的介面,以及註解相關的url附加類便於讓應用servlet
4、寫一個app測試servlet,類似tomcat中跑的war包
如果你監聽的埠是8888,那麼就可以訪問localhost:8888/app,就可以測試了
結語java寫web容器,其實沒什麼難的,簡單的寫一下了解一下原理即可,真實工作中是不建議自己寫的,有很多問題會考慮不周的。關於web容器網上也有很多例子,可以借鑑瞭解一下。祝你學習愉快。