JavaWeb 轉發與重定向解讀
轉發與重定向解讀
什麼是轉發和重定向?
舉例說明:
我想去買某件衣服,我找到了你,你呢又不賣這件衣服,但是你知道哪裡賣,那麼你告訴我,我根據你告訴我的地址去那家店裡買,這是重定向。
同樣是這個例子:
我想去買某件衣服,我找到了你,你呢又不賣這件衣服,但是你知道哪裡賣,你去他的店裡買了來交給我,讓我感覺就像是在你這裡買的一樣,這就是轉發。
兩者有什麼區別?
轉發是伺服器行為,但是重定向不是,重定向是客戶端行為。
重定向過程
瀏覽器傳送http請求——>web伺服器接受後傳送302狀態碼響應及對應新的location給客戶瀏覽器——>客戶瀏覽器發現是302響應,則自動再發送一個新的http請求,請求url是新的location地址——>伺服器根據此請求尋找資源併發送給客戶。在這裡location可以重定向到任意URL,既然是瀏覽器重新發出了請求,則就沒有什麼request傳遞的概念了。在客戶瀏覽器路徑欄顯示的是其重定向的路徑,客戶可以觀察到地址的變化的。重定向行為是瀏覽器做了至少兩次的訪問請求的。
轉發過程
客戶瀏覽器傳送http請求——>web伺服器接受此請求——>呼叫內部的一個方法在容器內部完成請求處理和轉發動作——>將目標資源傳送給客戶;在這裡,轉發的路徑必須是同一個web容器下的url,其不能轉向到其他的web路徑上去,中間傳遞的是自己的容器內的request。在客戶瀏覽器路徑欄顯示的仍然是其第一次訪問的路徑,也就是說客戶是感覺不到伺服器做了轉發的。轉發行為是瀏覽器只做了一次訪問請求。
執行效果與實現
注意位址列的地址變化情況
轉發:
這裡已經跳轉到了test.jsp但是看位址列當中的資料並不是test.jsp的地址資訊,從這裡可以看出,轉發的過程是伺服器的動作,是它幫你把所有的需要的東西拿來給你,不需要你知道怎麼拿來的。本例子中只發送了一次請求。
重定向:
這裡很明顯位址列的資訊變化了,變為含有test.jsp的地址,可以說明是伺服器給你地址,瀏覽器根據這個地址再次傳送請求,然後載入的該介面。本例子中客戶端瀏覽器請求了兩次。
相關推薦
JavaWeb 轉發與重定向解讀
轉發與重定向解讀 什麼是轉發和重定向? 舉例說明: 我想去買某件衣服,我找到了你,你呢又不賣這件衣服,但是你知道哪裡賣,那麼你告訴我,我根據你告訴我的地址去那家店裡買,這是重定向。 同樣是這個例子:
javaweb中轉發與重定向的區別
關於兩者的區別我就不用多說了,一搜一大堆,大概就是: 重定向是客戶端跳轉,轉發是伺服器端跳轉 1.在servlet中呼叫轉發、重定向的語句如下: request.getRequestDis
Struts2配置使用參數接收,轉發與重定向,多方法,ognl使用與值傳遞,struts標簽使用
isp -name users .org 填充 導航 建模 尋址 XML 本文檔包括了 Struts2配置使用參數接收,轉發與重定向,多方法,ognl使用與值傳遞,struts標簽使用 (1)首先加入jar包(最小jar組合) (1) 在web.xml中註冊
註解 轉發與重定向
sys javax println web admin 數據 let out int package controller; import java.util.HashMap; import java.util.Map; import javax.servlet.ht
servlet轉發與重定向
服務 響應 瀏覽器 etc tco cap rect mil 頁面 HttpServletRequest: 表示瀏覽器向服務器發送的請求報文,由Tomcat創建然後作為參數傳遞給我們doget,dopost方法。 功能:getParameter()獲取請求參數
轉發與重定向
工作原理 發的 結果 san 原理 rect() 初學者 定向 pat 轉發和重定向 先是看上去不同,他們的調用分別如下: equest.getRequestDispatcher("apage.jsp").forward(request, response);//
Servlet 及 請求轉發與重定向
style pattern load 需要 shutdown att nbsp host 瀏覽器 Servlet: Java編寫的服務器端程序,處理客戶端的http請求並將其結果發送到客戶端。Servlet容器Tomcat: 最熟悉的是容器就是tomcat。在tomcat中
轉發與重定向學習代碼
轉發與重定向學習代碼html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>用戶登錄</title> &l
Spring MVC溫故而知新 – 參數綁定、轉發與重定向、異常處理、攔截器
單獨 UC exclude require 加載 pre buffered nts 節點 請求參數綁定 當用戶發送請求時,根據Spring MVC的請求處理流程,前端控制器會請求處理器映射器返回一個處理器,然後請求處理器適配器之心相應的處理器,此時處理器映射器會調用Spr
SpringMVC篇:轉發與重定向、圖片檔案上傳、Json(jackson)
注意: 專案:war 和 專案:war exploded 兩者並不同,idea 執行 專案:war exploded <dependency> <groupId>org.
SpringMVC(八)轉發與重定向
SpringMVC(八)轉發與重定向 關於轉發與重定向的定義和區別網上已經有很多介紹了,這裡就不在贅述了。 下面通過一段程式碼簡單的介紹下Spring MVC中如何使用轉發與重定向 package com.lay.mvc.controller; import org.spr
Java Web jsp中有關頁面跳轉和轉發與重定向的區別
響應頭 通過設定響應頭實現頁面跳轉,並且在面試中也會問及是否是重定向還是轉發 最後給大家簡單介紹轉發和重定向的區別 Location Location需要與狀態碼302配合使用,完成頁面重定向 Location: http://www.banma.com 指定頁面要
Servlet學習筆記(四)之請求轉發與重定向(RequestDispatcher與sendRedirect)
ServletContext可以實現請求轉發(ServletContext請求轉發相關內容見之前部落格:http://blog.csdn.net/megustas_jjc/article/details/53191657),request也可以。HttpServletRequest 和 ServletCont
詳細的請求轉發與重定向的重要區別及使用場景選擇
請求轉發與重定向的區別及使用場景選擇 一、請求轉發: 伺服器行為: 因為它是程式碼與程式碼之間的資源跳轉 特點: 轉發的所有Servlet都是同一個請求,使用同一個request和response! 由最後一個Servlet完成響應體! 當前Servlet可以設
Servlet 請求轉發與重定向
請求轉發和重定向 重定向 /* 之前的寫法 response.setStatus(302); response.setHeader("Location", "login_success.html");*/ //重定向寫法: 重新定位方向
如何理解轉發與重定向?
如何理解轉發與重定向? 兔子給雞打電話 場景一 兔子撥通雞的電話。 兔子:你好,有個問題想請教你! 雞:快說吧,沒有我不會的的問題! 兔子:1+1等於幾? 雞尋思半天也不會,又怕丟了面子!忙叫來身旁的山羊說:“兔子問1+1等於幾?” 山羊拿起電話:2! 兔子:謝謝! 兔子放下電話
Web前端之cookie、session、請求轉發與重定向
http協議的特點:稱之為無狀態, 請求與請求之間不會記錄狀態(狀態就包括請求引數等資訊) Cookie:記錄多個請求之間的聯絡,儲存伺服器狀態(實現記住使用者名稱的功能) 建立Cookie Cookie c = new Cookie("名字", "值"); 瀏覽器每個域名下能夠
ServletRequest HttpServletRequest 請求方法 獲取請求引數 請求轉發 請求包含 請求轉發與重定向區別 獲取請求頭欄位
ServletRequest 基本概念 JavaWeb中的 "Request"物件 實際為 HttpServletRequest 或者 ServletRequest, 兩者都為介面 伺服器接收請求後,將請求資料進行物件封裝 功能大致分類
Servlet轉發與重定向的資源路徑問題解析
一. 問題引入 轉發和重定向可以說是Servlet中最重要的知識點也不為過,因為它決定著整個向Servlet體系中,執行流程的問題。 轉發: &nb
面試必問題目:轉發與重定向的區別——最詳細的回答
在servlet中呼叫轉發: request.getRequestDispatcher("new.jsp").forward(request,response);//轉發到new.jsp 在servlet中呼叫重定向: response.sendRedirect("new.jsp");/