Servlet中重定向和请求转发的区别?

本文探讨了Servlet中重定向和请求转发的区别。重定向是客户端行为,URL地址栏改变,数据丢失,常用于跨应用跳转;请求转发是服务器行为,地址栏不变,能传递数据,效率高。在速度和应用场景上,转发通常更快,适用于内部资源跳转,而重定向适合外部网站跳转和防止表单重复提交。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重定向:客户端重新发送新的请求,无法request携带数据。地址栏会发生改变。

请求转发: 地址栏不会发生改变,在服务器端完成,效率高 使用request携带数据。

 

request.setAttribute(key,value); request对象存放数据
request.getAttribute(key); request对象获取数据

 

转发和跳转的小结

1、转发使用的是req.getRequestDispatcher()方法;重定向使用的是resp.sendRedirect();
2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;
3、转发是服务器行为,重定向是客户端行为;
4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
5、转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围);

转发和重定向的选择

1、重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。

2、因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。

转发和重定向的应用场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值