2009-12-14 64 views

回答

-1

如果您不想在將控制權傳遞給另一個控制權後繼續處理原始頁,則最好使用重定向而不是轉發。

response.sendRedirect("foo.jsp"); 

這將重定向到新頁面並停止處理舊頁面。

但是 - 重定向只有在您尚未向響應主體寫入任何內容(即未將任何數據發送回客戶端)時纔可用。

+0

這不會停止執行舊的jsp頁面。請使用System.out.println(「sendRedirect之後」)進行驗證; – aProgrammer

0

你不應該在taglib中這樣做。而是在ServletFilter之前,在任何位被髮送到響應之前。否則,你將有可能進入IllegalStateException: response already committed麻煩。

0

對我來說,以下行相當奏效:

String url = "http://google.com"; 

response.reset(); 
response.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT); 
response.setHeader("Location", url); 
response.getWriter().close(); 
response.getWriter().flush();