SpringBoot请求转发的方式小结

 更新时间:2023年09月18日 15:04:54   作者:堕落年代  
本文主要介绍了SpringBoot请求转发的方式,一共有两大类,一种是controller控制器转发一种是使用HttpServletRequest进行转发,本文就详细的介绍一下,感兴趣的可以了解一下

概论

想要使用SpringBoot进行请求的转发,我们一共是有两大类(四种方法),一种是controller控制器转发一种是使用HttpServletRequest进行转发,这里每个方式都有两种转发方式一种内部转发一种外部转发

controller控制器转发

package com.example.requestplay.demos.web.RequestPlay1;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author:DUOLUONIANDAI
 * @DATA:2023/07/26 11:24
 * @Title:
 */
@RestController
public class GetPlay {
    @RequestMapping("/r1")
    public String r1(){
        return "收到请求rt1";
    }
    @RequestMapping("/r2")
    public String r2(){
        return "收到请求rt2";
    }
}
package com.example.requestplay.demos.web.RequestPlay1;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author:DUOLUONIANDAI
 * @DATA:2023/07/26 11:24
 * @Title:
 */
@Controller
public class ToGetPlay {
    @RequestMapping("/tr1")
    public String r1(){
        return "forward:/r1";
    }
    @RequestMapping("/tr2")
    public String r2(){
        return "redirect:/r2";
    }
}

切记转发不能使用RestController要不然不会被view解析会直接返回对应的字符串到页面

HttpServleRequest转发

package com.example.requestplay.demos.web.RequestPlay2;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author:DUOLUONIANDAI
 * @DATA:2023/07/26 11:40
 * @Title:
 */
@RestController
public class GetRequest {
    @RequestMapping("/ghr1")
    public String ghr1(){
        return "收到转发的请求";
    }
    @RequestMapping("/ghr2")
    public String ghr2(){
        return "ghr2收到转发完毕";
    }
}
package com.example.requestplay.demos.web.RequestPlay2;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * @author:DUOLUONIANDAI
 * @DATA:2023/07/26 11:39
 * @Title:
 */
@RestController
public class ToRequest {
    @RequestMapping("/thr1")
    public String r1(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        RequestDispatcher requestDispatcher = httpServletRequest.getRequestDispatcher("/ghr1");
        requestDispatcher.forward(httpServletRequest,httpServletResponse);
        return "转发完毕";
    }
    @RequestMapping("/thr2")
    public String r2(HttpServletResponse httpServletResponse) throws IOException {
        httpServletResponse.sendRedirect("/ghr2");
        return "转发完毕!";
    }
}

注意到底是HttpServleRequest还是HttpServleResponse,并且注意外部转发和内部转发的优缺点。

到此这篇关于SpringBoot请求转发的方式小结的文章就介绍到这了,更多相关SpringBoot请求转发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java FastJson使用教程

    Java FastJson使用教程

    这篇文章主要介绍了如何使用FastJson,帮助大家将 Java 对象转换为 JSON 格式,感兴趣的朋友可以了解下
    2020-10-10
  • Java线程的联合用法实例分析

    Java线程的联合用法实例分析

    这篇文章主要介绍了Java线程的联合用法,结合实例形式分析了java线程联合的原理、实现方法及相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • spring为类的静态属性实现注入实例方法

    spring为类的静态属性实现注入实例方法

    在本篇文章里小编给大家整理的是关于spring为类的静态属性实现注入实例方法,有需要的朋友们可以参考下。
    2019-10-10
  • Spring Boot中使用@Scheduled和Quartz实现定时任务的详细过程

    Spring Boot中使用@Scheduled和Quartz实现定时任务的详细过程

    Spring Boot提供了两种常见的定时任务实现方式,一种是基于@Scheduled注解的简单定时任务,另一种是功能更强大的Quartz框架,本文将介绍如何在Spring Boot中使用这两种方式实现定时任务和调度功能,感兴趣的朋友一起看看吧
    2025-08-08
  • Java JDBC批量执行executeBatch方法详解

    Java JDBC批量执行executeBatch方法详解

    这篇文章主要介绍了Java JDBC批量执行executeBatch方法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Spring MVC中日期格式转换的两种实用方法

    Spring MVC中日期格式转换的两种实用方法

    在开发基于 Spring MVC 的 Web 应用时,日期格式的转换是一个常见的需求,本文将详细介绍 Spring MVC 中两种日期格式转换的方法,包括创建过程和最终的运行结果,需要的朋友可以参考下
    2025-08-08
  • IDEA SSM框架整合配置及步骤详解

    IDEA SSM框架整合配置及步骤详解

    这篇文章主要介绍了IDEA SSM框架整合配置以及步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • spring状态机模式使用小结

    spring状态机模式使用小结

    说起Spring状态机,大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢?没错,Spring状态机就是状态模式的一种实现,在介绍Spring状态机之前,让我们来看看设计模式中的状态模式,需要的朋友可以参考下
    2024-04-04
  • springboot中配置logback-spring.xml的方法

    springboot中配置logback-spring.xml的方法

    文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、日志级别以及如何根据不同的环境配置不同的日志格式,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • jconsole使用介绍(图文)

    jconsole使用介绍(图文)

    大家在学习java的时候,难免会对jvm进行一些深入的了解。推荐大家使用jdk下面的jconsole.exe来辅助理解jvm的一些概念
    2015-12-12

最新评论