• 转发与重定向的使用


    转发与重定向的使用

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

    • 转发
    • 重定向

    转发

    在客户端中发送请求到服务端,在服务端中匹配的对应的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
  • 相关阅读:
    单片机——硬件系统
    高等教育心理学:问题解决与创造性
    通信用多模光纤主要有哪些类型?OM1~OM5有什么区别
    【动画进阶】神奇的背景,生化危机4日食 Loading 动画还原
    解决 for 循环中使用 var 定义函数的问题(解决循环中异步问题)
    WebAssembly 和javaScript的差异
    ios- Gesture
    学 Python 这么久,终于把类函数 & 成员函数 & 静态函数给整明白了!
    人工智能考证初步探索
    Java中的锁机制详解
  • 原文地址:https://blog.csdn.net/qq_43501821/article/details/126862592