日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Response响应方法详解

發(fā)布時(shí)間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Response响应方法详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Response:

  • 響應(yīng):服務(wù)器把請(qǐng)求的處理結(jié)果告知客戶端。在B/S架構(gòu)中,響應(yīng)就是把結(jié)果帶回瀏覽器。
  • 響應(yīng)對(duì)象:在項(xiàng)目中用于發(fā)送響應(yīng)的對(duì)象
常用狀態(tài)碼:
狀態(tài)碼說(shuō)明
200執(zhí)行成功
302它和307一樣,都是用于重定向的狀態(tài)碼。只是307目前已不再使用
304請(qǐng)求資源未改變,使用緩存。
400請(qǐng)求錯(cuò)誤。最常見的就是請(qǐng)求參數(shù)有問(wèn)題
404請(qǐng)求資源未找到
405請(qǐng)求方式不被支持
500服務(wù)器運(yùn)行內(nèi)部錯(cuò)誤

狀態(tài)碼首位含義:

狀態(tài)碼說(shuō)明
1xx消息
2xx成功
3xx重定向
4xx客戶端錯(cuò)誤
5xx服務(wù)器錯(cuò)誤
字節(jié)流響應(yīng)消息&亂碼:
返回值方法名說(shuō)明
ServletOutputStreamgetOutputStream()獲取響應(yīng)字節(jié)輸出流對(duì)象
voidsetContentType(“text/html;charset=UTF-8”)設(shè)置響應(yīng)內(nèi)容類型,解決中文亂碼

演示:

@WebServlet("/ResponseDemo01") public class ResponseDemo01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// setContentType:相當(dāng)于告訴瀏覽器你要使用這個(gè)編碼才能解析我的內(nèi)容resp.setContentType("text/html;charset=UTF-8");// getOutputStream() 獲取響應(yīng)字節(jié)輸出流對(duì)象ServletOutputStream ops = resp.getOutputStream();// 定義消息String s = "測(cè)試會(huì)不會(huì)亂碼";/**為什么有的時(shí)候沒(méi)有處理亂碼,但是瀏覽器不會(huì)亂碼getBytes:在字符串轉(zhuǎn)成字節(jié)的時(shí)候,如果沒(méi)有傳遞參數(shù)(編碼格式),它會(huì)根據(jù)系統(tǒng)的編碼轉(zhuǎn)換,這里的系統(tǒng)是電腦的,比如Windows的默認(rèn)就是GBK那就會(huì)轉(zhuǎn)換成GBK格式的,如果瀏覽器也是GBK就不會(huì)亂碼,但是如果瀏覽器是其它的就會(huì)亂碼*/ops.write(s.getBytes("UTF-8"));} }
字符流響應(yīng)消息:
返回值方法名說(shuō)明
PrintWritergetWriter()獲取響應(yīng)字符輸出流對(duì)象
voidsetContentType(“text/html;charset=UTF-8”)設(shè)置響應(yīng)內(nèi)容類型,解決中文亂碼

演示:

@WebServlet("/ResponseDemo02") public class ResponseDemo02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");// getWriter() 獲取響應(yīng)字符輸出流對(duì)象PrintWriter printWriter = resp.getWriter();String s = "我也呵呵了";printWriter.write(s);} }
響應(yīng)圖片:

