• 请求转发和重定向的区别


    一、请求转发:

    1. // 获取请求转发器对象
    2. RequestDispatcher dispatcher = request.getRequestDispatcher("/abc");
    3. // 调用请求转发器对象的forward方法完成转发
    4. dispatcher.forward(request, response);
    5. // 转发的时候是一次请求,不管你转发了多少次,都是一次请求。
    6. // AServlet转发到BServlet,再转发到CServlet,再转发到DServlet,不管转发了多少次,都在同一个request当中。这是因为调用forward方法的时候,会将当前的request和response对象传递给下一个Servlet。

    二、重定向:

    1. // 将请求路径“/oa/test/abc”发送给浏览器,浏览器会自发的向服务器发送一次全新的请求。
    2. response.sendRedirect("/oa/test/abc");
    3. // 注意:路径上要加一个项目名。因为浏览器发送请求,请求路径上是需要添加项目名的。

    三、请求转发和重定向的区别:

       形式上:

       本质上:

    • 请求转发:是由WEB服务器来控制的。A资源跳转到B资源,这个跳转动作是Tomcat服务器内部完成的。
    • 重定向:是浏览器完成的。具体跳转到哪个资源,是浏览器说了算。

    四、请求转发和重定向的使用如何选择?

    • 如果在上一个servlet当中向request域当中绑定了数据,希望从下一个servlet当中把request域里面的数据取出来,使用请求转发机制。
    • 剩下所有的请求均建议使用重定向。(重定向使用得较多)
    • 注意:请求转发会存在浏览器的刷新问题:不断刷新页面会不断重复提交表单,导致数据多次重复提交。
  • 相关阅读:
    泡沫填充轮胎
    iOS——持久化
    Vue3 set up 的使用
    python apscheduler定时任务
    【2022版】Spring面试题整理(含答案解析)
    又是一篇教你摸鱼的文章,用Python实现自动发送周报给老板
    MyBatis 动态SQL与分页
    阿里云Windows服务器(ECS)下tomcat安装SSL证书及配置HTTPS
    Linux 学习笔记:input 子系统
    美容院管理系统有哪些促销方式?
  • 原文地址:https://blog.csdn.net/YaoChung/article/details/126261700