這個簡單的web伺服器包含三個類
httpserver
request
response
在應用程式的入口點,也就是靜态main函數中,建立一個httpserver執行個體,然後調用其await()方法。顧名思義,await方法會在制定的端口上等待http請求,并對其進行處理,然後發送相應的消息回用戶端。在接收到指令之前,它會一直保持等待的狀态。
httpserver類
這個簡單的web伺服器,可以處理指定目錄中的靜态資源請求;用web_root表示制定的目錄
這裡是指目前目錄下的webroot檔案夾下面的資源。
我們通過在遊覽器中輸入這樣的内容,進行資源的請求:
<a href="http://127.0.0.1:8080/index.html">http://127.0.0.1:8080/index.html</a>
request類
request類表示一個http請求,可以傳遞inputstream對象來建立request對象,調用inputstream對象的read進行http請求資料的讀取。
request類最重要的兩個函數是parse和parseuri;parse()方法會調用私有方法parseuri來解析http請求的uri,初次之外,并沒有做太多的工作。parseuri會将解析的uri存儲在變量uri中。
get /index.html http/1.1
parse()方法從傳入的request對象的inputstream對象中讀取整個位元組流,并且将位元組數組存入緩沖區。然後用緩存區的數組初始化stringbuffer對象request。 這樣再解析stringbuffer就可以解析到uri。
*response類
response類表示http相應。其定義如下
使用outputstream和request來初始化reponse,response比較簡單,得到request的uri,然後讀取對應的file,如果file存在,則将file中的資料讀取到緩存中,并且發送給遊覽器;如果file不存在,那麼就發送
錯誤資訊給遊覽器。
我們在eclipse中将代碼跑起來,在遊覽器中輸入

<a href="http://127.0.0.1:8080/index.php">http://127.0.0.1:8080/index.php</a>
一個簡單的額web伺服器就跑起來了!