forward和redirect的區別是什麼?

2022-09-19 21:21:22 字數 1136 閱讀 7361

答案:在設計web應用程式的時候,經常需要將乙個系統進行結構化設計,即按照模組來劃分,讓不同的servlet來實現不同的功能,例如可以讓其中乙個servlet接收使用者的請求,另外乙個servlet

來處理使用者的請求。為了實現這種程式的模組化,就需要保證在不同的servlet之間可以相互跳轉,而servlet中主要有兩種實現跳轉的方式:forward方式與redirect方式。

forward是伺服器內部的重定向,伺服器直接訪問目標位址的url,把那個url的響應內容讀取過來,而客戶端並不知道,因此,在客戶端瀏覽器的位址列中不會顯示轉向後的位址,還是原來的位址。

由於在整個定向的過程中用的是同乙個request,因此,forward會將request的資訊帶到被定向的jsp或servlet中使用。

redirect則是客戶端重定向,是完全的跳轉,即客戶端瀏覽器會獲取到跳轉後的位址,然後重新傳送請求,因此,瀏覽器中會顯示跳轉後的位址。同時由於這種方式比forward方式多了一次網路請求,

所以,forward效率更高。需要注意的是,客戶端重定向可以通過設定特定的http頭或者寫j**ascript指令碼實現。圖17可以更好地說明它們的區別。

鑑於以上區別,一般當forward方式可以滿足需求時,盡可能地使用forward方式。但在有些情況下,例如,需要跳轉到乙個其他伺服器上的資源,則必須使用redirect方式。

引申:filter的作用是什麼?主要實現什麼方法?

filter使使用者可以改變乙個request並且修改乙個response。filter不是乙個servlet,它不能產生乙個response,它能夠在乙個request到達servlet之前預處理request,也可以在離開servlet時處理

response。filter其實是乙個「servlet chaining」(servlet鏈)。

乙個filter包括:

1)在servlet被呼叫之前截獲

2)在servlet被呼叫之前檢查servlet request

3)根據需要修改request頭和request資料。

4)根據需要修改response頭和response資料。

5)在servlet被呼叫之後截獲。

JAVA中Forward和Redirect的區別

forward和redirect代表了兩種請求 方式 直接 和間接 使用者向伺服器傳送了一次http請求,這個請求可能被直接請求 forward 和間接請求 redirect 兩種 方式有何區別呢?直接 就相當於 a找b借錢,b沒有,b去找c借,並告訴c把錢給a 間接 就相當於 a找b借錢,b沒有,...

jsp中的forward和redirect的區別

一 呼叫方式 我們知道,在servlet中呼叫 重定向的語句如下 request.getrequestdispatcher new.jsp forward request,response 到new.jsp response.sendredirect new.jsp 重定向到new.jsp 在jsp...

forward和sendredirect的區別

sendredirect forward 是不同的 request 雖然是不同的物件,但是,可以取到上乙個頁面的內容 send 後的語句會繼續執行,除非 return forward 後的語句不會繼續傳送給客戶端 速度慢 速度快 需要到客戶端的往返,可以轉到任何頁面,伺服器內部轉換,位址列有變化 位...