JavaWeb应用中重定向与跳转的区别

本文详细介绍了JSP与Servlet中的两种跳转方式:forward转发和sendRedirect重定向的区别。包括它们的工作原理、地址栏变化、代码执行流程、数据传递特点及应用场景。

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

针对JSP与Servlet:
两种重要的跳转:
1.request.getRequestDispatcher("地址").forward(ServletRequest, ServletResponse);效率高,速度快
 转发:服务器 接收到客户端的请求之后,服务器把控制权交到另一个JSP页面手里,新的JSP页面接收到请求之后根据情况是继续转交控制权或者显示页面由自己决定,到最后显示页面的整个过程就是一个页面跳转过程,在这个过程中,服务器可以把请求的数据在经过的页面进行传递,而不会担心数据的丢失。

a.地址栏不改变跳转——服务器端跳转,服务器之间内部跳转,相同的request,可传参;
b.执行到跳转语句后无条件立刻跳转——之后的代码不再被执行;
注意:如果使用forward跳转,则一定要在跳转之前释放掉全部的资源;
c.使用forward时,request设置的属性依然能保留在下一个页面(setAttribute);


 重定向:首先服务器受到浏览器客户端请求之后,服务器发送新的链接到客户端浏览器,浏览器接收到新的链接之后又重新请求收到的链接地址,在整个过程中完成之后在客户端浏览器看来是发生了一次跳转,其实是客户端浏览器请求了两次而已,所以在浏览器的地址栏里网络地址自然就会改变成新的连接。

2.response.sendRedirect(“地址”):效率低,速度慢
a.地址栏改变跳转——客户端跳转
b.所有代码执行完毕之后再跳转,跳转语句后面的代码还是会执行,除非在其后面加上return(return)需复杂一些。
c.不能保存request属性——两次请求,地址改变了,客户端跳转,不同的request
d.通过对URL地址的重写传递参数:
response.sendRedirect(“responseDemo04.jsp?id=mldn”);


转载于:https://www.cnblogs.com/elgin-seth/p/5293786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值