转发和重定向

web系统中资源跳转:

转发 forward

重定向 redirect

//转发  一次请求
        req.getRequestDispatcher("zhuan").forward(req, resp);
//        重定向  两次请求  执行到此处,讲路径返回给浏览器,浏览器又向服务器发送了一次请求
        resp.sendRedirect(req.getContextPath()+"/chong");

转发和重定向的相同点和不同点:

相同点:都可以完成资源跳转

不同点:

  • 转发是request对象触发的
  • 重定向是response对象触发的
  • 转发是一次请求,浏览器地址栏上的地址不会发生变化
  • 重定向是两次请求,浏览器地址栏上的地址会发生变化
  • 重定向的 路径需要加webapp的根路径,因为它相当于第二次发起请求时浏览器重新发起一次全新的请求(Get请求)
  • 转发是在本项目内完成的资源跳转
  • 重定向是可以完成跨app跳转资源
  • 转发是服务器的操作,重定向是客户端的操作

跳转的下一个资源可以是Servlet / HTML / JSP

什么时候采用转发,什么时候采用重定向?(大部分使用重定向)

  • 若想完成跨app跳转,必须使用重定向
  • 若在上一个资源中,向request范围中存储了数据,希望在下一个资源中取出,使用转发
  • 重定向可以解决浏览器的刷新问题 刷新刷新的是最后一次请求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值