forward与redirect,sendredirect和forward区别
forword和sendRedirect区别 forword
forword()方法是转发,sendRedirect是重定向。
1)浏览器访问Servlet1;
2)Servlet1想让Servlet2对客户端的请求进行响应,于是调用forword()方法,将请求转发给Servlet2进行处理。
3)Servlet2对请求做出响应。 sendRedIrect
交互过程如下:
1)浏览器访问Servlet1;
2)Servlet1想让Servlet2为客户端服务;
3)Servlet1调用sendRedirect()方法,将客户端的请求重定向到Servlet2;
4)浏览器访问Servlet2;
5)Servlet2对客户端的请求做出响应。 forword和sendRedirect的不同 转发(forword):浏览器地址不会改变,始终是同一个请求。重定向(sendRedirect):浏览器地址会改变,用两个请求。1)转发
a)地址栏不会改变
b)转发只能转发到当前web应用内的资源
c)可以在转发过程中,可以把数据保存到request域对象中2)重定向
a)地址栏会改变,变成重定向到的地址
b)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站
c)不能再重定向的过程,把数据保存到request中。 request.getRequestDispatcher("/xxx").forward(request,response);//转发 response.sendRedirect(request.getContextPath()+"/xxx");//重定向