1. 程式人生 > >forwad與redirect區別

forwad與redirect區別

搞不懂什麼時候用forward?什麼時候用redirect?

首先要明確他們的含義:

forward是轉發,redirect是重定向

具體用什麼歸結於要不要資料共享(共享response、request物件)

當你在一個servlet中做一件事情,但事情還沒有做完卻要跳到另一個元件(可以是jsp、servlet等),就要轉發forward

當你在一個servlet中做一件事情,事情已經做完後要跳到另一個元件,可以用重定向redirect

重定向是伺服器想客戶端(瀏覽器)重新發送一個定向請求(它可以改變瀏覽器位址列中的地址)

轉發是在伺服器內轉到另一個元件(但還是原來的請求),位址列不會改變

redirect就是單純的頁面跳轉,而forward會把request、response物件一起傳到跳轉的頁面中去,可以使用request.setAttribute和session.setAttribute加進去的物件都可以在跳轉過去的頁面裡取出來

簡單說:

forward是轉發,是可以傳遞引數;redirect是重定向。簡單的轉發時位址列地址不會發生改變,而重定向位址列中的地址是改變的