步驟:

  • 創(chuàng)建字節(jié)輸入流對(duì)象,關(guān)聯(lián)讀取的圖片路徑
  • 通過(guò)響應(yīng)對(duì)象獲取字節(jié)輸出流對(duì)象
  • 循環(huán)讀取和寫出圖片
  • @WebServlet("/ResponseDemo03") public class ResponseDemo03 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 1. 創(chuàng)建字節(jié)輸入流對(duì)象,關(guān)聯(lián)讀取的圖片路徑BufferedInputStream bis = new BufferedInputStream(new FileInputStream("/Users/itzhuzhu/Desktop/WechatIMG27.JPG"));// 2. 通過(guò)響應(yīng)對(duì)象獲取字節(jié)輸出流對(duì)象ServletOutputStream os = resp.getOutputStream();// 3. 循環(huán)讀取和寫出圖片byte[] bytes = new byte[1024];int len;while ((len = bis.read(bytes)) != -1) {os.write(bytes, 0, len);}} }
    設(shè)置緩存:

    對(duì)于不經(jīng)常變化的數(shù)據(jù),可以合理設(shè)置緩存時(shí)間,避免瀏覽器頻繁請(qǐng)求服務(wù)器,可以提高效率

    返回值方法名說(shuō)明
    voidsetDateHeader(String name,long time)設(shè)置消息頭添加緩存

    演示:

    如果開啟了緩存是可以在電腦中找到這個(gè)緩存文件的,可以看到上次訪問(wèn)時(shí)間和過(guò)期時(shí)間,到了過(guò)期時(shí)間才會(huì)訪問(wèn)服務(wù)器

    @WebServlet("/ResponseDemo04") public class ResponseDemo04 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String s = "我是測(cè)試緩存內(nèi)容";// 設(shè)置換緩存1小時(shí),只有第一次請(qǐng)求會(huì)請(qǐng)求服務(wù)端,后面的請(qǐng)求是走的緩存resp.setDateHeader("Expires", System.currentTimeMillis() + 1 * 60 * 60 * 1000);// 設(shè)置編碼格式resp.setContentType("text/html;charset=UTF-8");// 寫出數(shù)據(jù)resp.getWriter().write(s);System.out.println("再次訪問(wèn)會(huì)走我嗎");} }
    定時(shí)刷新:

    過(guò)了指定時(shí)間,頁(yè)面自動(dòng)跳轉(zhuǎn)

    返回值方法名說(shuō)明
    voidsetHeader(String name,String value)設(shè)置消息頭定時(shí)刷新

    演示:

    @WebServlet("/ResponseDemo05") public class ResponseDemo05 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String s = "計(jì)算機(jī)被黑客竊取,正在讀取數(shù)據(jù),讀取完畢自動(dòng)跳轉(zhuǎn)";resp.setContentType("text/html; charset=UTF-8");// 寫數(shù)據(jù)resp.getWriter().write(s);// 定時(shí)刷新resp.setHeader("Refresh", "3;URL=/regist.html");} }
    請(qǐng)求重定向:

    請(qǐng)求重定向:客戶端的一次請(qǐng)求到達(dá)后,發(fā)現(xiàn)要借助其他Servlet實(shí)現(xiàn)功能

    特點(diǎn):

    • 瀏覽器地址會(huì)改變
    • 兩次請(qǐng)求
    • 請(qǐng)求域?qū)ο笾胁荒芄蚕頂?shù)據(jù)
    • 可以重定向到其他服務(wù)器

    實(shí)現(xiàn)原理:

    • 設(shè)置響應(yīng)狀態(tài)碼302
    • 設(shè)置響應(yīng)的資源路徑(響應(yīng)消息頭指定響應(yīng)到哪里)

    重定向和請(qǐng)求轉(zhuǎn)發(fā)用哪一個(gè)?

    • 需要共享數(shù)據(jù)就轉(zhuǎn)發(fā),不需要就重定向

    重定向方法:

    返回值方法名說(shuō)明
    voidsendRedirect(String name)設(shè)置重定向

    演示:

    @WebServlet("/ResponseDemo06") public class ResponseDemo06 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("ResponseDemo06執(zhí)行了");// 設(shè)置共享數(shù)據(jù)req.setAttribute("username","itzhuzhu");// 設(shè)置重定向resp.sendRedirect(req.getContextPath()+"/servletDemo15");} @WebServlet("/ResponseDemo07") public class ResponseDemo07 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("ResponseDemo07執(zhí)行了");// 獲取共享數(shù)據(jù),這里會(huì)丟失共享數(shù)據(jù)System.out.println(req.getAttribute("username"));}
    文件下載:
    @WebServlet("/ResponseDemo08") public class ResponseDemo08 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 1. 獲取文件路徑String realPath = getServletContext().getRealPath("/img/首頁(yè).png");// 2. 把文件讀到字節(jié)輸入流中BufferedInputStream bis = new BufferedInputStream(new FileInputStream(realPath));// 3. 告知瀏覽器,以下載的方式打開(告知瀏覽器下載文件的MIME類型)/**Content-type:消息頭名稱,支持的類型application/octet-stream:消息頭參數(shù),應(yīng)用的類型為字節(jié)流Content-Disposition:消息頭名稱,處理的形式attachment;filename=首頁(yè).jpg:消息頭參數(shù),以附件的形式,指定下載文件名稱*/resp.setHeader("Content-type", "application/octet-stream");resp.setHeader("Content-Disposition", "attachment;filename=首頁(yè).jpg");// 4. 使用響應(yīng)對(duì)象的字節(jié)輸出流輸出到瀏覽器上ServletOutputStream os = resp.getOutputStream();byte[] bytes = new byte[1024];int len;while ((len = bis.read(bytes)) != -1) {os.write(bytes, 0, len);}bis.close();} }

    Response方法詳解:

    總結(jié)

    以上是生活随笔為你收集整理的Response响应方法详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产一区二区在线精品 | 涩涩视频在线免费看 | av网站观看 | 欧美视频网址 | 日日干日日射 | 免费黄色看片 | 中国毛片在线观看 | 国产午夜精品一区 | 91视频在线免费 | 二区国产| 最近中文字幕在线免费观看 | 亚洲精品成人无码毛片 | 97精品国产97久久久久久春色 | 国产在线xxx | 国产午夜免费视频 | 成人av综合| 国产免费一区二区三区 | 日本少妇喷水 | 亚洲超碰在线 | 91插插插永久免费 | 9i在线看片成人免费 | 午夜电影天堂 | 一边顶弄一边接吻 | 欧美精品色图 | 日韩欧美国产一区二区在线观看 | 91视频综合网 | 黑人巨大精品欧美 | 可以免费观看的毛片 | 国产资源在线观看 | 久久国产视频播放 | 一级高清毛片 | 国产精品国产三级国产aⅴ无密码 | 免费99视频 | 99热精品国产| 久久综合激的五月天 | 国产精品第二十页 | av高潮 | 国产污视频在线看 | 国产亚洲电影 | 欧美一区二区三区在线免费观看 | 亚洲精品高清在线 | 丁香激情小说 | 最近中文字幕在线中文视频 | 99热在线播放 | 99riav3国产精品视频 | 中文字幕精品三区 | av影片在线 | 黑人操中国女人视频 | 亚洲69 | 激情视频一区二区 | 啪啪免费网站 | 欧美午夜精品久久久 | 女人叉开腿让男人桶 | 久久亚洲激情 | 色婷婷一区二区三区四区 | 激情瑟瑟| 91在线在线| 欧洲最强rapper网站直播 | 琪琪原网址 | 我和我的太阳泰剧在线观看泰剧 | 久久男人精品 | 亚洲av成人无码网天堂 | 性猛交xxxx乱大交孕妇印度 | 四川一级毛毛片 | 美国伊人网 | 一级片免费观看 | 国产一区免费 | 亚洲 国产 欧美 日韩 | 天干夜夜爽爽日日日日 | 91视频免费观看 | 91插插插影库永久免费 | 亚洲精品亚洲 | 天堂…中文在线最新版在线 | 欧美乱色 | 国产 日韩 一区 | 国产精品精品软件视频 | 国产精品毛片在线 | 欧美色图网址 | 国产美女视频一区 | 久热精品视频 | 亚洲精品视频一区二区三区 | 一区二区三区四区国产精品 | 天天干影院| 色片免费看 | 国产亚洲AV无码成人网站在线 | 伊人影院亚洲 | 九一福利视频 | 国产精品久久不卡 | 成人无码av片在线观看 | 国产日韩成人内射视频 | 国产精品国语对白 | 久久久无码精品亚洲国产 | 乱色熟女综合一区二区三区 | 成人污污视频在线观看 | 特级av片 | 国产麻豆视频 | 国产精品夜夜躁视频 | 亚洲中文字幕97久久精品少妇 | 狂野欧美性猛交blacked |