服務器端的重定向的兩種方式

          服務器端的重定向可以有兩種方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法.

          HttpServletResponse.sendRedirect()方法將響應定向到參數location指定的、新的URL。location可以是一個絕對的URL,如response.sendRedirect("http://java.sun.com")也可以使用相對的URL。如果location以“/”開頭,則容器認為相對于當前Web應用的根,否則,容器將解析為相對于當前請求的URL。這種重定向的方法,將導致客戶端瀏覽器的請求URL跳轉。從瀏覽器中的地址欄中可以看到新的URL地址,作用類似于上面設置HTTP響應頭信息的實現。

          RequestDispatcher.forward()方法將當前的request和response重定向到該RequestDispacher指定的資源。這在實際項目中大量使用,因為完成一個業務操作往往需要跨越多個步驟,每一步驟完成相應的處理后,轉向到下一個步驟。比如,通常業務處理在Servlet中處理,處理的結果轉向到一個JSP頁面進行顯示。這樣看起來類似于Servlet鏈的功能,但是還有一些區別。一個RequestDispatcher對象可以把請求發送到任意一個服務器資源,而不僅僅是另外一個Servlet。 include()方法將把Request Dispatcher資源的輸出包含到當前輸出中。

          注意,只有在尚未向客戶端輸出響應時才可以調用forward()方法,如果頁面緩存不為空,在重定向前將自動清除緩存。否則將拋出一個IllegalStateException異常。

          posted on 2008-12-07 12:12 丁克設計 閱讀(416) 評論(0)  編輯  收藏 所屬分類: j2ee技術文檔

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          留言簿(6)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 都安| 禄劝| 台湾省| 易门县| 大同市| 靖安县| 章丘市| 涡阳县| 得荣县| 武城县| 洪江市| 淮滨县| 汤原县| 喀喇沁旗| 贡觉县| 沅陵县| 土默特右旗| 抚顺市| 武定县| 秦皇岛市| 芮城县| 远安县| 中西区| 织金县| 运城市| 乳山市| 定兴县| 宁武县| 龙南县| 清新县| 汝城县| 新津县| 海南省| 和平区| 西丰县| 于田县| 潼关县| 揭东县| 建平县| 淳化县| 墨竹工卡县|