11-11 张森霖

重定向与请求转发:

1.实现
转发:用request的getRequestDispatcher()方法得到ReuqestDispatcher对象,调用forward()方法

request.getRequestDispatcher("other.jsp").forward(request, response);
1

重定向:调用response的sendRedirect()方法

response.sendRedirect("other.jsp");
1

2.地址栏
转发:不变,不会显示出转向的地址
重定向:会显示转向之后的地址
3.请求
重定向:至少提交了两次请求
4.数据
转发:对request对象的信息不会丢失,因此可以在多个页面交互过程中实现请求数据的共享
重定向:request信息将丢失
5.原理
转发:是在服务器内部控制权的转移,是由服务器区请求,客户端并不知道是怎样转移的,因此客户端浏览器的地址不会显示出转向的地址。
重定向:是服务器告诉了客户端要转向哪个地址,客户端再自己去请求转向的地址,因此会显示转向后的地址,也可以理解浏览器至少进行了两次的访问请求。

二、调用方式

  • 情景一:在servlet中调用转发、重定向
    转发到new.jsp
    request.getRequestDispatcher(“new.jsp”).forward(request, response);
    重定向到new.jsp
    response.sendRedirect(“new.jsp”);
  • 情景二:在jsp页面中实现转发、重定向
    -转发到new.jsp

//重定向到new.jsp%
<%response.sendRedirect(“new.jsp”);

标签

评论

this is is footer