目錄
一、設置響應消息
1、設置響應行
- 格式:HTTP/1.1 200 ok
- 設置狀態碼:setStatus(int sc)
2、設置響應頭
- setHeader(String name,String value)
3、設置響應體
- 獲取輸出流
- 字符輸出流:PrintWriter getWriter()
- 字節輸出流:ServletOutputStream getOutputStream()
- 使用輸出流,將數據輸出到客戶端瀏覽器
二、Response 響應機制
重定向(Redirect)就是通過各種方法將各種網絡請求重新定個方向轉到其它位置(如:網頁重定向、域名的重定向、路由選擇的變化也是對數據報文經由路徑的一種重定向)
1、重定向和轉發的區別
【1】重定向(Redirect)
- 地址欄發生變化
- 重定向可以訪問其他站點(服務器)的資源
- 重定向是兩次請求(不能使用 request 域來共享數據)
【2】轉發(Forward)
- 轉發地址欄路徑不變
- 轉發只能訪問當前服務器下的資源
- 轉發是一次請求(可以使用 request 域來共享數據)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//方式一
//1.設置狀態碼爲302
//response.setStatus(302);
//2.設置響應頭"location"
//response.setHeader("location","/response2");
//方式二
response.sendRedirect("/response2");
}
2、服務器輸出字符數據到瀏覽器
- 獲取字符輸出流:PrintWriter pw = response.getWriter();
- 輸出數據:pw.write("mesage");
設置編碼格式:response.setContentType("text/html;charset=utf-8");
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//設置編碼格式
response.setContentType("text/html;charset=utf-8");
//獲取字符輸出流
PrintWriter pw = response.getWriter();
//輸出數據
pw.write("oneStar!海綿寶寶");
}
3、服務器輸出字節數據到瀏覽器
- 獲取字節輸出流:
- 輸出數據:
設置編碼格式:response.setContentType("text/html;charset=utf-8");
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//設置編碼
response.setContentType("text/html;charset=utf-8");
//獲取字節輸出流
ServletOutputStream sos = response.getOutputStream();
//輸出數據
sos.write("你好".getBytes("utf-8"));
}