1. 程式人生 > 其它 >HttpServletResponse介面

HttpServletResponse介面

技術標籤:Servlet框架學習servlettomcatjavahttp

HttpServletResponse介面

1>介紹

1、HttpServletResponse介面來自於Servlet規範中,在Tomcat中存在servlet-api.jar。
2、HttpServletResponse介面實現類由Http伺服器負責提供。
3、HttpServletResponse介面負責將doGet/doPost方法執行結果寫入響應體交給瀏覽器。

4、開發人員習慣於HttpServletResponse介面修飾的物件稱為響應物件

2>響應物件主要功能

1、將執行結果以二進位制的形式寫入到《響應體》。
2、設定響應頭中[content-type]屬性值,從而控制瀏覽器使用對應編譯器將響應體二進位制資料編譯為《文字、圖片、視訊、命令》。
3、設定響應頭中<<location>>屬性,將一個請求地址賦值給location。從而控制瀏覽器向指定伺服器傳送請求。

響應物件將結果寫入響應體

//如果OneServlet僅接受GET請求
public class OneServlet extends HttpServlet
{ protected void doGet(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException, IOException { String result = "Hello World";//執行結果 //1>通過響應物件向Tomcat索要輸出流 PrintWriter out = response.getWriter(); //2>通過輸出流,將執行結果以二進位制資料寫入響應體;
out.write(result); //不用關因為是tomcat建立的輸出流,tomcat負責關閉。 } }

在這裡插入圖片描述

設定響應頭中的Content-type屬性

如果不手動設定,那麼響應頭中的Content-type屬性預設為
Content-type:text;charset=ISO-8859-1
1、此時瀏覽器將會採用《文字編輯器》對響應體二進位制進行解析,而若帶有html命令則也會被當做普通文字處理。
2、字符集被設定為ISO-8859-1,是一個東歐字符集,若瀏覽器面對響應體二進位制會出現亂碼。

//如果OneServlet僅接受GET請求
public class OneServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        String result = "張三<br/>李四<br/>王五";//執行結果
        //1>設定響應頭中 Content-type
        response.setContentType("text/html;charset=utf-8");
        //2>通過響應物件向Tomcat索要輸出流
        PrintWriter out = response.getWriter();
        //3>通過輸出流,將執行結果以二進位制資料寫入響應體;
        out.write(result);
        //不用關因為是tomcat建立的輸出流,tomcat負責關閉。
    }
}

在這裡插入圖片描述

設定響應頭中的location實現重定向

//如果OneServlet僅接受GET請求
public class OneServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        String result = "http://www.baidu.com";//執行結果
        //這個地方網址必須加上http協議
        response.sendRedirect(result);
        //瀏覽器在接收到響應包之後,若發現響應頭中存在location屬性
        //自動通過位址列向location指定網站傳送請求
        //sendRedirect方法遠端控制瀏覽器行為《請求地址、請求方式、請求引數》
    }
}