相同
均是页面的跳转
均是由服务器端控制的跳转
区别一:实现语句不同
转发:request.getRequestDispatccher(“***”).forward(request,response);
重定向:response.sendRedirect(“***”);
区别二:跳转效率不同
转发效率相对高
重定向效率相对低
区别三:是否共享同一个request的数据
转发源组件与目标组件共享同一个request的数据
重定向源组件与目标组件不共享同一个request数据(可使用session共享数据)
区别四:浏览器URL地址不同
转发后浏览器URL地址保持不变(源组件地址)
重定向后浏览器URL地址改编为重定向后的地址(目标组件地址)
区别五:跳转范围不同
只能转发同一应用中的URL
可以重定向任何服务器、任何应用的URL
区别六:“/”路径的含义不同
转发时“/”代表当前项目的根路径
重定向时“/”代表当前服务器的根路径
区别七:刷新是否导致表单的重复提交
转发会导致表单重复提交
重定向不会导致表单的重复提交
区别八:是否经过过滤器
转发不经过过滤器
重定向经过过滤器