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

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

JavaWeb重定向和請求的轉發

更新時間:2021-09-06 12:34:47 來源:動力節點 瀏覽1163次

1.什么是請求轉發和請求重定向?

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

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

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

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

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

(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將響應返回給客戶端。達到了請求轉發的目的。

(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為重定向的地址。

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

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

具體的區別體現在:

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

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

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

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

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

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

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

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

以上就是動力節點小編介紹的"JavaWeb重定向和請求的轉發",希望對大家有幫助,想了解更多可查看JavaWeb教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩欧美一二区 | 在线国产一区 | 黄色网欧美 | 日日夜夜免费精品视频 | 精品新一区二区三区四区 | 国内精品视频在线观看 | 香蕉视频在线观看免费 | 欧美日韩在线观看视频 | 牛牛影视ac精品视频 | 色婷婷免费视频 | 亚洲高清国产一线久久 | 国产高清天干天天视频 | 国产成人精品一区二区仙踪林 | 日韩美a一级毛片 | a毛片成人免费全部播放 | 精品乱人伦一区二区 | 91成人午夜精品福利院在线观看 | 女性牲交一级毛片 | 欧美999| 一色屋精品亚洲香蕉网站 | 五月天堂婷婷 | 五月天久久综合 | 成年女人免费看一级人体片 | 澳门成人免费永久视频 | 久青草视频在线 | 亚洲精品一线观看 | 国产精品热久久毛片 | 国产成人精品在线观看 | 99久久久国产精品免费牛牛四川 | 这里只有精品视频在线 | 天天在线欧美精品免费看 | 999yy成年在线视频免费看 | 天天干天天操天天爽 | 久久国产精品亚洲va麻豆 | 中文字幕精品视频在线 | 美国一级毛片片aa久久综合 | 久久精品国产一区二区三区肥胖 | 久久久精品影院 | 欧美日韩网址 | 欧美色黄视频 | 青青青国产免费手机视频在线观看 |