更新時間:2021年03月29日17時27分 來源:傳智教育 瀏覽次數(shù):
當Servlet向客戶端回送響應消息時,由于HTTP協(xié)議的響應頭字段有很多種,為此,在HttpServletResponse接口中,定義了一系列設置HTTP響應頭字段的方法,如表1所示。
表1 設置響應消息頭字段的方法
方法聲明 | 功能描述 |
---|---|
void addHeader(String name, String value) | 這兩個方法都是用來設置HTTP協(xié)議的響應頭字段,其中,參數(shù)name用于指定響應頭字段的名稱,參數(shù)value用于指定響應頭字段的值。不同的是,addHeader()方法可以增加同名的響應頭字段,而setHeader()方法則會覆蓋同名的頭字段 |
void setHeader(String name, String value) | |
void addIntHeader(String name,int value) | 這兩個方法專門用于設置包含整數(shù)值的響應頭。避免了使用addHeader()與setHeader()方法時,需要將int類型的設置值轉(zhuǎn)換為String類型的麻煩 |
void setIntHeader(String name,int value) | |
void setContentLength(int len) | 該方法用于設置響應消息的實體內(nèi)容的大小,單位為字節(jié)。對于HTTP協(xié)議來說,這個方法就是設置Content-Length響應頭字段的值 |
void setContentType(String type) | 該方法用于設置Servlet輸出內(nèi)容的MIME類型,對于HTTP協(xié)議來說,就是設置Content-Type響應頭字段的值。例如,如果發(fā)送到客戶端的內(nèi)容是jpeg格式的圖像數(shù)據(jù),就需要將響應頭字段的類型設置為“image/jpeg”。需要注意的是,如果響應的內(nèi)容為文本,setContentType()方法的還可以設置字符編碼,如:text/html;charset=UTF-8 |
void setLocale(Locale loc) | 該方法用于設置響應消息的本地化信息。對HTTP來說,就是設置Content-Language響應頭字段和Content-Type頭字段中的字符集編碼部分。需要注意的是,如果HTTP消息沒有設置Content-Type頭字段,setLocale()方法設置的字符集編碼不會出現(xiàn)在HTTP消息的響應頭中,如果調(diào)用setCharacterEncoding()或setContentType()方法指定了響應內(nèi)容的字符集編碼,setLocale()方法將不再具有指定字符集編碼的功能 |
void setCharacterEncoding(String charset) | 該方法用于設置輸出內(nèi)容使用的字符編碼,對HTTP 協(xié)議來說,就是設置Content-Type頭字段中的字符集編碼部分。如果沒有設置Content-Type頭字段,setCharacterEncoding方法設置的字符集編碼不會出現(xiàn)在HTTP消息的響應頭中。setCharacterEncoding()方法比setContentType()和setLocale()方法的優(yōu)先權(quán)高,它的設置結(jié)果將覆蓋setContentType()和setLocale()方法所設置的字符碼表 |
需要注意的是,在表1列舉的一系列方法中,其中addHeader()、setHeader()、addIntHeader()、setIntHeader()方法都是用于設置各種頭字段的。另外,setContetType()、setLoacale()和setCharacterEncoding()方法用于設置字符編碼,這些方法可以有效解決亂碼問題。
猜你喜歡: