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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web——Request转发和Response重定向

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web——Request转发和Response重定向 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? Request請求轉發

○ 請求轉發§ 請求轉發(forward):一種在服務器內部的資源跳轉方式§ ○ 實現方式:§ request.getRequestDispatcher("資源B路徑").forward(request,response);○ 請求轉發資源間共享數據:使用Request對象§ void setAttribute(String name,Object object)存儲數據到request域中§ Object getAttribute(String name)根據key,獲取值§ void removeAttribute(String name)根據key,刪除鍵值對○ 請求轉發的特點:§ 瀏覽器地址欄路徑不發生變化§ 只能轉發到當前服務器的內部資源§ 一次請求,可以再轉發的資源間使用request共享數據 @WebServlet("/req5") public class RequestDemo5 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo5....");//存儲數據void setAttribute(String name, Object object)request.setAttribute("msg", "hello");//請求轉發request.getRequestDispatcher("/req6").forward(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);} }@WebServlet("/req6") public class RequestDemo6 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("demo6...");//刪除數據//request.removeAttribute("msg");//獲取數據Object getAttribute(String name)Object msg = request.getAttribute("msg");System.out.println(msg);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);} } 執行過程: 運行tomcat

點擊鏈接

輸入url 按回車

? Response

? Response設置響應數據功能介紹○ 響應數據分為3個部分:§ 響應行:HTTP/1.1 200 OK□ Voids etStatus(intsc)設置響應狀態碼§ 響應頭:Content-Type:text/html□ Void setHeader(String name,String value):設置響應頭鍵值對§ 響應體:<html><head></head><body></body></html>PrintWritergetWriter()獲取字符輸出流ServletOutputStreamgetOutputStream()獲取字節輸出流 ? Response完成重定向○ 重定向(Redirect):一種資源跳轉方式○ 實現方式§ void setStatus(int sc)□ response.setStatus(302);§ void setHeader(String name,String value)□ response.setHeader("location","/request-demo/resp2");○ 簡化實現重定向的方式§ response.sendRedirect("/request-demo/resp2");○ 重定向的特點§ 瀏覽器地址欄路徑發生改變§ 可以重定向到任意位置的資源(服務器內部、外部均可)§ 兩次請求,不能在多個資源使用request共享數據○ 路徑問題□ 瀏覽器使用:需要加虛擬目錄(項目訪問路徑)□ 服務端使用:不需要加虛擬目錄 @WebServlet("/resp1") public class ResponseDemo1 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp1...");//重定向//1.設置響應狀態碼 void setStatus(int sc)/*response.setStatus(302);//2.設置響應頭 void setHeader(String name, String value)response.setHeader("location", "/request-demo/resp2");*///簡化方式完成重定向//動態獲取虛擬目錄String contextPath = request.getContextPath();response.sendRedirect(contextPath + "/resp2"); // response.sendRedirect("https://www.itcast.cn");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);} }@WebServlet("/resp2") public class ResponseDemo2 extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("resp2...");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);} } 執行過程 : 啟動tomcat,如果已經啟動則重運行即可

點擊鏈接

輸入url,按回車


總結

以上是生活随笔為你收集整理的Web——Request转发和Response重定向的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。