瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理


          他們的調(diào)用分別如下例:
          request.getRequestDispatcher("new.jsp").forward(request, response);//轉(zhuǎn)發(fā)到new.jsp
          response.sendRedirect("new.jsp");//重定向到new.jsp

          在jsp頁面中你也會看到通過下面的方式實現(xiàn)轉(zhuǎn)發(fā):

          <jsp:forward page="apage.jsp" />


          重定向過程:客戶瀏覽器發(fā)送http請求----》web服務(wù)器接受后發(fā)送302響應(yīng)要求客戶瀏覽器發(fā)送一個新的http請求----》客戶端瀏覽器接受此響應(yīng)后在發(fā)送一個新的http請求到服務(wù)器----》服務(wù)器根據(jù)此請求尋找資源并發(fā)送給客戶,可以重定向到任意URL,不能共享request范圍內(nèi)的數(shù)據(jù)
            

          轉(zhuǎn)發(fā)過程:客戶瀏覽器發(fā)送http請求----》web服務(wù)器接受此請求后調(diào)用內(nèi)部的一個方法在容器內(nèi)部完成請求處理和轉(zhuǎn)發(fā)動作----》將目標(biāo)資源發(fā)送給客戶,只能在同一個web應(yīng)用中使用,可以共享request范圍內(nèi)的數(shù)據(jù)



          怎么選擇是重定向還是轉(zhuǎn)發(fā)呢?通常情況下轉(zhuǎn)發(fā)更快,而且能保持request內(nèi)的對象,所以他是第一選擇。但是由于在轉(zhuǎn)發(fā)之后,瀏覽器中URL仍然指向開始頁面,此時如果重載當(dāng)前頁面,開始頁面將會被重新調(diào)用。如果你不想看到這樣的情況,則選擇轉(zhuǎn)發(fā)。

          評論

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解  回復(fù)  更多評論   

          2007-09-25 00:17 by xmlspy
          一個是客戶端跳轉(zhuǎn),一個是服務(wù)器端跳轉(zhuǎn)

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解  回復(fù)  更多評論   

          2007-09-25 07:40 by 久城
          最后一句話,是不是..........

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解  回復(fù)  更多評論   

          2007-09-25 08:43 by 編程、設(shè)計是職業(yè)更是愛好
          怎么描述的有些矛盾呢?以前沒有仔細(xì)考慮過,一會兒自己動手試試吧

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解  回復(fù)  更多評論   

          2007-09-25 09:01 by 編程、設(shè)計是職業(yè)更是愛好
          OK了,正如forward的定義,跳轉(zhuǎn)時將攜同request對象,sendRedirect只是模擬console重發(fā)了一次請求。因此,前者不會引起B(yǎng)rowser Address 的變化,后者會。

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解[未登錄]  回復(fù)  更多評論   

          2007-09-25 09:09 by Java
          寫反了吧,紅色的字和藍(lán)色的字,應(yīng)該是

          重定向過程:客戶瀏覽器發(fā)送http請求----》web服務(wù)器接受后發(fā)送302響應(yīng)要求客戶瀏覽器發(fā)送一個新的http請求----》客戶端瀏覽器接受此響應(yīng)后在發(fā)送一個新的http請求到服務(wù)器----》服務(wù)器根據(jù)此請求尋找資源并發(fā)送給客戶,它可以重定向到任意URL,不能共享request范圍內(nèi)的數(shù)據(jù)。


          轉(zhuǎn)發(fā)過程:客戶瀏覽器發(fā)送http請求----》web服務(wù)器接受此請求后調(diào)用內(nèi)部的一個方法在容器內(nèi)部完成請求處理和轉(zhuǎn)發(fā)動作----》將目標(biāo)資源發(fā)送給客戶,它只能在同一個web應(yīng)用中使用,可以共享request范圍內(nèi)的數(shù)據(jù)。

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解  回復(fù)  更多評論   

          2007-09-25 09:40 by 草兒
          好像bz弄反了哈哈

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解  回復(fù)  更多評論   

          2007-09-25 18:14 by 喬兵
          各位眼力不錯,是有錯誤,已改正,如給大家?guī)聿槐阏堃娬?/div>

          # re: 轉(zhuǎn)發(fā)和重定向的區(qū)別的一點理解  回復(fù)  更多評論   

          2007-09-27 10:50 by 千里冰封
          呵呵,知錯能改不錯

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 濮阳县| 调兵山市| 苗栗县| 特克斯县| 洛阳市| 会宁县| 驻马店市| 泰和县| 当涂县| 昭觉县| 松桃| 武义县| 确山县| 永仁县| 苗栗县| 道真| 响水县| 灵丘县| 彰化县| 夏河县| 长寿区| 贞丰县| 黑水县| 井冈山市| 镇江市| 刚察县| 吉首市| 翁牛特旗| 灵武市| 松滋市| 天镇县| 墨竹工卡县| 碌曲县| 东乡县| 红河县| 南开区| 梅河口市| 彭州市| 山阳县| 尚义县| 塘沽区|