1.servlet 的響應物件 respone ==>servletrespone ==》不支援http 協議 ==》子類 httpservletrespone
2.httpservletresponse 1.這個物件是由tomcat容器來建立 ==>在請求servlet時候,tomcat會把這兩個物件建立出來,並給service 設定為引數
2.所有的servlet 都會有一組請求與響應的物件 httpservletrequest httpservletresponse
3.httpservletresponse可以來操作http的響應頭,響應體 響應行
3.響應行: 響應行包含 協議(以及協議的版本) ==狀態秒 ,描述資訊
404路徑找不到
302 重定向
304 資料快取
500 伺服器發生錯誤
200 請求成功
resp.
senderror
(404
,"ggggg"
);
1.設定其狀態碼的方法 setstatus(「傳輸傳遞的是狀態碼」)
resp.senderror(「第乙個引數傳的是狀態,碼」,「提示資訊」);
2.httpservletresponse 來操作器響應頭
壓縮流 gzipoutputstream
記憶體流:bytearrayoutputstream
//設定伺服器的壓縮格式
resp.setheader(「content-encoding」,「gzip」);
//設定文字的長度
resp.setheader(「content-length」,b.length+"");
//規定其為設定陣列
resp.setheader(「accept」,「bytes」);
//不載入瀏覽器快取中的資料
resp.setheader(「cache-control」,「no-cache」); ==>壓縮的時候一般對於的大文字 ,小文字看不出效果
3.瀏覽器顯示本地 響應的內容格式: content-type 1.text/html 檔案 jpg gif ==>把寫入到瀏覽器
;servletcontext 這個表示伺服器的上下物件 ==> 它的生命週期是隨著tomcat的建立而建立 隨著伺服器的銷毀而銷毀
1.作用是獲取web的全域性配置檔案 2.以鍵值對的形式來進行頁面引數的傳遞
2. resp.setheader(「content-type」,「jpg」); 設定響應頭的格式
inputstream is= this.getservletcontext().getresourceasstream("/web-inf/1.jpg"); ==>獲取是發布到服務的的位址 返回值是乙個輸入流物件
返回的是resp.getoutputstream() 輸入出流物件 > 位元組 read()>返回的讀取的資料 read(b) 讀取是有效的位元組長度
5.響應體:就是在網頁上寫內容 resp.getoutputstream() 主要是用於來寫位元組 resp.getwriter() 主要用於寫字元 ==>兩個不要一起用(容易產生錯誤)
byteoutputstream bos =
newbyteoutputstream()
; gzipoutputstream gzi =
newgzipoutputstream
(bos)
;byte
b = bos.
tobytearray()
; system.out.
println
( b.length)
; resp.
setheader
("content-encoding"
,"gzip");
resp.
setheader
("content-length"
,b.length+"")
; resp.
setheader
("accept"
,"bytes");
resp.
setheader
("cache-control"
,"nocache"
);
6.重定向==》跳轉到另乙個介面 resp.sendredirect(「index.jsp」); 引數是傳遞的是需要跳轉的介面 重定向:相當於兩次請求
==>間隔多長時間在跳轉到某個介面 ==> resp.setheader(「refresh」,「2;index.jsp」); ==> 第二個引數是 「時間(秒);重定向的介面」
httpservletrequest 一般操作請求行 與請求頭 請求體
請求行:請求的位址, 請求的埠號 請求的引數 請求方法的名稱,請求的訪問根目錄(如果專案與根目錄一樣,訪問就是空的) …
req.getmethod(); ==>請求方法
req.getcontextpath(); 請求的跟路徑
req.getquerystring(); 請求拼接的引數
req.getrequesturi(); 請求的uri位址
req.getrequesturl() 請求的url位址
獲取網路資源 req.getremoteuser(); 獲取到客戶端的使用者名稱
req.getremoteaddr(); 獲取到客戶端的位址
req.getremotehost() 獲取其ip位址
req.getlocaladdr() ==>獲取伺服器的位址
req.getlocalname(); ==>伺服器ip
req.getlocalport(); 伺服器端口號
req.getservletpath(); 獲取的訪問路徑
req.getservername(); 伺服器的ip位址
req.getserverport(); 伺服器端口號
重要方法 : req.getparameter(「uname」); 根據name值獲取單個 req.getparametervalues(「hobbey」); 根據name值獲取一組
設定編碼格式 : resp.setcontenttype(「text/html;charset=utf-8」); ==>到tomcat裡配置 uriencoding=「utf-8」
resp.setcharacterencoding(「utf-8」);
req.setcharacterencoding(「utf-8」);
iOS 高階 第十三天 0414
畫線 圓和圓弧的第二種方法 5中方法畫矩形 第二種畫圖形的方法 之前做的方法都是先把要畫的元素快取到圖形上下文cgconteextref中去,現在第二種方法也快取到cgpath中去.其實圖形上下文本質也是在內部建立乙個cgpath,圖形上下文把所有的元素先快取到cgpath中去,然後cgpath再快...
第十三天 練兵
問 昨天您講的很驚心動魄。這樣快節奏的配合確實非常完美,很羨慕。但要形成這樣的結果必須我們之間配合需要非常流暢,我們有什麼方法可以促成這樣的氛圍?答 練兵。如果一開始就進入業務系統功能的設計開發,業務組長對業務還沒有很深的吃透,這樣倉促上陣功能不但連上一版不如,而且為了補課,軟體不斷修改,什麼都亂了...
2020 7 18第十三天
1.學習了static關鍵字 靜態變數,靜態方法以及靜態模組 1 public class vardemo 9 1 public class staticblockdemo 5public staticblockdemo 8public static void main string args 12...