RequestDispatcher.forward ()方法和HttpServletResponse.sendRedirect()方法的区别是:
RequestDispatcher.forward ()仅是容器中控制权的转向,在客户端浏览器地址栏中不 会显示出转向后的地址;
HttpServletResponse.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。
所以, 前者更加高效,在前者可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。
转向时,如果需要保持当前页面的一些request信息,需要考虑将request对象采用hidden input保存下来。