java web jsp(四)forward()与sendRedirect区别

本文深入探讨了HTTP请求处理中的两种关键操作:forward(转发)和sendRedirect(重定向)。详细对比了两者的工作原理、执行流程及应用场景,强调了forward在服务器端快速处理请求的优势,以及sendRedirect在客户端实现跳转的特性。

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

request.sendRedirect()

1)response和request一样都是jsp内置对象,request是获取用户的请求,response处理用户请求。
2) 这种方式是在客户端作的重定向处理。该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的URLs。如果传递到该方法的参数是一个相对的URL,那么Web container在将它发送到客户端前会把它转换成一个绝对的URL。
3)使用sendRedirect()时网址会发生变化,可以把sendRedirect()看作是一个客户端的跳转,
缺点:速度慢

forward

1)在这里插入图片描述
2)执行步骤:
a) 浏览器访问Servlet1;
b) Servlet1想让Servlet2对客户端的请求进行响应,于是调用forward()方法,将请求转发 给Servlet2进行处理。
c) Servlet2对请求请出响应。

从上图的交互过程可以看出,调用forward()方法,对浏览器来说是透明的,浏览器并不知道为其服务的Servlet已经换成Servlet2了,它只知道发出了一个请求,获得了一个响应。而地址栏显示的URL始终会是原始请求的URL,fordward()调用是可以直接传参的,fordward()的 调用是在服务端完成的,故速度快。

区别

1)forward:于服务器端工作,速度快,重定的网址是服务器的内部,可以传递参数
sendRedirect:于客户端工作,速度慢,它可以在服务器内外使用。它可以将响应重定向到另一个资源,这个资源可以是servlet,jsp,或html文件。它接受相对和绝对的url.也因为它是接受url,若sendRedirect要传递参数则需要在url后面加上需要传递的参数

标记参考详细博文方便跳转:https://blog.youkuaiyun.com/lcfigo1/article/details/6493042
https://blog.youkuaiyun.com/xuxurui007/article/details/7755792

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值