重定向与转发的区别大家都知道,我现在想问的是什么情况下用那个更合适??
转发和重定向的选择
1、重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。
2、因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。转发和重定向的应用场景
在上面我已经提到了,转发是要比重定向快,因为重定向需要经过客户端,但是,转发没有。但是有时候,采用重定向会更好,若需要重定向到另外一个外部网站,则无法使用转发。另外,重定向还有一个应用场景:避免在用户重新加载页面时两次调用相同的动作。
例如,当提交产品表单的时候,执行保存的方法将会被调用,并执行相应的动作;这在一个真实的应用程序中,很有可能将表单中的所有产品信息加入到数据库中。但是如果在提交表单后,重新加载页面,执行保存的方法就很有可能再次被调用。同样的产品信息就将可能再次被添加,为了避免这种情况,提交表单后,你可以将用户重定向到一个不同的页面,这样的话,这个网页任意重新加载都没有副作用, 但是,使用重定向的一个不便之处是,无法将值轻松地传递给目标页面。而采用转发,则可以简单地将属性添加到Model,使得目标视图可以轻松访问。由于重定向经过客户端,所以Model中的一切都会在重定向时丢失。但幸运的是,在Spring3.1版本以后,我们可以通过Flash属性,解决重定向时传值丢失的问题
重定向:比如你找A借钱,A没有,然后让你去找B(我们进行了两次请求,在url栏地址变化,这是客户端行为);
转发:同样你向A借钱,A没有,但是A找B借钱给你(url栏地址不会变化,我们只进行了一次请求,这是服务器行为);
打个比方。如果你的jsp用户注册完了,点击注册,跑到servlet去,就是转发。servlet将处理完的结果返回给jsp就是重定向。一般request是转发,response是重定向。
既然知道他们的区别。 结合场景再看呗。我只是一个打酱油路过的围观群众