请求转发和重定向的区别

概念

请求转发:是指服务器内部的页面跳转,即在服务器端完成跳转过程,客户端浏览器感知不到这一过程。

重定向:是指服务器向客户端浏览器发送特殊的响应,让浏览器再向新的 URL 发送请求,实现页面跳转。

使用方法

请求转发

request.getRequestDispatcher("/RequestDemo6").forward(request,response);

重定向

response.sendRedirect("/path/to/destination");

区别

访问外部资源:

请求转发不能访问外部资源(因为服务器不能访问其他的服务器)

重定向可以访问外部资源(因为本服务器通过响应告诉客户端重新向其他服务器发送请求)

访问受保护的页面:

请求转发可以访问受保护的页面(因为转发是服务器内部的跳转)

重定向不可以访问受保护的页面(因为客户端不能直接访问受保护文件夹里的资源)

实现方式

请求转发是服务器内部完成的,浏览器不知道具体页面位置。

重定向是服务器发送给浏览器的一个特殊响应,让浏览器发起新的请求。

地址栏

请求转发可以共享同一个请求对象,因此可以在转发前后共享数据。

重定向不能共享同一个请求对象,因为它实际上是两次请求过程。

应用场景

请求转发适合在同一个应用内部进行页面跳转,保持地址栏不变,并且可以共享数据。

重定向适合在不同应用之间进行跳转,或者需要更改浏览器地址栏显示的情况下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值