jsp的頁面跳轉有兩種方法:RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法。
它們的區別是:
RequestDispatcher.forward()方法僅是容器中控制權的轉向,在客戶端浏覽器地址欄中不會顯示出轉向後的地址,他是不會改變Request的值,如果需要在下一個頁面中能從中獲 取新的信息的話,可以Request.setAttribute()來放置一些標志,這樣從下一個頁面中獲取。其寫法如下:
try{
request.getRequestDispatcher("display.jsp").forward(request,response);
}
catch(Exception e){
e.printStackTrace();
}
HttpServletResponse.sendRedirect()則是完全的跳轉,浏覽器將會得到跳轉 的地址,並重新發送請求鏈接。這樣,從浏覽器的地址欄中可以看到跳轉後的鏈接地址。其寫法如下:
response.sendRedirect("display.jsp");
兩者相對來說RequestDispatcher.forward()方法更加高效,當它可以滿足需要時,盡量使用Request Dispatcher.forward()方法,並且,這樣也有助於隱藏實際的鏈接。