HttpServletResponse介面
阿新 • • 發佈:2020-12-30
技術標籤:Servlet框架學習servlettomcatjavahttp
HttpServletResponse介面
1>介紹
1、HttpServletResponse介面來自於Servlet規範中,在Tomcat中存在servlet-api.jar。
2、HttpServletResponse介面實現類由Http伺服器負責提供。
3、HttpServletResponse介面負責將doGet/doPost方法執行結果寫入響應體交給瀏覽器。
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方法遠端控制瀏覽器行為《請求地址、請求方式、請求引數》
}
}