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

          服務器端的重定向可以有兩種方式,一是使用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)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 灵石县| 佛冈县| 普安县| 澄江县| 青田县| 许昌市| 桓台县| 梅州市| 蓝山县| 陆川县| 政和县| 盖州市| 凤阳县| 行唐县| 临沧市| 远安县| 彰武县| 拉萨市| 莆田市| 西贡区| 襄樊市| 武安市| 通山县| 商洛市| 禄劝| 唐河县| 山丹县| 柘荣县| 永仁县| 富蕴县| 岳西县| 电白县| 临沧市| 永靖县| 临夏县| 乡城县| 济南市| 页游| 芮城县| 昌都县| 龙山县|