在b/s架構(gòu)中,有request瀏覽器的請(qǐng)求,也有response的服務(wù)器反饋。底層是tcp/ip協(xié)議,應(yīng)用層是http協(xié)議。在tomcat服務(wù)器中,版本6使用的http1.1版本協(xié)議。服務(wù)器發(fā)出request請(qǐng)求,在請(qǐng)求中有可能加載get和post請(qǐng)求(doget請(qǐng)求,是放在URL中可以使用getparmeter進(jìn)行解析,因?yàn)閠omcat把每一個(gè)網(wǎng)頁(yè)請(qǐng)求看做一個(gè)對(duì)象,所以是面向?qū)ο螅℉ttpServletRequest)進(jìn)行封裝,并有doget和dopost進(jìn)行 對(duì)應(yīng)的解析。主要的API如下:
核心的API:
請(qǐng)求行:
request.getMethod(); 請(qǐng)求方式
request.getRequetURI() / request.getRequetURL() 請(qǐng)求資源
request.getProtocol() 請(qǐng)求http協(xié)議版本
請(qǐng)求頭:
request.getHeader("名稱(chēng)") 根據(jù)請(qǐng)求頭獲取請(qǐng)求值
request.getHeaderNames() 獲取所有的請(qǐng)求頭名稱(chēng)
實(shí)體內(nèi)容:
request.getInputStream()獲取實(shí)體內(nèi)容數(shù)據(jù)
在request請(qǐng)求中牽涉到編碼問(wèn)題,setenconding 可以,字節(jié)碼強(qiáng)制轉(zhuǎn)換也可以,xml配置也可以。
對(duì)于,httpservletresponse服務(wù)器反饋,也要牽涉到編碼問(wèn)題,可以在響應(yīng)頭中進(jìn)行聲明。其他的也可以字節(jié)碼強(qiáng)制轉(zhuǎn)換(好像socket編程,什么base64加密啥的記憶尤新吶)。瀏覽器的各種反饋碼,比如404,500等也得到了大致學(xué)習(xí)。
常見(jiàn)的響應(yīng)頭 (response)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Location: https: //www.ythuaji.com.cn -表示重定向的地址,該頭和302的狀態(tài)碼一起使用。 Server:apache tomcat ---表示服務(wù)器的類(lèi)型 Content-Encoding: gzip -- 表示服務(wù)器發(fā)送給瀏覽器的數(shù)據(jù)壓縮類(lèi)型 Content-Length: 80 --表示服務(wù)器發(fā)送給瀏覽器的數(shù)據(jù)長(zhǎng)度 Content-Language: zh-cn --表示服務(wù)器支持的語(yǔ)言 Content-Type: text/html; charset=GB2312 --表示服務(wù)器發(fā)送給瀏覽器的數(shù)據(jù)類(lèi)型及內(nèi)容編碼 Last-Modified: Tue, 11 Jul 2000 18 : 23 : 51 GMT --表示服務(wù)器資源的最后修改時(shí)間 Refresh: 1 ;url=https: //www.ythuaji.com.cn --表示定時(shí)刷新 Content-Disposition: attachment; filename=aaa.zip --表示告訴瀏覽器以下載方式打開(kāi)資源(下載文件時(shí)用到) Transfer-Encoding: chunked Set-Cookie:SS=Q0=5Lb_nQ; path=/search --表示服務(wù)器發(fā)送給瀏覽器的cookie信息(會(huì)話(huà)管理用到) Expires: - 1 --表示通知瀏覽器不進(jìn)行緩存 Cache-Control: no-cache Pragma: no-cache Connection: close/Keep-Alive --表示服務(wù)器和瀏覽器的連接狀態(tài)。close:關(guān)閉連接 keep-alive:保存連接 |
以上這篇淺談servlet中的request與response就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。