转发:
request.getRequestDispatcher(URL).forward(request,response); 转发仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;
重定向:
response.sendRedirect(URL); 重定向是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。
两者比较:从上所述,可以看出“转发”比“重定向”更加的高效,在转发可以满足需求时,尽量使用转发,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其他服务器上的资源,则必须使用“重定向”response.sendRedirect(URL);
效率上比较: 转发 大于 重定向
转发:URL不改变 带值传递
重定向:URL改变 不带值
有不足之处欢迎大家指正!