簡體   English   中英

如何將HTTPRequest從一個控制器類重定向到另一控制器類?

[英]How to redirect a HTTPRequest from one controller class to other controller class?

我有兩個控制器。 一個是主控制器,另一個是中間控制器。 在中間控制器中,我應該向HTTPRequest添加標頭。 添加后,我應該將其重定向到主控制器,在其中應檢查添加的標頭。 我怎樣才能做到這一點? 有人可以幫我嗎?

似乎是使用Servlet Filter的好地方。 如果要預處理傳入的請求,可以使用servlet過濾器進行處理,然后將其簡單地鏈接到相應的servlet。

有關詳細信息,請參閱BalusC答案

如果不是這種情況,您可以只轉發請求,例如:

        request.getRequestDispatcher("/yourServlet").forward(request, response); // forward to the main servlet

向前派遣

getServletContext().getRequestDispatcher().forward("second page");

請求轉發是由JSF Controller Servlet在內部完成到另一個資源的。 瀏覽器沒有意識到Web容器的服務器端發生了什么。 因此,它仍然認為它傾向於原始請求,並在其地址欄中顯示原始URL。 但是,顯示的頁面內容來自第二頁。

重定向調度

response.sendRedirect("second page");

在這種情況下,JSF Controller Servlet指示客戶端瀏覽器(通過HTTP響應標頭)獲取另一個URL。 因此,瀏覽器將完全獲取一個新的URL,並在其地址欄中顯示第二個URL。 這可能會導致輕微的性能延遲

這里

我認為您需要轉發請求而不是重定向。

RequestDispatcher dispatcher= request.getRequestDispatcher("servlet-mapped-url");
dispatcher.forward(request, response);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM