servlet 實現頁面跳轉的兩種方法

2021-07-11 19:03:40 字數 822 閱讀 6113

servlet 實現頁面跳轉的兩種方法:1。sendredirect,2.getrequestdispatcher。

response.sendredirect("next.jsp");

request.getrequestdispatcher("next.jsp").forward(request,response);

裡面的引數可以是 jsp的名稱,也可以是**。do

res.sendredirect()=重定向 forward(req,res)=** 

重定向和**有乙個重要的不同:當使用**時,jsp容器將使用乙個內部的方法來呼叫目標頁面,新的頁面繼續處理同乙個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第乙個頁面通知瀏覽器傳送乙個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的url會變成新頁面的url, 而當使用**時,該url會保持不變。重定向的速度比**慢,因為瀏覽器還得發出乙個新的請求。同時,由於重定向方式產生了乙個新的請求,所以經過一次重定向後,request內的物件將無法使用。 

怎麼選擇是重定向還是**呢?通常情況下**更快,而且能保持request內的物件,所以他是第一選擇。但是由於在**之後,瀏覽器中url仍然指向開始頁面,此時如果過載當前頁面,開始頁面將會被重新呼叫。如果你不想看到這樣的情況,則選擇**。 

**和重定向的區別 

不要僅僅為了把變數傳到下乙個頁面而使用session作用域,那會無故增大變數的作用域,**也許可以幫助你解決這個問題。 

重定向:以前的request中存放的變數全部失效,並進入乙個新的request作用域。 

**:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。

關於在servlet中實現頁面跳轉的兩種方式

1 redirect 方式 response.sendredirect sth.jsp 頁面的路徑是相對路徑。sendredirect可以將頁面跳轉到任何頁面,不一定侷限於本web應用中,如 response.sendredirect url 跳轉後瀏覽器位址列變化。這種方式要傳值出去的話,只能在u...

jsp和servlet中頁面跳轉彙總

當前專案路徑 要跳轉的位置。請參考相對路徑和絕對路徑的獲取方法 1.位址上顯示的是最後的那個資源的路徑位址 2.請求次數最少有兩次,伺服器在第一次請求後,會返回302 以及乙個位址,瀏覽器在根據這個位址,執行第二次訪問。3.可以跳轉到任意路徑。不是自己的工程也可以跳。4.效率稍微低一點,執行兩次請求...

js實現頁面跳轉的兩種方式

createtime 2017年8月24日08 13 52 author marydon js實現頁面跳轉的兩種方式 方式一 window.location.href url 說明 我們常用來在js中實現頁面跳轉的方法,使用get方式傳送請求,傳參有限 更多介紹,見文章 js操作當前視窗 方式二 通...