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

          服務器端的重定向可以有兩種方式,一是使用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 丁克設計 閱讀(419) 評論(0)  編輯  收藏 所屬分類: j2ee技術文檔

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          留言簿(6)

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 三江| 罗山县| 凯里市| 营口市| 娄底市| 扬中市| 新邵县| 射洪县| 壶关县| 宁德市| 钦州市| 云龙县| 六盘水市| 纳雍县| 彭山县| 江永县| 厦门市| 河曲县| 泽库县| 永兴县| 霍州市| 壤塘县| 金溪县| 南投市| 博白县| 肥城市| 林周县| 丽水市| 兴海县| 张家港市| 贡觉县| 娱乐| 滕州市| 工布江达县| 文昌市| 惠水县| 泸水县| 拉孜县| 吴旗县| 潞西市| 巫溪县|