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中的示意图