大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Servlet教程

HttpServletResponse詳解:封裝HTTP響應(yīng)消息

HttpServletResponse 接口繼承自 ServletResponse 接口,主要用于封裝 HTTP 響應(yīng)消息。由于 HTTP 響應(yīng)消息分為狀態(tài)行、響應(yīng)消息頭、消息體三部分。因此,在 HttpServletResponse 接口中定義了向客戶端發(fā)送響應(yīng)狀態(tài)碼、響應(yīng)消息頭、響應(yīng)消息體的方法,本節(jié)將針對(duì)這些方法進(jìn)行詳細(xì)講解。

發(fā)送狀態(tài)碼相關(guān)的方法

當(dāng) Servlet 向客戶端回送響應(yīng)消息時(shí),需要在響應(yīng)消息中設(shè)置狀態(tài)碼。因此,HttpServletResponse 接口定義了兩個(gè)發(fā)送狀態(tài)碼的方法。

1、setStatus(int status)方法

該方法用于設(shè)置 HTTP 響應(yīng)消息的狀態(tài)碼,并生成響應(yīng)狀態(tài)行。由于響應(yīng)狀態(tài)行中的狀態(tài)描述信息直接與狀態(tài)碼相關(guān),而 HTTP 版本由服務(wù)器確定,因此,只要通過(guò) setStatus(int status)方法設(shè)置了狀態(tài)碼,即可實(shí)現(xiàn)狀態(tài)行的發(fā)送。需要注意的是,在正常情況下,Web 服務(wù)器會(huì)默認(rèn)產(chǎn)生一個(gè)狀態(tài)碼為 200 的狀態(tài)行。

2、sendError(int sc)方法

該方法用于發(fā)送表示錯(cuò)誤信息的狀態(tài)碼。例如,404 狀態(tài)碼表示找不到客戶端請(qǐng)求的資源。response 對(duì)象提供了兩個(gè)重載的 sendError(int sc)方法,具體如下:

public void sendError(int code) throws java.io.IOException
public void sendError(int code,String message)throws java.io.IOException

在上面重載的兩個(gè)方法中,第一個(gè)方法只發(fā)送錯(cuò)誤信息的狀態(tài)碼,而第二個(gè)方法除了發(fā)送狀態(tài)碼以外,還可以增加一條用于提示說(shuō)明的文本信息,該文本信息將出現(xiàn)在發(fā)送給客戶端的正文內(nèi)容中。

發(fā)送響應(yīng)消息頭相關(guān)的方法

Servlet 向客戶端發(fā)送的響應(yīng)消息中包含響應(yīng)頭字段,由于 HTTP 協(xié)議的響應(yīng)頭字段有很多種,因此,HttpServletResponse 接口定義了一系列設(shè)置 HTTP 響應(yīng)頭字段的方法,如表 2 所示。

表 1 設(shè)置響應(yīng)消息頭字段的方法

方法聲明

功能描述

void addHeader(String name,String value)

這兩個(gè)方法都是用于設(shè)置 HTTP 協(xié)議的響應(yīng)頭字段。其中,參數(shù) name 用于指定響應(yīng)頭字段的名稱,參數(shù) value 用于指定響 應(yīng)頭字段的值。不同的是,addHeader() 方法可以增加同名的響應(yīng)頭字段,而 setHeader() 方法則會(huì)覆蓋同名的頭字段

void setHeader (String name,String value)

void addIntHeader(String name,int value)

void addIntHeader(String name,int value)這兩個(gè)方法專門用于設(shè)置包含整數(shù)值的響應(yīng)頭,避免了使用 addHeader() 與 setHeader() 方法時(shí)需要將 int 類型的設(shè)置值轉(zhuǎn)換為 String 類型的麻煩

void setIntHeader(String name, int value)

void setContentType(String type)

void setContentType(String type)該方法用于設(shè)置 Servlet 輸出內(nèi)容的 MIME 類型,對(duì)于 HTTP 協(xié)議來(lái)說(shuō),就是設(shè)置 Content-Type 響應(yīng)頭字段的值。例如,如果發(fā)送到客戶端的內(nèi)容是 jpeg 格式的圖像數(shù)據(jù),就需要將響應(yīng)頭字段的類型設(shè)置為 image/jpeg。需要注意的是,如果響應(yīng)的內(nèi)容為文本,setContentType() 方法還可以設(shè)置字符編碼,如 text/html;charset = UTF-8

void setLocale (Locale loc)

