请求转发与重定向的区别

本文详细介绍了HTTP请求中转发与重定向的区别,包括速度、请求次数、地址栏变化等方面,并提供了Servlet及Spring Controller的代码示例,展示了如何实现转发与重定向操作。此外,还讨论了在Spring框架中Controller之间的跳转策略。

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

1.转发与重定向的区别

-转发在服务器端完成的;重定向是在客户端完成的
-转发的速度快;重定向速度慢

-转发的是同一次请求;重定向是两次不同请求

-转发不会执行转发后的代码;重定向会执行重定向之后的代码

-转发地址栏没有变化;重定向地址栏有变化

-转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成

-Forward是在服务器端的跳转,就是客户端一个请求发给服务器,服务器直接将请求相关的参数的信息原封不动的传递到该服务器的其他jsp或servlet去处理,而Sendredirect是在客户端的跳转,服务器会返回给客户端一个响应报头和新的URL地址,原来的参数什么的信息如果服务器端没有特别处理就不存在了,浏览器会访问新的URL所指向的servlet或jsp,这可能不是原先服务器上的webservce了。

2.servlet代码示例

//转发,转发是在服务器端转发的,客户端是不知道的
request.getRequestDispatcher("/student_list.jsp").forward(request, response);
//重定向,不会共享request
//以下写法错误,该 "/"代表了8080端口
//response.sendRedirect("/student_list.jsp");
response.sendRedirect(request.getContextPath() + "/student_list.jsp");

3.controller控制层示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值