在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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Location: https: //www.zmynmublwnt.cn -表示重定向的地址,該頭和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=https: //www.zmynmublwnt.cn --表示定時刷新 Content-Disposition: attachment; filename=aaa.zip --表示告訴瀏覽器以下載方式打開資源(下載文件時用到) Transfer-Encoding: chunked Set-Cookie:SS=Q0=5Lb_nQ; path=/search --表示服務器發送給瀏覽器的cookie信息(會話管理用到) Expires: - 1 --表示通知瀏覽器不進行緩存 Cache-Control: no-cache Pragma: no-cache Connection: close/Keep-Alive --表示服務器和瀏覽器的連接狀態。close:關閉連接 keep-alive:保存連接 |
以上這篇淺談servlet中的request與response就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。