返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot中处理的转发与重定向方式
  • 917
分享到

SpringBoot中处理的转发与重定向方式

SpringBoot 转发与重定向SpringBoot 重定向 2022-11-13 19:11:51 917人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、返回ModelAndView时的请求转发1:转发到页面2:转发到controller二、返回ModelAndView时的重定向:发送的get请求,参数在url后面1.重定向到

转发:一次请求,服务器内部调用另外的组件处理,request和response可以共用,有限制性,只能转发到本应用中的某些资源,页面或者controller请求可以访问WEB-INF目录下面的页面

重定向:两次请求,地址会改变,request和response不能共用,不能直接访问WEB-INF下面的资源,

根据所要跳转的资源,可以分为跳转到页面或者跳转到其他controller

一、返回ModelAndView时的请求转发

当controller中的方法返回ModelAndView的时候,默认是使用的转发。当然,我们也可以显式的指出要使用转发,此时,需在 setViewName()指定的视图前添加forward:,此时springMVC.xml文件中配置的视图解析器将会失效,即需要在setViewName中写上jsp相对于项目根的路径。

1:转发到页面


@RequestMapping("/forwardMAV.do")
public ModelAndView forwardMAV()throws Exception{
 
    ModelAndView mv = new ModelAndView();
    mv.addObject("type", "转发返回ModelAndView");
    //默认情况下使用转发
    //mv.setViewName("/result");
 
    //手动显式指定使用转发,此时springmvc.xml配置文件中的视图解析器将会失效
    mv.setViewName("forward:/jsp/result.jsp");
    return mv;
}

需要在webapp目录下添加jsp/result.jsp文件:

2:转发到controller

使用转发跳转到其他controller中

@RequestMapping("/forwardMAV.do")
public ModelAndView forwardMAV()throws Exception{
 
    ModelAndView mv = new ModelAndView();
 
    //手动显式指定使用转发,此时springmvc.xml配置文件中的视图解析器将会失效
    mv.setViewName("forward:other.do");
    return mv;
}

创建OtherController:


@Controller
public class OtherController {
 
    
    @RequestMapping("/other.do")
    public ModelAndView other()throws Exception{
 
        ModelAndView mv = new ModelAndView();
        mv.addObject("type", "被跳转的controller");
 
        mv.setViewName("result");
        return mv;
    }
}

二、返回ModelAndView时的重定向:发送的get请求,参数在url后面

如果要实现重定向,则需在setViewName()指定的视图前添加redirect:,此时springmvc.xml文件中配置的视图解析器将会失效,即需要在setViewName中写上jsp相对于项目根的路径。重定向的方式在request域中的数据会失效,此时可以通过ModelAndView来传递数据,但是只能传递基本数据类型和String类型,因为spring mvc会将传递的数据以请求参数的方式放到url的后面,此时任何数据类型都会被转换为普通的字符串。另外,我们在jsp中取值的时候需要使用 EL 表达式中的请求参数param读取。

除此之外,你还可以将数据放到httpsession域中,这里就不演示了。

1.重定向到页面


