JavaWeb response對象常用操作
CreationTime--2018年7月18日10點42分
Author:Marydon
1.設置響應內容類型
方式一
response.setContentType(contentType);
方式二
response.setHeader("Content-Type", contentType);
response.setContentType(MIME)的作用:
讓服務器告訴瀏覽器它發送的數據屬於什么文件類型,使客戶端瀏覽器,區分不同種類的數據,並根據不同的MIME調用瀏覽器內不同的程序嵌入模塊來處理相應的數據。
例如:
當Content-Type 的值設置為text/html和text/plain時,前者會讓瀏覽器把接收到的實體內容以HTML格式解析,后者會讓瀏覽器以普通文本解析。
2.設置響應數據字符集
response.setCharacterEncoding("UTF-8");
解決中文亂碼問題
3.設置響應內容類型並設置編碼集
上面的2個可以合並到一起
方式一
response.setContentType(contentType + ";charset=UTF-8");
方式二
response.setHeader("Content-Type", contentType + ";charset=UTF-8");
4.返回客戶端數據
方式一
response.getWriter().print("String字符串");
方式二
response.getWriter().println("響應數據");
注意:使用print(strParam)方法返回的數據只能是字符串格式。
5.設置Content-Disposition(指定下載該文件時的文件名)
response.setHeader("Content-Disposition", "attachment;filename=" + formatFileName);
作用:告訴瀏覽器這個文件的名字和類型(指定返回的文件的名稱及擴展名);
說明:在彈出的下載對話框中的文件類型是按照文件的擴展名顯示的,點保存后,文件以filename的值命名,保存類型以ContentType中設置的為准。
注意:
1.在設置Content-Disposition頭字段之前,一定要設置Content-Type頭字段;
2.返回的文件名為中文時,需要對中文進行編碼,否則會造成亂碼。
解決方案:
方法一:(推薦使用)
// 對中文以UTF-8格式進行編碼 String formatFileName = URLEncoder.encode(fileName, "UTF-8");
方法二:(ie不兼容)
// 為什么不適用這種方式?因為不兼容ie瀏覽器 // String formatFileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
