1. 程式人生 > 程式設計 >Java中Request請求轉發詳解

Java中Request請求轉發詳解

直接來,RequestDemo5程式碼,get請求和post請求都請求轉發了,轉發到RequestDemo6請求

RequestDemo5程式碼

package com.lingaolu.request;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
 
/**
 * @author 林高祿
 * @create 2020-07-07-12:06
 */
@WebServlet("/requestDemo5")
public class RequestDemo5 extends HttpServlet {
 
  @Override
  protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
    System.out.println("requestDemo5進來了......post");
    RequestDispatcher requestDispatcher = request.getRequestDispatcher("/requestDemo6");
    requestDispatcher.forward(request,response);
  }
 
  @Override
  protected void doGet(HttpServletRequest request,IOException {
    System.out.println("requestDemo5進來了......get");
    RequestDispatcher requestDispatcher = request.getRequestDispatcher("/requestDemo6");
    requestDispatcher.forward(request,response);
 
  }
}

RequestDemo6程式碼

package com.lingaolu.request;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
 
/**
 * @author 林高祿
 * @create 2020-07-07-12:06
 */
@WebServlet("/requestDemo6")
public class RequestDemo6 extends HttpServlet {
 
  @Override
  protected void doPost(HttpServletRequest request,IOException {
    System.out.println("requestDemo6進來了......post");
  }
 
  @Override
  protected void doGet(HttpServletRequest request,IOException {
    System.out.println("requestDemo6進來了......get");
  }
}

瀏覽器訪問/requestDemo5介面

Java中Request請求轉發詳解

控制檯輸出

Java中Request請求轉發詳解

從以上結果可以看出

請求過後我們的瀏覽器地址還是http://localhost:8080/myRequest/requestDemo5

從瀏覽器的F12除錯頁面可以看出,轉發只是一次請求,只有/requestDemo5請求,說明,可共享資料Request共享資料

我們用Postman進行post請求一下

Java中Request請求轉發詳解

後臺輸出:

Java中Request請求轉發詳解

可見,get請求的轉發會轉發到get請求,post請求的轉發,會轉發到post請求

我們改一下RequestDemo5的程式碼,轉發到百度

package com.lingaolu.request;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
 
/**
 * @author 林高祿
 * @create 2020-07-07-12:06
 */
@WebServlet("/requestDemo5")
public class RequestDemo5 extends HttpServlet {
 
  @Override
  protected void doPost(HttpServletRequest request,IOException {
    System.out.println("requestDemo5進來了......get");
    RequestDispatcher requestDispatcher = request.getRequestDispatcher("https://www.baidu.com/");
    requestDispatcher.forward(request,response);
 
  }
}

瀏覽器請求

Java中Request請求轉發詳解

後臺輸出:

Java中Request請求轉發詳解

從後臺輸出看出,requestDemo5請求進來了,從瀏覽器看出,轉發失敗了,而且從實際轉發的路徑上看,因為虛擬路徑,所以請求轉發只能轉發到當前伺服器內部的資源

請求轉發的特點總結:(與之對應的------重定向的詳情與特點)

瀏覽器位址列路徑不發生變化轉發只是一次請求,可共享資料Request共享資料哪種請求方式只能轉發到那種請求方式請求轉發只能轉發到當前伺服器內部的資源

到此這篇關於Java中Request請求轉發詳解的文章就介紹到這了,更多相關Java Request請求轉發內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!