回覆列表
  • 1 # 使用者4000046274196

    首先你要學好http協議,不會這個就不要想那麼多,最基本的你要知道報文格式,因為返回訊息給瀏覽器的時候要用到。

    另外你得學好java基礎,這裡面涉及到執行緒池,反射,以及網路程式設計這些比較重要的東西。

    另外學完這些就可以簡單模擬一下了。

    這裡只說模擬,不說jsr規範。你需要一個監聽執行緒,這個執行緒負責監聽客戶請求,請求到達建立一個socket處理這個請求。

    servlet的初始化是採用懶載入方式,所以你會發現第一次訪問的時候會比較慢,因為它是在第一次訪問的時候才會初始化。

    當然,如果你在xml檔案裡指定了load on startup的話就會在專案啟動的時候載入,所以你現在模擬只需要直接啟動的時候載入就行了。

    另外,servlet是單例的,所以只能有一個例項。

    這裡也假設你只有一個Context,因為實際應用中不同Context之間的servlet是互不干涉的,所以如果你要區分Context的話還要做Context對映,這就太麻煩了。

    servlet的載入採用反射的方式,當然servlet該有的方法都得有。

    剩下的就是http的事了,該返回啥就返回啥。

    所以總結就是一句話,採用反射初始化servlet,呼叫service方法,響應請求。

    這裡面還有很多細節的東西,可以自己看tomcat原始碼。

  • 中秋節和大豐收的關聯?
  • 寬頻連線錯誤,史上最全寬頻連線錯誤解決辦法?