在servlet开发过程中,我们常常需要实现多个servlet之间的调用,常用的方式就是重定向和请求转发。
1.重定向
我们把客户端当成运货司机,服务端当成工厂,那么重定向就是运货司机把初始原料给工厂1加工,
工厂1只能把这个原料加工成半成品,然后又把货物给了运货司机,并给了他下一步加工厂的地址,
然后司机就跟着地址前往工厂2,然后是工厂3,4.等等直到加工完成。
这里的工厂2并不是只能在tomcat服务器里的,任何一个可以访问的网站都能进行跳转
浏览器至少发送两次请求,但只有第一次是用户手动发送的
但是从这个图就可以看出,这样弄也太麻烦了吧,假如一个工厂在中国北方,一个在南方,那司机何时
才能把货物送达?这就是重定向的一个缺点,大部分时间都浪费在了往返次数上,于是就有了第二种方法
2.请求转发
还是运货司机和工厂,但是这次的工厂它不仅仅只能完成工厂1的活了,它把一个材料加工成成品的工序
全部集成到一起了,司机把原料运到工厂,工厂的工序1完成操作,就被流水线自动转到工序2去了,一套
下来直到加工完成
此图看出,请求转发方法的servlet之间的调用都是在服务器内部的,节省了往返次数,增加了
服务速度,用户只需要发送一次请求
当然,这种方式就只能调用服务器内(工厂)的servlet,对于其他服务器的就无法调用了
3.附上思维导图
原文:https://www.cnblogs.com/ssr1377/p/14639241.html