該方法用于設(shè)置響應(yīng)消息的本地化信息。對(duì) HTTP 來(lái)說(shuō),就是設(shè)置 Content-Language 響應(yīng)頭字段和 Content-Type 頭字段中的字符集編碼部分。需要注意的是,如果 HTTP 消息沒有設(shè)置 Content-Type 頭字段,則 setLocale() 方法設(shè)置的字符集編碼不會(huì)出現(xiàn)在 HTTP 消息的響應(yīng)頭中,如果調(diào)用 setCharacterEncoding() 或 setContentType() 方法指定了響應(yīng)內(nèi) 容的字符集編碼,則 setLocale() 方法將不再具有指定字符集編碼的功能

void setCharacterEncoding(String charset)

該方法用于設(shè)置輸出內(nèi)容使用的字符編碼,對(duì) HTTP 協(xié)議來(lái)說(shuō),就是設(shè)置 Content-Type 頭字段中的字符集編碼部分。如果沒有設(shè)置 Content-Type 頭字段,則 setCharacterEncoding 方法設(shè) 置的字符集編碼不會(huì)出現(xiàn)在 HTTP 消息的響應(yīng)頭中。setCharacterEncoding() 方法比 setContentType() 和 setLocale() 方法的優(yōu)先權(quán)高,它的設(shè)置結(jié)果將覆蓋 setContentType() 和 setLocale() 方法所設(shè)置的字符碼表

需要注意的是,在表 1 列舉的一系列方法中,addHeader()、setHeader()、addIntHeader()、setIntHeader() 方法都用于設(shè)置各種頭字段,而 setContetType()、setLoacale() 和 setCharacterEncoding() 方法用于設(shè)置字符編碼,這些設(shè)置字符編碼的方法可以有效解決亂碼問(wèn)題。

發(fā)送響應(yīng)消息體相關(guān)的方法

由于在 HTTP 響應(yīng)消息中,大量的數(shù)據(jù)都是通過(guò)響應(yīng)消息體傳遞的,因此,ServletResponse 遵循以 I/O 流傳遞大量數(shù)據(jù)的設(shè)計(jì)理念。在發(fā)送響應(yīng)消息體時(shí),定義了兩個(gè)與輸出流相關(guān)的方法。

1、getOutputStream() 方法

該方法所獲取的字節(jié)輸出流對(duì)象為 ServletOutputStream 類型。由于 ServletOutputStream是OutputStream 的子類,它可以直接輸出字節(jié)數(shù)組中的二進(jìn)制數(shù)據(jù)。因此,要想輸出二進(jìn)制格式的響應(yīng)正文,就需要使用 getOutputStream() 方法。

2、getWriter() 方法

該方法所獲取的字符輸出流對(duì)象為 PrintWriter 類型。由于 PrintWriter 類型的對(duì)象可以直接輸出字符文本內(nèi)容,因此,要想輸出內(nèi)容全部為字符文本的網(wǎng)頁(yè)文檔,則需要使用 getWriter() 方法。

注意:雖然 response 對(duì)象的 getOutputStream() 和 getWriter() 方法都可以發(fā)送響應(yīng)消息體,但是,它們之間互相排斥,不可同時(shí)使用,否則會(huì)發(fā)生 IllegalStateException 異常。

全部教程
主站蜘蛛池模板: 末成年一级在线看片 | 亚洲欧美中文字幕高清在线一 | 成人在线观看不卡 | 尤物久久99热国产综合 | 狠狠色噜噜狠狠狠狠97影音先锋 | 一本一本久久a久久精品综合 | 91伊人| 毛片3| www久久久久 | 再猛点深使劲爽日本免费视频 | 欧美成人免费xxx大片 | 亚洲精品久久久久中文字幕一区 | 国产人成午夜免视频网站 | 国产国产人免费人成成免视频 | 欧美毛片免费看 | 欧美夜夜操 | 国产精品香蕉成人网在线观看 | 一区二区三区四区在线视频 | 亚洲人成一区二区不卡 | 中国美女一级a毛片录像在线 | 成人欧美一区在线视频在线观看 | 中国女人精69xxx | 成人午夜性a一级毛片美女 成人午夜性视频欧美成人 成人午夜亚洲影视在线观看 | www色午夜| 欧美高清在线视频一区二区 | 欧美成人四级剧情在线播放 | 午夜时刻免费实验区观看 | 大杳焦伊人久久综合热 | 免费永久国产在线视频 | 农村女人十八毛片a级毛片 农村三级孕妇视频在线 | 久久久久伊人 | 日本亚洲一区二区 | 香蕉久久精品 | 手机看片久久国产免费不卡 | 日韩欧国产精品一区综合无码 | 另类重口性色老妇 | 国产亚洲福利精品一区二区 | 素人巨乳被调教 | 爱爱免费观看高清视频在线播放 | 欧美videofree高清杂交 | 国产 magnet|