HTTP 協議 Response 響應

目錄

一、設置響應消息

1、設置響應行

2、設置響應頭

3、設置響應體

二、Response 響應機制

1、重定向和轉發的區別

2、服務器輸出字符數據到瀏覽器

3、服務器輸出字節數據到瀏覽器


一、設置響應消息

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、服務器輸出字符數據到瀏覽器

  1. 獲取字符輸出流:PrintWriter pw = response.getWriter();
  2. 輸出數據: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、服務器輸出字節數據到瀏覽器

  1. 獲取字節輸出流:
  2. 輸出數據:

設置編碼格式: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"));
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章