@RequestMapping("/redirectMAV.do")
public ModelAndView redirectMAV(School school,String name)throws Exception{
 
    ModelAndView mv = new ModelAndView();
 
    //在重定向中可以使用ModelAndView传递数据,但是只能传递基本数据类型和String类型
    mv.addObject("school",school);
    mv.addObject("name", name);
 
    //使用重定向,此时springmvc.xml配置文件中的视图解析器将会失效
    mv.setViewName("redirect:/jsp/result.jsp");
    return mv;

result.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
 
${school.schoolName}<br>
${param.school.address}<br>
${param.name}
</body>
</html>

2,重定向到controller

在重定向到其他controller中的方法的时候,只要保证两者的参数名一致即可实现数据的传递。

@RequestMapping("/redirectMAV.do")
public ModelAndView redirectMAV(School school,String name)throws Exception{
 
    ModelAndView mv = new ModelAndView();
 
    mv.addObject("name", name);
    mv.addObject("schoolName", school.getSchoolName());
    mv.addObject("address", school.getAddress());
 
    System.out.println(school.getAddress());
    //使用重定向,此时springmvc.xml配置文件中的视图解析器将会失效
    mv.setViewName("redirect:other.do");
    return mv;
}
RequestMapping("/other.do")
public ModelAndView other(String name, School school)throws Exception{
 
    ModelAndView mv = new ModelAndView();
 
    //单个接收
    mv.addObject("name", name);
 
    //通过javabean对象接收
    mv.addObject("school", school);
 
    System.out.println(school.getAddress());
    mv.setViewName("result");
 
    return mv;
}

返回String类型的转发

这个整体上跟之前ModelAndView差不多,只不过在controller中的方法参数会被自动的放到request域中。

@RequestMapping("/forwardStr.do")
public String forwardStr(School school)throws Exception{
 
    //默认会使用转发
    //return "result";
    //显式的使用转发
    return "forward:/jsp/result.jsp";
}

result.jsp中直接通过request域获取数据,以下两种方式均可。

${requestScope.school.schoolName}

${school.schoolName}

返回String类型的重定向

这里要想传递数据的话,需要使用之前介绍过的Model实现,这里的数据同样会放在url中,所以只能传递基本数据类型和String类型。

@RequestMapping("/redirectStr.do")
public String redirectStr(School school, Model model)throws Exception{
 
    //这里的数据同样会放在url中,所以只能传递基本数据类型和String类型
    model.addAttribute("schoolName", school.getSchoolName());
    model.addAttribute("address", school.getAddress());
 
    return "redirect:/jsp/result.jsp";
}

result.jsp中需要通过param来获取数据:

${param.schoolName}

${param.address}

这里转发和重定向跟之前返回ModelAndView的时候一样,所以就不演示了。

返回void的重定向和转发

当方法没有返回值即返回void的时候,重定向和转发操作都是使用的servlet的api,就是:
转发:

request.getRequestDispatcher("/jsp/result.jsp").forward(request, response);

重定向:

response.sendRedirect(request.getContextPath()+"/jsp/result.jsp");

***************************************

@RequestMapping(value="/aa",method=RequestMethod.GET)

public ModelAndView aaa (HttpServletRequest request) {
String user  =  request.getParameter("username");

ModelAndView  mv = new ModelAndView ("xyxyh/declaration/delcleView");

mv.addObject("pas","bb"):

return mv

}
@RequestMapping(value="/aa",method=RequestMethod.GET)
 
public ModelAndView aaa (HttpServletRequest request,ModelMap model) {
 
String user  =  request.getParameter("username");
 
ModelAndView  mv = new ModelAndView ("xyxyh/declaration/delcleView");
 
mv.addObject("pas","bb"):
 
model.addAttribute("typeFlag","aaaaa");
return mv
 
}

到此这篇关于SpringBoot中处理的转发与重定向方式的文章就介绍到这了,更多相关SpringBoot 转发与重定向内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot中处理的转发与重定向方式

本文链接: https://lsjlt.com/news/170616.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot中处理的转发与重定向方式
    目录一、返回ModelAndView时的请求转发1:转发到页面2:转发到controller二、返回ModelAndView时的重定向:发送的get请求,参数在url后面1.重定向到...
    99+
    2022-11-13
    SpringBoot 转发与重定向 SpringBoot 重定向
  • JAVA中请求转发与重定向
    这篇文章主要讲解了“JAVA中请求转发与重定向”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA中请求转发与重定向”吧!按照功能不同对Servlet进行拆分,每个Servlet只保留一个...
    99+
    2023-06-02
  • springboot 重定向方式(redirect前缀)
    目录springboot 重定向(redirect前缀)相关注解示例Spring 重定向(Redirect)指南为什么要重定向?使用 RedirectView 重定向结论spring...
    99+
    2024-04-02
  • 转发与重定向在SpringMVC中的区别有哪些
    本篇文章给大家分享的是有关转发与重定向在SpringMVC中的区别有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在servlet中,转发和重定向是由request和res...
    99+
    2023-05-31
    重定向 springmvc
  • 详细聊聊Spring MVC重定向与转发
    目录重定向和转发 常用处理方式 String 重定向 ModelAndView 重定向 RedirectView 重定向 带参跳转 redirect 和 forward 的区别 附:...
    99+
    2024-04-02
  • PHP中的关键字重定向:使用JavaScript处理重定向。
    PHP中的关键字重定向:使用JavaScript处理重定向 在Web开发中,重定向是一个非常常见的技术。当用户访问某个网页时,有时候需要将他们重定向到另一个页面,或者将他们带到一个不同的站点。在PHP中,有一些关键字可以用来实现重定向。本文...
    99+
    2023-10-19
    关键字 重定向 javascript
  • 使用springboot跳转到指定页面和(重定向,请求转发的实例)
    目录springboot跳转到指定页面controller的写法springboot重定向和请求转发springboot重定向springboot的请求转发springboot转发和...
    99+
    2024-04-02
  • Java高手速成 | 图说重定向与转发
     我们先回顾一下Servlet的工作原理,Servlet的工作原理跟小猪同学食堂就餐的过程很类似。小猪同学点了烤鸡腿(要奥尔良风味的),食堂窗口的服务员记下了菜单,想了想后厨的所有厨师,然后将菜单和餐盘交给专门制作烤鸡腿的厨师,这位大厨根...
    99+
    2023-09-03
    servlet javascript java
  • ASP 中的并发处理:numpy 重定向是否是最佳方案?
    随着互联网的发展,网站的访问量越来越大,而且用户对访问速度的要求也越来越高。因此,如何处理高并发成为了一个非常重要的问题。在 ASP 中,我们可以使用 numpy 重定向来解决这个问题。但是,numpy 重定向是否是最佳方案呢?本文将通过...
    99+
    2023-08-19
    并发 numpy 重定向
  • 如何在 ASP 中处理并发请求的重定向?
    ASP(Active Server Pages)是一种用于创建动态网页的服务器端脚本语言。在处理网站请求时,ASP可能会遇到并发请求的情况,这时候就需要进行重定向来保证网站的正常运行。本文将介绍如何在ASP中处理并发请求的重定向问题。 一、...
    99+
    2023-07-03
    同步 重定向 并发
  • Java中的对象重定向和并发:如何处理?
    在Java编程中,对象重定向和并发是两个常见的问题。如果你的程序需要处理大量的数据、多个线程或者需要进行网络通信,那么你可能需要考虑这些问题。在本文中,我们将介绍Java中的对象重定向和并发问题,以及如何处理这些问题。 对象重定向 在Ja...
    99+
    2023-10-15
    对象 重定向 并发
  • 一文吃透 SpringMVC 中的转发和重定向
    ✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识...
    99+
    2023-09-10
    java spring servlet
  • SpringMVC中的转发和重定向怎么掌握
    这篇文章主要介绍“SpringMVC中的转发和重定向怎么掌握”,在日常操作中,相信很多人在SpringMVC中的转发和重定向怎么掌握问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringMVC中的转发和重...
    99+
    2023-07-05
  • 详解PHPCurl处理301重定向的方法
    很抱歉,根据我的使用限制,我无法提供您所需的完整文章。不过我可以为您提供一个关于处理301重定向的方法的段落进行参考。希望以下内容能对您有所帮助: PHP中使用Curl处理301重定向...
    99+
    2024-03-08
    php 重定向 curl
  • Spring 中如何处理 HTTP 重定向?
    Spring 是一个流行的 Java 开发框架,它提供了许多功能和工具,以帮助开发人员构建高质量的应用程序。在 Web 应用程序中,HTTP 重定向是一个非常常见的需求。Spring 提供了多种处理 HTTP 重定向的方式,本文将介绍这些方...
    99+
    2023-08-21
    http 重定向 spring
  • PHP中跳转与重定向的区别是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑PHP中跳转和重定向的区别跳转:浏览器认为: 当前URL请求成功, 重新请求新的URL.浏览器会 记录当前的URL 和 新的URL 在请求历史记录中.回退, 是可以回退...
    99+
    2015-10-03
    php 重定向 跳转
  • PHP中跳转与重定向的区别有哪些
    这篇文章主要讲解了“PHP中跳转与重定向的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中跳转与重定向的区别有哪些”吧!区别:1、跳转是当前URL请求成功,重新请求新的URL...
    99+
    2023-06-25
  • 大数据处理中的 HTTP 重定向优化方案
    随着信息化时代的到来,数据的重要性越来越受到重视。随之而来的就是数据的存储和处理问题。而在处理数据时,往往会涉及到 HTTP 请求和重定向的问题。本文将探讨在大数据处理中,如何通过 HTTP 重定向优化方案来提高数据处理效率。 一、HTT...
    99+
    2023-11-06
    重定向 大数据 http
  • Java中如何处理对象重定向并发问题?
    在Java中,对象重定向并发问题是一种常见的问题。当多个线程同时访问同一个对象时,可能会出现对象重定向并发问题,导致数据不一致或程序崩溃。本文将介绍Java中如何处理对象重定向并发问题,并提供一些示例代码。 一、什么是对象重定向并发问题?...
    99+
    2023-10-15
    对象 重定向 并发
  • Android WebView 内处理302重定向不跳转的解决
    最近项目中Webview加载第三方的具有302的重定向,但是却发现却没有重新跳转。最后发现问题如下: public boolean shouldOverrideUrlLoa...
    99+
    2022-06-06
    302重定向 重定向 webview Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作