JavaWeb15.3【response:Response物件案例-伺服器輸出字元資料到瀏覽器、伺服器輸出位元組資料到瀏覽器、中文亂碼問題】
阿新 • • 發佈:2021-07-01
1 package com.haifei.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import java.io.IOException; 9 importjava.io.PrintWriter; 10 11 /** 12 * Response物件案例-伺服器輸出字元資料到瀏覽器 13 */ 14 @WebServlet("/responseDemo4") 15 public class ResponseDemo4 extends HttpServlet { 16 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 17 /*//1 獲取字元輸出流18 PrintWriter pw = response.getWriter(); 19 //response在一次響應完成後會被自動銷燬,同時它獲取的流getWriter()也會被自動關閉 20 //之前學流的時候:.write()後需要flush()才能寫入;close()自帶flush效果 21 //所以此處不需要在pw.write()手動對pw進行flush() 22 23 //2 輸出資料 24 pw.write("<h1>hello response</h1>"); //即為頁面上的響應體*/ 25 26 27 28 /* //獲取流物件之前,流的預設編碼為ISO-8859-1,手動設定為utf-8 29 response.setCharacterEncoding("utf-8"); 30 //告訴瀏覽器,伺服器傳送的訊息體資料的編碼。建議瀏覽器使用該編碼解碼 31 response.setHeader("content-type","text/html;charset=utf-8"); //content-type是一種常見的響應頭*/ 32 //簡單的形式:設定編碼並告訴瀏覽器,防止中文亂碼 33 response.setContentType("text/html;charset=utf-8"); 34 35 PrintWriter pw = response.getWriter(); 36 pw.write("<h1>你好啊 response</h1>"); 37 } 38 39 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 40 this.doPost(request, response); 41 } 42 }
1 package com.haifei.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.ServletOutputStream; 5 import javax.servlet.annotation.WebServlet; 6 import javax.servlet.http.HttpServlet; 7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.http.HttpServletResponse; 9 import java.io.IOException; 10 11 /** 12 * Response物件案例-伺服器輸出位元組資料到瀏覽器 13 */ 14 @WebServlet("/responseDemo5") 15 public class ResponseDemo5 extends HttpServlet { 16 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 17 response.setContentType("text/html;charset=utf-8"); //設定編碼 18 //1 獲取位元組輸出流 19 ServletOutputStream sos = response.getOutputStream(); 20 //2 輸出資料 21 sos.write("你好啊hello".getBytes("utf-8")); 22 } 23 24 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 25 this.doPost(request, response); 26 } 27 }