• Spring MVC中如何进行转发和重定向呢?


    转自:

    Spring MVC中如何进行转发和重定向呢?

    重定向:
         我们将用户的定向到另一个视图(jsp)中处理,此操作是一个客户端行为,类似与url的链接操作
    转发:
         将用户的请求转发到另一个视图或controller处理,此操作是一个服务器端行为,请求中的信息会一起转发至新的新的对象中,不会因为转发而造成信息丢失 
    注意事项:
        转发是后端行为(服务器级别),重定向是一个前端行为(客户端级别)

    一、转发详解

              当浏览器发送 http 请求,Web 服务器收到此请求,
        运用Java的内部方法在容器内进行转发的请求和处理,并将转发后所生成的信息发送给浏览器
       转发所产生的效果
            浏览器进行一次请求操作,而返回的确是容器内其它页面的内容,客户端无任何变化 ,
            转发的内容只能为容器内的信息

    二、重定向过程

        当浏览器发送Http请求,tomcat发送302状态码即新的url给浏览器,客户端根据302自动发送新的http请求,此时浏览器中显示的为新url
        此处重定向的url可为任意url

    Spring MVC的说明

         在Spring MVC 框架中,控制器类中处理方法的 return 语句默认情况下为一个转发(转发视图) 

    @RequestMapping("/userList")
    public String userList() {
    return "userList"; //转发至userList.jsp
    }
    


    例:
    Spring MVC 框架中,重定向与转发

    package com.java265.springmvc;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("/index")
    public class IndexController {
    @RequestMapping("/print")
    public String print() {
    //转发到一个请求方法(同一个控制器类可以省略/index/)
    return "forward:/index/isShowInfo";
    }
    
    @RequestMapping("/isShowInfo")
    public String isShowInfo() {
    //重定向到一个请求方法
    return "redirect:/index/printInfo";
    }
    
    @RequestMapping("/printInfo")
    public String printInfo() {
    //转发到一个视图
    return "printInfo";
    }
    }


    注意事项:
         
    在Spring MVC框架中,
    无论转发还是重定向,都需符合视图解析器的配置(springmvc.xml),
       如直接转发到一个不需要 DispatcherServlet 的资源,如:

    return "forward:/html/test.html";

    则需要使用 mvc:resources 配置:

  • 相关阅读:
    Docker核心
    第四章 文件管理 四、文件的物理结构(文件分配方式)
    AI视频剪辑:批量智剪技巧大揭秘
    处理查询结果集
    git 创建项目,创建dev分支,并且关联和提交dev分支,删除无用分支
    如何看待中小企业实现数字化转型难的问题?_光点科技
    波特率,奇偶校验
    Shell基本语法--流程控制
    浅谈无脚本自动化测试
    计算机毕业设计选题推荐-智慧学生宿舍管理系统-Python项目实战
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127860034