首页 > 其他 > 详细

重定向、定时刷新、请求转发的区别

时间:2021-08-14 23:38:00      阅读:19      评论:0      收藏:0      [点我收藏+]

1. 重定向和定时刷新

  1. 代码

    • 重定向

      response.setStatus(302);
      response.setHeader(“location”, “/webapp/index.jsp”);
      //或使用sendRedirect方法,等价于以上两行。
      response.sendRedirect(“/webapp/index.jsp”); 
      
    • 定时刷新

      //必须设刷新时间,没有设跳转地址时,只刷新当前页面
      response.setHeader(“refresh”, “3; url=/web/index.jsp”);
      
  2. 说明

    • 两次请求,两次响应,request对象不是同一个。

    • 地址栏地址会发生变化。

    • 既可以实现在同一个WEB应用内部资源之间进行跳转,也可以在不同的WEB应用和不同服务器资源之间进行跳转。

    • 由于是两次请求,两次响应,无法通过request对象共享数据。

    • 重定向即时跳转,而定时刷新可以在跳转到新的地址前设置一个时间,在这段时间内可以输出文本到浏览器并维系到这段时间。

      技术分享图片

2. 请求转发和包含转发

  1. 代码

    //在请求对象中获取转发器
    RequestDispatcher rd = request.getRequestDispatcher("/servlet");
    //请求直接转发
    rd.forward(request, response);
    //请求包含转发
    rd.include(request, response);
    
  2. 说明

    • 一次请求对应一次响应,request对象是同一个。

    • 地址栏地址不会发生变化。

    • 请求转发是服务器内部的并且是同一个WEB应用内部的资源跳转;不能是在不同应用和不同服务器中的资源跳转。

    • 一个Servlet只能转发给一个目标servlet(即A不能同时转发给B和C),但可以进行多次转发(A转发给B, B再转发给C)。

    • forward转发时,response缓冲区不会保留转发前的数据,只会响应转发目标servlet的数据给客户端。

    • include转发时,两个servlet的数据都会保留,并顺序地响应会客户端。

      技术分享图片

重定向、定时刷新、请求转发的区别

原文:https://www.cnblogs.com/jarjack/p/15141772.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!