response重定向和request轉發 通俗易懂
為什麼response重定向和為什麼request是轉發?
當我們些許的去思考這個問題的時候,是否和我一樣有恍然大悟的感覺呢。
request的轉發
首先說說request,他是使用者需求資料的載體,把使用者的資料交給他,他去把請求給伺服器送去,這就是request。轉發,這個片語我麼從來都不陌生,喂喂,把你收到的第一封情書轉發給我欣賞欣賞~~ 不要讓你的pursur知道哦。
看過一篇文章,有這樣一個比喻,我們可以把request的轉發這樣理解。有一個人叫瀏覽器
response重定向
再說說response重定向,重定向就是重新定方向,人生的路由很多很多條,我們有很多很多種選擇,同時有很多種不同的快樂的方式。走這條路我們走不下去的時候,我們不一定就堅持,錯誤的堅持讓我們丟了自己,所以我們就開始“重定向”,又開始新的嘗試了。response是伺服器端對客戶端發來請求的迴應,告訴使用者重新發送一個對另一個URL的請求。
還說瀏覽器這個人,第二次寫信和張三借錢,張三這次回信,說自己其實沒錢,並把張四的地址給了瀏覽器,讓瀏覽器寫信找張四去借,把張四的地址發給了瀏覽器,瀏覽器寫信給張四,最終張四收到信,並把錢回信寄給了瀏覽器。這次瀏覽器傳送了兩次請求,收到了兩次回覆。
重定向:
轉發:
重定向和轉發比較:
轉發重定向比較 |
request.getRequestDispatcher("xxx.jsp").forward(request, response); |
response.sendRedirect("xxx"); |
---|---|---|
變數作用域 |
request中存放的變數不會失效 |
request存放的變數失效,進入一個新的request作用域 |
瀏覽器的地址 |
位址列保持初值不會改變 |
改變為重定向的頁面地址 |
作用範圍 |
只能是同一個web應用中的元件 |
可重定向到其他程式資源或者其他站點 |
URL以/開頭 |
相對於web應用程式根目錄 |
相對於web站點根目錄 |
各自優點 |
相對高效,隱藏實際連結地址。 |
能跳轉到其他的伺服器上的資源。 |
轉發和重定向的例子在這裡就不一一列舉了,程式碼太多了,本篇的篇幅也有些長了。。關於jsp的其他物件就不一一介紹了,下一篇講解jsp中的那些亂碼。
不知道您是否看懂了......我有些豁然開朗了。相信在更多的實踐中理解的會更加深刻的。gogogo