转发和重定向的联系和六种区别

转发和重定向的联系和六种区别

联系:他们两个都是资源跳转的方式

区别: 1. 从作用上来谈
转发的话是服务器内部的资源跳转,servlet直接进行跳转到另外的servlet资源路径,tomact通过反射创建其字节码对象,tomact调用其service方法;
重定向的话是浏览器这边进行跳转,如果在所访问servlet资源中发现了重定向,然后response响应到浏览器,再让浏览器再访问具体的某个servlet资源路径
区别:2. 从具体操作上来谈
转发的话是先用request对象获取请求转发器,传入跳转的路径,然后再调用其forward方法传递请求响应对象,从而进行转发
重定向的话是用response对象设置好状态码302,然后设置响应头location,值就是跳转的路径,但是重定向这种方式太麻烦了,因为状态码302和response对象所设置的响应头都是固定的,所以有简单方式,直接传入location所对应的路径就行,简便写法如下所示:

简单的重定向方法:
response.sendRedirect(“要进行重定向的路径”);

区别3.重定向在当前页面只能执行一次,如果进行了多次重定向,那么会指向最后个重定向,也就是说只能执行一次,转发在当前页面只能执行一次,如果进行了多次转发,则直接报错,如果想进行多次重定向或者转发的话,那要求转发或重定向到的资源下再写转发操作代码
区别4.重定向的话优先级非常低,只有在执行完当前方法内的代码后才会进行重定向,但是转发的话是直接就去转发,他不会等代码执行完然后再执行
区别5.转发的话只能转发到当前tomact服务器下部署的某个项目的资源,但是重定向的话可以访问其他服务器的资源
区别6如果当前项目中有虚拟路径的话,那么转发的时候,如果我们用绝对路径简写的形式写,那么不需要加虚拟路径,因为虚拟路径是针对项目的,我们已经在项目里面了,加上会报错,重定向的时候如果我们用绝对路径简写的形式写,是需要加上虚拟路径的,当然如果区别6说的这都用相对路径来写的话没这事

博客
rabbitmq
04-19 259
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值