重定向和转发的一个重要的不同:
重定向是第一个页面通知浏览器发送一个新的页面请求。即张三找李四借钱。李四让张三去找王五!
即让用户再次确认浏览器发出的请求,用户是明白页面跳转目的地。
与之相反。使用转发的时候,jsp容器会使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器用户是不知道这个过程的。即张三找李四借钱。李四替张三找王五借钱。并把钱借给张三!
所以当使用转发的时候该url会保持不变。而重定向方式的浏览器显示的页面ur会变成新页面的url。并且重定向因为须要再次发出请求所以訪问的速度会比转发慢!
并且因为再次发送了请求,所以经过重定向之后request内的对象将无法使用。
转发和重定向的优缺点及选择时候的先后顺序:
普通情况下是优先使用转发的,因为转发通常情况下更快,可是因为转发之后跳转到目标页面,可是url没有发生改变。所以在重载的时候会又一次调用開始页面。可是转发可以解决进行页面之间传递数据的时候使用session带来的作用域变大的问题。
转发仅仅是将两个页面在不通知浏览器的情况下拼接在了一起,当中的request都可以正常使用。重定向则是进入到了新的页面,url也发生了变化,之前的request所有失效!