請求的重新導向和請求指派

來源:互聯網
上載者:User

 

請求的重新導向和請求指派

重新導向

–        HttpServletRequest介面提供的sendRedirect()方法用於產生302響應碼和Location回應標頭,從而通知用戶端去重新訪問Location回應標頭中指定的URL,其完整的定義文法如下:

•         public void sendRedirect(String location) throws IOException;

–        其中的location參數指定了重新導向的URL,它可以使用絕對URL和相對URL,Servlet容器會自動將相對URL轉換成絕對URL後,再產生location頭欄位。

請求指派

–        Servlet API中定義了一個RequestDispatcher介面,俗稱請求指派器。它定義了如下兩個方法:

•         public void forward(ServletRequest request, ServletResponse response)

•               throws ServletException,IOException;

•         public void include(ServletRequest request, ServletResponse response)

•               throws ServletException,IOException;

–        擷取RequestDispatcher執行個體的方式主要有兩種:

•         調用ServletContext介面提供的getRequestDispatcher(String url)方法。

•         調用ServletRequest介面提供的getRequestDispatcher(String url)方法。

重新導向和請求指派的比較
HttpServletResponse的sendRedirect()方法實現的重新導向和RequestDispatcher的forward()方法實現的請求轉寄的比較:

1、請求指派只能將請求轉寄給同一個Web應用中的其他組件;而重新導向不僅可以定向到當前應用程式中的其他資源,也可以重新導向到其他網站的資源上。

2、重新導向的訪問過程結束後,瀏覽器地址欄中顯示的URL會發生改變,由初始的URL地址變成重新導向的目標URL;而請求轉寄過程結束後,瀏覽器地址欄保持初始的URL地址不變。

3、請求指派的發起者和被調用者之間共用相同的request執行個體和response執行個體,它們屬於同一個“請求/響應”過程;而重新導向的發起者和被調用者使用各自的request執行個體和response執行個體,它們各自屬於獨立的“請求/響應”過程。

利用請求域屬性傳遞對象資料

HttpServletRequest介面中提供了幾個方法用來操作請求執行個體中儲存的對象:

(1)public void setAttribute(String name, Object obj):將Object Storage Service進HttpServletRequest執行個體中。

(2)public Object getAttribute(String name):檢索儲存在HttpServletRequest執行個體中的對象。

(3)public Enumeration getAttributeNames():返回包含HttpServletRequest執行個體中的所有屬性名稱的Enumeration對象

(4)public void removeAttribute(String name):從HttpServletRequest執行個體中刪除指定名稱的屬性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.