關於Servlet頁面跳轉
這篇介紹在Servlet中頁面跳轉的兩種方法。
1.forward(request, response);
2.sendRedirect();
forward(request, response);
1 2 3 4 5 6
| 1.Server Side呼叫 2.定義在RequestDispatcher介面,由request.getRequestDispatcher().forward(request, response);呼叫 3.屬於內部轉址,URL不會顯示另一支jsp名稱 4.因為是內部轉址,可以透過setAttribute設定傳遞參數 5.效率較高 6.適用於權限管理轉頁時使用
|
sendRedirect();
1 2 3 4 5
| 1.Server Side呼叫 2.定義在HttpServletResponse,由response.sendRedirect();呼叫 3.直接外部呼叫另一支jsp,URL會顯示另一支jsp名稱 4.效率較低(因為cilent會在request一次) 5.適用於跳至外部網站或回主畫面使用
|
forward Example
1
| request.getRequestDispatcher("Index.jsp").forward(request, response);
|
sendRedirect Example
1
| response.sendRedirect("Index.jsp");
|
傳遞參數方法
1 2 3 4
| 塞值 request.setAttribute("test", name); 取值 request.getAttribute("test")
|
sendRedirect 不能使用傳遞參數
1 2
| 因為sendRedirect間接產生一個新的request, 所以舊的request setAttribute的參數會抓不到。
|