為什麼要有tomcat?

首先想想,假如沒有tomcat,那麼我們該如何實現一個web應用的部署呢?

如果沒有tomcat幫忙,我們的web應用首先需要寫一個主類和main函數,然後運行這個main函數,這個函數的內部需要監聽埠(如8080),然後需要解析HTTP協議,接著去分析一個http請求,看看web路徑是否匹配(如http:localhost:8080/myWeb中的myWeb),再看看請求的資源(是靜態資源還是調用方法),如果是調用方法,那麼還要去找到相應該方法所在的類,再通過類載入器去實例化這個Servlet(為什麼要通過反射?因為是事先不知道要實例化哪個類),實例化之後再根據反射去調用對應的方法,然後返回處理結果,main函數最後要通過socket將數據返回給客戶端。

想想都可怕,而其實一開始沒有tomcat這種容器的時候也確實是這樣做的。

tomcat的誕生就是為了解決這個問題,它負責監聽埠號,負責解析http協議,負責載入和實例化一個Servlet,負責通過反射調用方法,負責將結果響應回去,而我們開發者從此只需要專註實現servlet方法就行了

回答完畢。

推薦閱讀:

相关文章