首頁常見問題正文

Java請求和響應(yīng):實現(xiàn)請求重定向

更新時間:2023-02-14 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在某些情況下,針對客戶端的情況,一個Servlet類可能無法完成全部工作。這時,可以使用請求重定向完成這一工作。請求重定向指Web服務(wù)器接收到客戶端的請求后,可能由于某些條件的限制,不能訪問當(dāng)前請求URL所指向的Web資源,而是指定了一個新的資源路徑,讓客戶端重新發(fā)送請求。

  為了實現(xiàn)請求重定向,HttpServletResponse接口定義了一個sendRedirect()方法,該方法用于生成302響應(yīng)碼和location響應(yīng)頭,從而通知客戶端重新訪問Location響應(yīng)頭中指定的URL,sendRedirect()方法的完整語法如下所示:

   public void sendRedirect(java.lang.String location)throws java.io.IOException

  在上述方法代碼中,參數(shù)location可以使用相對URL,Web服務(wù)器會自動將相對URL翻譯成絕對URL,再生成Location頭字段。

  sendRedirect()方法的工作原理如圖10-13所示。

1676343581167_sendRedirect()方法的工作原理.jpg

  圖10-13 sendRedirect()方法的工作原理

  在圖10-13中,當(dāng)客戶端訪問Servlet1時,由于在Servlet1中調(diào)用了sendRedirect()方法將請求重定向到Servlet2,因此,瀏覽器收到Servlet1的響應(yīng)消息后,立刻向Servlet2發(fā)送請求,Servlet2對請求處理完畢后,再將響應(yīng)消息回送給客戶端瀏覽器并顯示。

分享到:
在線咨詢 我要報名
和我們在線交談!