當客戶端瀏覽器請求服務器后,該服務器就會將返回信息封裝到HttpServletResponse里進行響應,返回信息中的第一行為狀態行,共分為5類,
100-199:表示服務端成功接受請求,但要求客戶端繼續提交下一次請求才能完成全部處理過程。
200-299:表示服務端已成功接受請求,並完成了全部處理過程。
300-399:表示客戶端請求資源已經到了別的位置,並向客戶端提供了一個新地址,一般這個新地址由HTTP響應頭的Location字段指定。
400-499:表示客戶端請求有誤。
500-599:表示服務端出現錯誤。
response.setStatus(*);//設置狀態
response.sendReadirect("URL") //可以是絕對路徑www.baidu.com 也可以是相對的(webdemo/test.html);
響應瀏覽器請求,返回數據例子
//設置響應頭數據
//在瀏覽器頁面上輸出YES
//輸出字符流 PrintWriter out = response.getWriter();
//輸出字節流 OutputStream out = response.getOutputStream();
1 package com.demo.servlet; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.Calendar; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 12 /** 13 * 14 * ClassName: ExploreResponseHeader 15 * @Description: 驗證響應消息頭設置情況 16 * @author zgb 17 * @date 2016-7-2 18 */ 19 public class ExploreResponseHeader extends HttpServlet { 20 21 22 private static final long serialVersionUID = 1L; 23 24 //處理客戶端的get請求 25 protected void doGet(HttpServletRequest request, HttpServletResponse response) 26 throws ServletException, IOException { 27 28 response.setContentType("text/html;charset=UTF8"); 29 response.setHeader("Content-Length", "1234"); 30 //加一個NewFileld1字段 31 response.addHeader("NewFileld1", "value1"); 32 //獲得Calender對象 33 Calendar calendar = Calendar.getInstance(); 34 calendar.set(2016, 07,02); 35 //增加一個Mydate字段 36 response.addDateHeader("MyDate", calendar.getTimeInMillis()); 37 //加一個NewFileld2字段 38 response.addIntHeader("NewFileld2", 3000); 39 //設置狀態為500 40 response.setStatus(500); 41 //獲取用於輸入輸出消息的PrintWriter對象 42 PrintWriter out = response.getWriter(); 43 out.println("YES"); 44 45 } 46 47 }
文件下載
1 package com.demo.servlet; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.OutputStream; 7 8 import javax.servlet.ServletException; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 13 /** 14 * 15 * ClassName: DownFlieServlet 16 * @Description: 下載文件 17 * @author zgb 18 * @date 2016-7-2 19 */ 20 public class DownFlieServlet extends HttpServlet{ 21 22 /** 23 * @Fields serialVersionUID : TODO 24 */ 25 private static final long serialVersionUID = 1L; 26 27 @Override 28 protected void doGet(HttpServletRequest requset, HttpServletResponse response) 29 throws ServletException, IOException { 30 //1.獲取要下載文件的絕對路徑 31 String realPath = this.getServletContext().getRealPath("/download/2.png"); 32 //2.獲取下載文件的名稱 33 String fileName = realPath.substring(realPath.lastIndexOf("\\")+1); 34 //3.設置content—dispositon響應控制瀏覽器以下載的形式打開文件 35 response.setHeader("content-disposition", "attachment;fileName="+fileName); 36 //4.獲取要下載的文件輸入流 37 InputStream stream = new FileInputStream(realPath); 38 39 int len = 0; 40 41 byte[] buffer = new byte[1024]; 42 43 OutputStream out = response.getOutputStream(); 44 45 while((len = stream.read(buffer))>0){ 46 47 out.write(buffer,0,len); 48 49 } 50 stream.close(); 51 52 } 55 56 }
