码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 配置:

  • 相关阅读:
    接口自动化和UI自动化的区别
    received fatal alert: handshake_failure; nested exception 异常分析和解决方法
    React 组件传 children 的各种方案
    Allegro DFM Ravel Rule丝印文字到测试点pad间距检查
    【笔记:模拟MOS集成电路】二级运算放大器频率响应与品质因子Q和阻尼因子ξ的讨论
    websocket学习
    四、分布式锁之自定义分布式锁
    Ventory制作多系统启动u盘 和 安装 windows10+ubuntu双系统
    适合新手的Pytorch的中文文档
    Springboot垃圾分类管理系统7o539计算机毕业设计-课程设计-期末作业-毕设程序代做
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127860034
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号