大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java Web請求轉發和重定向詳解

Java Web請求轉發和重定向詳解

更新時間:2020-10-22 17:49:05 來源:動力節點 瀏覽1006次


Java Web,是用Java技術來解決相關Web互聯網領域的技術棧,而Web包括:Web服務端和Web客戶端兩部分。說到服務端和客戶端我們就不得不說到Java Web請求轉發和重定向,那么什么是javaweb請求轉發和請求重定向?

image.png


javaweb請求轉發: xxServlet收到請求,然后直接轉發給yyServlet,然后yyServlet返回給客戶端。整個過程中,客戶端發出一個請求,收到一個響應。

image.png


Javaweb重定向:xxServlet收到請求,然后發出一個響應給客戶端,客戶端立即又發送一個請求訪問xxServlet中給的URL,即yyServlet的路徑,然后yyServlet給客戶端一個響應。整個過程中,客戶端發出兩個請求,收到兩個響應。


1. 請求轉發和請求重定向的實現方法

請求轉發:利用RequestDispather接口中的forward方法實現請求轉發。

請求重定向:利用HttpServletResponse的sendRedirect方法實現請求重定向。


1.1 請求轉發

RequestDispather實例對象是由Servlet引擎創建的,它用于包裝一個要被其他資源調用的資源,(例如Servlet,HTML文件,JSP文件等),并可以通過其中的方法將客戶端的請求轉發給所包裝的資源。

示例代碼如下:

forwardTest.html

 

<!DOCTYPE html>

<html>

  <head>

    <title>forwardTest.html</title>

     

    <meta name="keywords" content="keyword1,keyword2,keyword3">

    <meta name="description" content="this is my page">

    <meta name="content-type" content="text/html; charset=UTF-8">

     

    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

 

  </head>

   

  <body>

    <a href="http://localhost:8080/MyWebProject/forwardServlet">forward</a>

  </body>

</html>


forwardServlet.java

package forwardTest;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class forwardServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

PrintWriter out=response.getWriter();

System.out.println("forwardServlet's doGet");

String path="testServlet";

//1.調用HttpServletRequest的getRequestDispatcher()方法,調用時需要傳入轉發的地址;

RequestDispatcher requestDispatcher=request.getRequestDispatcher(path);

//2.調用HttpServletRequest的forward(request,response)方法進行請求的轉發;

requestDispatcher.forward(request,response);

}

}

testServlet.java

package forwardTest;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class testServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

PrintWriter out=response.getWriter();

System.out.println("testServlet's doGet");

}

}

運行forwardTest.html后,點擊超鏈接,控制臺輸出:

可以看出, forwardServlet收到客戶端的請求后,調用HttpServletRequest的getRequestDispatcher()方法,利用forward(request,response)方法進行請求轉發,將請求直接轉發給testServlet,testServlet將響應返回給客戶端。達到了請求轉發的目的。


1.2 請求重定向

redirectServlet.java

package forwardTest;

import java.io.IOException;

//import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class redirectServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("redirectServlet's doGet");

String path="testServlet";

response.sendRedirect(path);

}

}

執行請求的重定向,直接調用response.sendRedirect(path)方法,path為重定向的地址。


2.請求的轉發和重定向的區別

本質區別:請求的轉發只發出了一次請求,而重定向則發出了兩次請求。在瀏覽器的開發工具中可以看到請求的次數:

具體的區別體現在:

1.請求的轉發:地址欄是初次發出請求的地址。

請求的重定向:地址欄不是初次發出請求的地址,為最后響應的地址。


2.請求轉發:在最終的Servlet中,request和中轉的那個request是同一個對象。

請求的重定向:在最終的Servlet中,request和中轉的那個request不是同一個對象。


3.請求轉發:只能轉發給當前web應用的資源。

請求的重定向:可以重定向到任何資源。


4.請求的轉發:/代表的是當前web應用的根目錄。

請求的重定向:/代表的是當前web站點的根目錄。


總的來說,Java Web請求轉發和重定向還是有著很大的區別的,本質就在于發出的請求次數不同。但請求轉發和重定向都是Java Web中不可或缺的機制,大大方便了服務端和客戶端的交互工作。在本站的Java Web教程中還有許多實例來論證重定向和請求轉發機制的關系和差異,感興趣的小伙伴可以去觀看學習。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日本aa在线观看 | 亚洲欧美日韩中文字幕在线 | 日本人wwwxxⅹ免费视频 | 四虎影视免费永久在线观看黄 | 久久久久美女 | 狠狠久久久久久亚洲综合网 | 男人女人真曰批的视频动态 | 成人亚洲天堂 | 另类综合图片 | 亚洲另类老妇videos | 97热在线| 欧美成人aaa大片 | 美女在线视频观看影院免费天天看 | 亚洲国产精品一区二区首页 | 奇米四色在线观看 | 人人狠狠综合久久亚洲88 | 欧美亚洲另类图片 | 国产伦理一区二区三区 | 日韩深夜 | 四虎国产精品永久一区 | 亚洲一区播放 | 老子影院午夜理伦手机不卡 | 九九视频免费在线 | 99精品视频在线这里只有 | 亚洲第3页 | 久久专区| 伊人伊网 | 91热在线观看精品 | 亚洲综合一二三 | 中文字幕在线精品视频入口一区 | 99精品欧美一区 | 97中文字幕在线观看 | 奇米777第四色 | 夜夜操免费视频 | 久久精品国产一区二区 | a毛片在线免费观看 | 午夜欧美激情 | 国产成人精品久久亚洲高清不卡 | 日韩欧美成末人一区二区三区 | 久草精品在线观看 | 亚洲国产成人久久精品动漫 |