web请求中重定向和转发的区别

转发和重定向的区别

1>转发是一次请求,重定向是两次请求  ;产生了两个request对象 ,重定向会导致request对象信息丢失 ;

                                                                     转发是一次请求,请求url没有变化,转发是服务器内部request/response 控制权的移交;  

2>本质区别:重定向是客户端行为,转发是服务器行为.

    2.请求资源地址:
          重定向:web组件可以将请求重定向到任意一个url,而不仅仅是同一个应用。
                         重定向的源组件与目标组件不共用同一个HttpServletRequest对象,因此不能在request范围内共享数据。
          请求转发:转发的源组件与目标组件必须在同一个应用中,两者可以在request范围内共享数据。
工作流程:
     1.重定向
          浏览器发出http请求   >> 服务器接受请求并发送302状态码和新的对应的url到浏览器   >>
          浏览器接收响应并自动请求新的url   >> 服务器接收请求并寻找客户所需的资源响应到浏览器

     
     2.转发
          浏览器发出http求其   >> 服务器接收请求   >> 服务器调用内部的一个方法在容器内完成请求处理和转发动作  >>
          将客户所需资源发送到浏览器
    
调用方式:
     1.重定向:
          1).response.sendRedict(url);
          2).response.setState(302);
               response.setHeader("location",url);
     2.转发:
          1).request.getRequestDispatcher(url).forward(request,response);
          2).request.getRequestDispatcher(url).include(request,response);
          3).<jsp:forward page=url />

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值