重定向与请求转发的区别

在servlet开发过程中,我们常常需要实现多个servlet之间的调用,常用的方式就是重定向和请求转发。

1.重定向

我们把客户端当成运货司机,服务端当成工厂,那么重定向就是运货司机把初始原料给工厂1加工,

工厂1只能把这个原料加工成半成品,然后又把货物给了运货司机,并给了他下一步加工厂的地址,

然后司机就跟着地址前往工厂2,然后是工厂3,4.等等直到加工完成。

 这里的工厂2并不是只能在tomcat服务器里的,任何一个可以访问的网站都能进行跳转

浏览器至少发送两次请求,但只有第一次是用户手动发送的

但是从这个图就可以看出,这样弄也太麻烦了吧,假如一个工厂在中国北方,一个在南方,那司机何时

才能把货物送达?这就是重定向的一个缺点,大部分时间都浪费在了往返次数上,于是就有了第二种方法

2.请求转发

还是运货司机和工厂,但是这次的工厂它不仅仅只能完成工厂1的活了,它把一个材料加工成成品的工序

全部集成到一起了,司机把原料运到工厂,工厂的工序1完成操作,就被流水线自动转到工序2去了,一套

下来直到加工完成

 

此图看出,请求转发方法的servlet之间的调用都是在服务器内部的,节省了往返次数,增加了

服务速度,用户只需要发送一次请求

当然,这种方式就只能调用服务器内(工厂)的servlet,对于其他服务器的就无法调用了

 3.附上思维导图

 

posted @ 2021-04-09 23:13  狄拉克星海  阅读(151)  评论(0)    收藏  举报