JSP中forward()與sendRedirect()區別

response.sendRedirect("display.jsp");

request.getRequestDispatcher("display.jsp").forward(request,response);

 

 

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()方法,並且,這樣也有助於隱藏實際的鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章