请求转发和重定向的区别与路径问题

本文详细介绍了HTTP中请求转发和重定向的区别,包括它们在服务器内部与客户端的不同处理方式,以及路径问题。请求转发是服务器内部跳转,地址不变,而重定向导致URL变化,产生新请求。在处理路径时,重定向需要考虑web应用的根路径,而转发则更为灵活。在客户端请求时,路径不应以”/”开头,以避免路径问题。

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

请求转发和重定向的区别

1.请求转发是在服务器内部的跳转,整个过程中只有1个请求,重定向是在客户端的跳转,产生了新请求
2.请求转发后,地址栏上的url不变,可以继续使用request中的数据,而重定向后,url会改变,就不能使用原request中的数据
3.请求转发只能跳转到服务内部的资源,重定向可以访问服务器外部的资源

请求转发和重定向时的路径问题

转发或重定向时路径上带”/”和不带”/”的区别
1)对于重定向
如果资源的路径前面有”/”,此时”/”参照web服务器的根路径,会丢失web应用的根路径,解决方案:在”/”前面加上request.getContextPath()
response.sendRedirect(request.getContextPath()+"/show.jsp");
如果路径前没有”/”,那么路径相对于当前的servlet或jsp的路径的,是一个相对路径
2)对于请求转发
如果资源的路径前没有”/”,那么路径相对于当前的servlet或jsp的路径;如果路径前带了”/”,此时”/”参照web应用的根路径

总结:如果请求是客户端的请求(发生在客户端的跳转),那么路径前不要带”/”, 因为带了”/”会丢失web应用的根路径
下面几种情况是客户端的请求:重定向,通过表单发的get/post请求,超链接发的get请求,Js发的请求location.href=xxx
如果请求是在服务器端发生的,例如请求转发,那么请求路径前可以带或不带”/”.
在jsp页面上,用 p a g e C o n

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张子又

感觉有用就打赏点吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值