[英]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.