HttpServletResponse的sendRedirect()方法 和 RequestDispater的forward()方法都可以让浏览器获得另一个URL所指向的资源所作出的响应。但是两者内部运行机制有很大的区别。
sendRedirect() 重定向。forward()请求分派。
1.forward只能将请求转发给同一个web应用中的其它组件。sendRedirect()不仅可以访问当前应用程序的其他资源,还可以重定向到其他站点的资源上。
2.重定向的访问过程结束后,浏览器地址中的url会发生改变,由原来的变成重定向的目标URL。而请求转发过程结束后,浏览器地址栏保持不变。
3.请求分派的发起者和被调用者共享相同的request实例和response实例,它们属于同一个“请求/响应”过程。而重定向的发起者和被调用者使用各自的request和response实例,它们各自属于独立的“请求/响应”过程。