| input = socket.getinputstream(); output = socket.getoutputstream(); await于是就創建一個request對象并調用它的 parse 方法來解析原始的http請求信息。
// create request object and parse 接下來,await 方法創建了一個response 對象,使用setrequest方法并調用它的sendstaticresource 方法。 // create response object 最后,await關閉該socket。調用request的geturi方法來檢查http請求的uri是否是一個shutdown命令。如果是,shutdown變量被設置為true,程序退出while循環。 // close the socket request類 request類代表一個http請求。socket處理客戶端的通訊,將返回一個inputstream對象,通過傳遞該對象,可以構造一個request類的實例。通過調用inputstream 對象的read方法來獲得這個http請求的原始數據(raw data)。 request 有兩個公共方法:parse 和 geturi。parse方法解釋http請求的原始數據。它不做很多事情----它能夠利用的唯一信息只是http請求的uri ,這個uri是從私有方法 parseuri.得到的。parseuri 方法保存uri 到uri 變量中,然后調用公共方法geturi來返回一個http請求的uri。 為了理解parse 和 parseuri 方法是如何工作的,需要知道http請求的內部結構。這個結構是在rfc2616文檔中定義的。 一個http請求包含三個部分: 請求行(request line) get /index.html http/1.1 //這是一個請求行 下面的listing 1.2.顯示了parse方法的用法: listing 1.2. the request class' parse method public void parse() { try { for (int j=0; j<i; j++) { system.out.print(request.tostring()); |
新聞熱點
疑難解答