• 转发与重定向的使用


    转发与重定向的使用

    页面跳转的主要两种实现方式:

    • 转发
    • 重定向

    转发

    在客户端中发送请求到服务端,在服务端中匹配的对应的servlet,servler进行对应的处理后,通过getRequestDispatcher(path),把请求转发给指定的前端页面,整个流程都是在服务端中执行(同一个请求)。转发过程中请求(request对象),因为他们是用的同一个请求(request对象).

    request.getRequestDispatcher("/strat").forward(request,response);
    
    • 1

    重定向

    在客户端中发送请求到服务端,在服务端中匹配的对应的servlet,servler进行对应的处理后,通过sendRedirect(path),向客户端返回这个响应。客户端会收到一个状态码为302的响应,并发送一个新的请求,并把结果返回到前端页面。两个请求是互相对应的。对应的请求(request对象)是不共享的

    response.sendRedirect("https://www.baidu.com/");
    
    • 1

    在SpringMvc中使用转发|重定向

    # 转发
    return "forward:https://www.baidu.com/";
    # 重定向
    return "redirect:https://www.baidu.com/";
    
    • 1
    • 2
    • 3
    • 4

    总结

    转发

    • 地址栏不变,只是转发到另外一个站内资源
    • 请求次数只有一次,只有服务器交互一次
    • 数据不会丢失

    重定向

    • 重定向会显示新的地址,可以跳转到任意的URL

    • 请求的次数至少2次以上,主要是客户端的请求次数

    • 第二次请求数据可能会丢失

    • 当第一次请求响应不成功的情况下,那个他也不会重定向成功

    区别转发forward重定向redirect
    路径包括项目路径可带项目路径也可是全路径
    地址栏变化不会变化会变化
    跳转限制只能跳转本站资源至少两次
    request数据不丢失会丢失

    补充|刷新

    response.setHeader("Refresh","3;http://www.baidu.com");  3秒后刷新并转发到baidu网页
    response.setHeader("Refresh","3;");每隔3秒自动刷新
    
    • 1
    • 2
  • 相关阅读:
    linux下安装工具——yum
    大数据之Kafka
    我的创作纪念日-从写作到阿里云专家博主的故事
    python使用websocket服务并在fastAPI中启动websocket服务
    一个有关sizeof的题目
    CentOS 配置 sftp 服务
    文心大模型写——网课点播系统(项目需求)
    log4j2或者logback配置模版实现灵活输出服务名
    认真研究MySQL主从复制
    MySQL和Oracle区别
  • 原文地址:https://blog.csdn.net/qq_43501821/article/details/126862592