免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

day17-Servlet06

Servlet0615.HttpServletResponse15.1HttpServletResponse介紹

  1. 每次HTTP請求,Tomcat都會創(chuàng)建一個HttpServletResponse對象傳遞給Servlet程序使用
  2. HttpServletRequest表示請求過來的信息,HttpServletResponse表示所有響應(yīng)的信息,如果需要設(shè)置返回給客戶端的信息,通過HttpServletResponse對象來設(shè)置即可 。
  • HttpServletResponse類圖

day17-Servlet06

文章插圖

day17-Servlet06

文章插圖

day17-Servlet06

文章插圖
  • 向客戶端返回數(shù)據(jù)方法:

day17-Servlet06

文章插圖
  1. 字節(jié)流getOutputStreamWriter(); 常用于下載(處理二進制數(shù)據(jù))
  2. 字符流getWriter(); 常用于回傳字符串
  3. 兩個流同時只能使用一個,使用了字節(jié)流,就不能使用字符流,反之亦然,否則就會報錯 。
例子

day17-Servlet06

文章插圖
15.2返回數(shù)據(jù)時注意事項和細節(jié)
  1. 處理中文亂碼問題-方案1(推薦)
    day17-Servlet06

    文章插圖
    response.setContentType("text/html;charset=utf-8");
  2. 處理中文亂碼問題-方案2
    day17-Servlet06

    文章插圖
    //1.設(shè)置服務(wù)器使用utf-8response.setCharacterEncoding("utf-8");//2.設(shè)置瀏覽器端是utf-8,而且類型是text/htmlresponse.setHeader("Content-Type","text/html;charset=utf-8");
15.3請求重定向15.3.1請求重定向介紹請求重定向:一個web資源收到客戶端請求后,通知客戶端去訪問另外一個web資源,這稱之為請求重定向
day17-Servlet06

文章插圖
請求重定向的地址欄會改變
15.3.2請求重定向應(yīng)用實例需求:演示請求重定向的使用,當訪問DownServlet下載文件,重定向到DownServletNew下載文件
DownServlet:
package com.li.servlet.response;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.io.IOException;import java.io.PrintWriter;@WebServlet(urlPatterns = {"/downServlet"})public class DownServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//完成自己的業(yè)務(wù)..//請求重定向->downServletNew//1.sendRedirect本質(zhì) 會返回一個 302的狀態(tài)碼 和一個Location:/servlet_demo/downServletNew//2.因此302和location是瀏覽器解析的,而不是服務(wù)器//3.瀏覽器會將/servlet_demo/downServletNew 解析成//=>http://localhost:8080/servlet_demo/downServletNew//瀏覽器不能知道服務(wù)器上的web應(yīng)用名稱,只能將當前所在頁面的主機名和端口拼上來,// 所以重定向需要把/web應(yīng)用名也寫上來//而請求轉(zhuǎn)發(fā)是在服務(wù)器端的,可以獲取到web應(yīng)用名稱,所以請求轉(zhuǎn)發(fā)直接寫/資源名即可response.sendRedirect("/servlet_demo/downServletNew");}}DownServletNew:
package com.li.servlet.response;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.io.IOException;import java.io.PrintWriter;@WebServlet(urlPatterns = {"/downServletNew"})public class DownServletNew extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("DownServletNew-doPost()被調(diào)用..");response.setContentType("application/x-tar;charset=utf-8");PrintWriter writer = response.getWriter();writer.print("ok");writer.flush();writer.close();}}

經(jīng)驗總結(jié)擴展閱讀