Java Web jsp中有關頁面跳轉和轉發與重定向的區別
阿新 • • 發佈:2018-12-01
響應頭
通過設定響應頭實現頁面跳轉,並且在面試中也會問及是否是重定向還是轉發
最後給大家簡單介紹轉發和重定向的區別
Location
- Location需要與狀態碼302配合使用,完成頁面重定向
- Location: http://www.banma.com
- 指定頁面要跳轉到的下一個頁面
//設定一個響應頭 response.setHeader("location", "01-form.html"); // 設定它的狀態碼為302 response.setStatus(302); System.out.println("使用重定向");
Refresh
- 設定響應狀態碼200(不是必須的)
- Refresh: 1;url=/day35/hello.html
- 過多少秒以後訪問指定的URL地址
//設定響應頭 response.setHeader("refresh", "3;url=http://www.banma.com"); response.setHeader("refresh", "3;url=01-form.html"); //設定響應碼 response.setStatus(200);
Response物件方法
response.sendRedirect("url")
Request物件方法
- 轉發:實現頁面跳轉
request.getRequestDispatcher("/url").forward(request, response)
JS
location物件
out.print("<script>");
out.print("alert('使用者名稱或密碼不正確');");
out.print("location.href='login.html';");
out.print("</script>");
轉發和重定向
- 相同:轉達和重定向都可以進行頁面跳轉
- 區別:以轉發說明
- 位址列:顯示上一個地址
- 請求次數:一次
- 請求域中的資料:資料保留,因為是同一次(如果在記錄第幾次登陸,一直重新整理那麼資料也就跟著變化,因為登陸賬號資料還存在)
- 轉發的根目錄:http://localhost:8080/專案地址/ (重定向:http://localhost:8080/)