servlet中的request與response,servletrequest
在b/s架構中,有request瀏覽器的請求,也有response的伺服器反饋。底層是tcp/ip協議,應用程式層是http協議。在tomcat伺服器中,版本6使用的http1.1版本協議。伺服器發出request請求,在請求中有可能載入get和post請求(doget請求,是放在URL中可以使用getparmeter進行解析,因為tomcat把每一個網頁請求看做一個對象,所以是物件導向(HttpServletRequest)進行封裝,並有doget和dopost進行 對應的解析。主要的API如下:
核心的API:
請求行:
request.getMethod(); 請求方式
request.getRequetURI() / request.getRequetURL() 請求資源
request.getProtocol() 請求http協議版本
要求標頭:
request.getHeader("名稱") 根據要求標頭擷取請求值
request.getHeaderNames() 擷取所有的要求標頭名稱
實體內容:
request.getInputStream()擷取實體內容資料
在request請求中牽涉到編碼問題,setenconding 可以,位元組碼強制轉換也可以,xml配置也可以。
對於,httpservletresponse伺服器反饋,也要牽涉到編碼問題,可以在回應標頭中進行聲明。其他的也可以位元組碼強制轉換(好像socket編程,什麼base64加密啥的記憶尤新呐)。瀏覽器的各種反饋碼,比如404,500等也得到了大致學習。
常見的回應標頭 (response)
Location: http://www.it315.org/index.jsp -表示重新導向的地址,該頭和302的狀態代碼一起使用。Server:apache tomcat ---表示伺服器的類型Content-Encoding: gzip -- 表示伺服器發送給瀏覽器的資料壓縮類型Content-Length: 80 --表示伺服器發送給瀏覽器的資料長度Content-Language: zh-cn --表示伺服器支援的語言Content-Type: text/html; charset=GB2312 --表示伺服器發送給瀏覽器的資料類型及內容編碼Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --表示伺服器資源的最後修改時間Refresh: 1;url=http://www.it315.org --表示定時重新整理Content-Disposition: attachment; filename=aaa.zip --表示告訴瀏覽器以下載方式開啟資源(下載檔案時用到)Transfer-Encoding: chunkedSet-Cookie:SS=Q0=5Lb_nQ; path=/search --表示伺服器發送給瀏覽器的cookie資訊(會話管理用到)Expires: -1 --表示通知瀏覽器不進行緩衝Cache-Control: no-cachePragma: no-cacheConnection: close/Keep-Alive --表示伺服器和瀏覽器的串連狀態。close:關閉串連 keep-alive:儲存串連