三 手寫迷你版Tomcat minicat3 0

2021-10-08 18:45:05 字數 2530 閱讀 7014

minicat 1.0我們實現了返回固定的字串"hello minicat"。

minicat 2.0封裝request和response物件,返回html靜態資源檔案。

minicat 3.0需求:

請求servlet動態資源

思路分析:

想實現servlet動態資源請求,就需要將servlet初始化在容器中(map)。

如何初始化呢?

配置web.xml之前,需要先自定義乙個demoservlet,需要有常見的doget和dopost方法。

進一步想平時寫servlet都需要繼承httpservlet抽象類,所以先自己定義乙個httpservlet抽象類,以便後續做容器初始化。

先定義servlet介面

public

inte***ce

servlet

httpservlet實現servlet

}}接下來就是常規的demoservlet編寫了

}demoservlet準備完成後,就可以配置web.xml了

<?xml version="1.0" encoding="utf-8" ?>

>

>

>

demoservlet-name

>

>

server.demoservletservlet-class

>

servlet

>

>

>

demoservlet-name

>

>

/demourl-pattern

>

>

>

public

void

start()

throws exception

/** * 載入解析web.xml,初始化servlet

*/private

void

loadservlet()

}catch

(documentexception

| classnotfoundexception e)

catch

(illegalacces***ception e)

catch

(instantiationexception e)

}

眼尖的同學估計看到了,這一步驟其實就是在loadservlet()方法中實現的

新增map容器

private map

servletmap =

newhashmap

();// 偽**

private

void

loadservlet()

已經初始化map容器了,那就需要在start方法中引用,start方法完整**如下

/**

* minicat啟動需要初始化展開的一些操作

*/public

void

start()

throws exception

// minicat 2.0 返回靜態資源html

// while (true)

// minicat 3.0 返回動態資源servlet

while

(true

)else

socket.

close();}}

效果演示

手寫實現乙個迷你版的Tomcat

tomcat,這只3腳貓,大學的時候就認識了,直到現在工作中,也常會和它打交道。這是乙隻神奇的貓,今天讓我來抽象你,實現你!tomcat是非常流行的web server,它還是乙個滿足servlet規範的容器。那麼想一想,tomcat和我們的web應用是什麼關係?從感性上來說,我們一般需要把web應...

實現乙個迷你版的vue

專案位址 其實vue1和vue2最大的區別就是vue2多了乙個虛擬dom,其他的區別都是很小的。所以理解了vue1的原始碼,就相當於理解了vue2,中間差了乙個虛擬dom的diff演算法 先來科普一下mvvm的概念及原理 mini vuex 全域性方法 繼承minivue 產生乙個新的子類建構函式 ...

Photoshop7 0 簡體中文迷你版

photoshop7.0 是影象處理軟體中的大哥大!我把photoshop7.0的幫助檔案 範例檔案 預設效果 拼寫檢查 網頁輸出等平時不大用得上的東西精減後做成了這個迷你版,希望能給大家帶來方便!photoshop7.0,是adobe公司photoshop系列產品中的王牌產品,它在圖形影象處理領域...