JAVA WEB:请求转发和重定向的区别

 sevlet response有一个重定向的方法我们先介绍一下。

1.HttpServletResponse对象的sendRedirect(String local)方法称作重定向。如果location地址前面加上

"/",则表示相对于Servlet容器的根来请求,即http://localhost:8080,如果location地址钱没有加上“/”,则表示相对于当前请求的url来寻找地址。

2.RequestDispatcher的forward(request, response)称作请求转发

3.

 请求转发和请求重定向本质的区别是:是否结束了一个request周期,而产生的新的请求

  1)请求转发,整个过程处于同一个请求当中。

  2)重定向,实际上游览器会像服务器发送两个请求。

  3)RequestDispatch是通过HttpServlet对象的getRequestDispatch()方法得到,是属于请求对象的方法。

  4)sendRedirect是HttpServletResponse对象的方法,即响应对象的方法, 既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始想客户端返回执行的结果。

  5)重定向在firebug中的示意图