博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转发与重定向的区别
阅读量:4305 次
发布时间:2019-05-27

本文共 1009 字,大约阅读时间需要 3 分钟。

转发与重定向的区别

1.转发

  (1)什么是转发

     一个web组件(servlet/jsp)将未完成的处理转交给另外一个web组件继续做。

     比较常见的情况是一个servlet将处理结果转交给一个jsp来展现。

   注:

      web组件指的是jsp或者servlet

  (2)如何转发

     step1, 绑订数据到request。

        //name:绑定名,obj:绑定值

        request.setAttribute(String name,Object obj);

     step2,获得转发器

        //uri:要转发给哪一个web组件

        RequestDispatcher rd = equest.getRequestDispatcher(String uri);

     step3,转发

         rd.forward(request,response);

     step4,在转发的目的地,可以使用request.getAttribute方法获得绑定的数据,然后进行处理。

         //如果name对应的值不存在,会返回null

         Object request.getAttribute(String name);

  (3)特点

     a.转发之后,浏览器地址栏的地址不变。

     b.转发的目的地必须是同一个应用。

  (4)注意事项

     a,转发之前,先清空response对象中的缓冲数据。

     b,转发之前,不能够调用out.close().

2.重定向

(1)什么是重定向

    服务器通知浏览器向一个新的地址发送请求。

    注:

      可以发送一个302状态码和一个Location消息头(该消息头包含了一个地址,称之为重定向地址),浏览器收到后,会立即向重定向地址发请求。

(2)如何重定向

    response.sendRedirect(String url);
    注:
      a.url就是重定向地址。
      b,重定向之前,不要调用out.close()方法。
      c.重定向之间,容器会先清空response对象中保存的数据。
(3)特点
      a.重定向地址是任意的。
      b.重定向之后,浏览器地址栏的地址会发生改变。

3.转发与重定向的区别

  (1)能否共享request

       转发可以,而重定向不行。

       注:

          容器收到请求之后,会创建request和response,当响应发送完毕,会销毁这两个对象。

  (2)浏览器地址栏的地址有无变化

       转发无变化,而重定向有变化。

  (3)目的地有无限制

       转发有限制(同一个应用),而重定向无限制。

转载地址:http://rwrws.baihongyu.com/

你可能感兴趣的文章
OpenGL ES 3.0(九)实现美颜相机功能
查看>>
FFmpeg 的介绍与使用
查看>>
Android 虚拟机简单介绍——ART、Dalvik、启动流程分析
查看>>
原理性地理解 Java 泛型中的 extends、super 及 Kotlin 的协变、逆变
查看>>
FFmpeg 是如何实现多态的?
查看>>
FFmpeg 源码分析 - avcodec_send_packet 和 avcodec_receive_frame
查看>>
FFmpeg 新旧版本编码 API 的区别
查看>>
RecyclerView 源码深入解析——绘制流程、缓存机制、动画等
查看>>
Android 面试题整理总结(一)Java 基础
查看>>
Android 面试题整理总结(二)Java 集合
查看>>
学习笔记_vnpy实战培训day02
查看>>
学习笔记_vnpy实战培训day03
查看>>
VNPY- VnTrader基本使用
查看>>
VNPY - CTA策略模块策略开发
查看>>
VNPY - 事件引擎
查看>>
MongoDB基本语法和操作入门
查看>>
学习笔记_vnpy实战培训day04_作业
查看>>
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day05
查看>>
学习笔记_vnpy实战培训day06
查看>>