sendRedirect()重定向和forward()转发的比较

sendRedirect()重定向和forward()转发的比较

1

RequestDispatcher的forwar()方法只能将请求转发给自己web应用程序中的资源,而HttpServletResponse的sendRedirect()方法范围更大,可以重定向到站点内的其他web应用程序的资源,如果加了绝对URL则可以重定向到其他站点的资源。两者传递的URL都是以“/”开头,forward()是定位于web程序的根目录,而sendRedirect()重定向的位置为web站点的根目录

2

RequestDispatcher的forwar()的地址栏中的URL不会改变,而HttpServletResponse的sendRedirect()的URL发生改变。

  • 以下表示forward(),所以作为浏览器的我只发送和收到一次信息,也只跑了一个地方,中间发生了什么并不清楚,URL也没有发生改变
Created with Raphaël 2.1.0 小明 小明 小刚 小刚 嘿,小明有钱没,借我点钱? 我找别人借钱给你吧: 借我点钱。 给你。 这是借给你的钱。
  • 以下表示sendRedirect(),所以使用该方法作为浏览器的我收到了发送并收到了两次信息,并且也跑了两个地方,所以URL地址改变
Created with Raphaël 2.1.0 小明 小明 小刚 小刚 嘿,小明有钱没,借我点钱? 没有,你找我朋友小刚借钱吧,我给你他的地址。 我是小明的朋友,我找你借点钱。 好的。

3

forward()的调用者和被调用者属于同一个访问过程,它们之间共同使用request和response对象,对于内部资源的跳转,特别是请求预处理,使用forward();而sendRedirect()的调用者和被调用者使用不同的request和response对象,在不同web程序之间资源的跳转,使用sendRedirect();

4

两者也有共同之处,在调用这两者之前,内容不能被输出到客户端,并且会清除缓冲区里的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值