1. 程式人生 > >java程式設計師面試寶典筆記

java程式設計師面試寶典筆記

RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的區別是:前者僅是容器中控制權的轉向,在客戶端瀏覽器位址列中不會顯示出轉向後的地址,他是不會改變Request的值,如果你需要在下一個頁面中能從中獲取新的資訊的話,你可以Request.setAttribute()來放置一些標誌,這樣從下一個頁面中獲取;後者則是完全的跳轉,瀏覽器將會得到跳轉的地址,並重新發送請求連結。這樣,從瀏覽器的位址列中可以看到跳轉後的連結地址。所以,前者更加高效,在前者可以滿足需要時,儘量使用RequestDispatcher.forward()方法,並且,這樣也有助於隱藏實際的連結。在有些情況下,比如,需要跳轉到一個其它伺服器上的資源,則必須使用 HttpServletResponse.sendRequest()方法。