栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

RequestDispatcher.forward()与HttpServletResponse.sendRedirect()

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RequestDispatcher.forward()与HttpServletResponse.sendRedirect()

requestDispatcher-forward()方法

  1. 当我们使用该

    forward
    方法时,请求将被转移到同一服务器内的另一个资源以进行进一步处理。

  2. 在的情况下

    forward
    ,Web容器在内部处理所有处理,并且不涉及客户端或浏览器。

3.
在对象

forward
上调用when时
requestDispatcher
,我们传递了请求和响应对象,因此旧的请求对象存在于将处理请求的新资源上。

  1. 从视觉上看,我们看不到转发的地址,它是透明的。

  2. 使用该

    forward()
    方法比
    sendRedirect

6.
当我们使用正向重定向时,并且我们想在新资源中使用相同的数据时,我们可以使用,

request.setAttribute()
因为我们有一个可用的请求对象。

发送重定向

  1. 在的情况下

    sendRedirect
    ,请求将转移到另一个资源,另一个域或另一个服务器以进行进一步处理。

  2. 当您使用时

    sendRedirect
    ,容器会将请求传输到客户端或浏览器,因此,在
    sendRedirect
    方法内部给出的URL
    作为对客户端的新请求可见。

  3. 如果发生

    sendRedirect
    呼叫,则旧的请求和响应对象将丢失,因为浏览器将其视为新请求。

  4. 在地址栏中,我们可以看到新的重定向地址。这不是透明的。

  5. sendRedirect
    速度较慢,因为需要一个额外的往返行程,因为创建了一个全新的请求,而旧的请求对象丢失了。需要两个浏览器请求。

  6. 但是在中

    sendRedirect
    ,如果我们要对新资源使用相同的数据,则必须将数据存储在会话中或与URL一起传递。

哪个好?

它取决于哪种方法更有用的方案。

如果您希望将控制权转移到新服务器或上下文中,并且将其视为全新任务,那么我们去寻求

sendRedirect
。通常,如果可以在重新加载浏览器后安全地重复该操作并且不会影响结果,则应使用转发。

资源



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412644.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号