1. 程式人生 > >Java Web jsp中有關頁面跳轉和轉發與重定向的區別

Java Web jsp中有關頁面跳轉和轉發與重定向的區別

響應頭

通過設定響應頭實現頁面跳轉,並且在面試中也會問及是否是重定向還是轉發

最後給大家簡單介紹轉發和重定向的區別

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>");

轉發和重定向

  • 相同:轉達和重定向都可以進行頁面跳轉
  • 區別:以轉發說明
  1. 位址列:顯示上一個地址
  2. 請求次數:一次
  3. 請求域中的資料:資料保留,因為是同一次(如果在記錄第幾次登陸,一直重新整理那麼資料也就跟著變化,因為登陸賬號資料還存在)
  4. 轉發的根目錄:http://localhost:8080/專案地址/   (重定向:http://localhost:8080/)