SpringBoot請(qǐng)求轉(zhuǎn)發(fā)的方式小結(jié)
概論
想要使用SpringBoot進(jìn)行請(qǐng)求的轉(zhuǎn)發(fā),我們一共是有兩大類(四種方法),一種是controller控制器轉(zhuǎn)發(fā)一種是使用HttpServletRequest進(jìn)行轉(zhuǎn)發(fā),這里每個(gè)方式都有兩種轉(zhuǎn)發(fā)方式一種內(nèi)部轉(zhuǎn)發(fā)一種外部轉(zhuǎn)發(fā)
controller控制器轉(zhuǎn)發(fā)
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 "收到請(qǐng)求rt1";
}
@RequestMapping("/r2")
public String r2(){
return "收到請(qǐng)求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";
}
}切記轉(zhuǎn)發(fā)不能使用RestController要不然不會(huì)被view解析會(huì)直接返回對(duì)應(yīng)的字符串到頁(yè)面
HttpServleRequest轉(zhuǎn)發(fā)
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 "收到轉(zhuǎn)發(fā)的請(qǐng)求";
}
@RequestMapping("/ghr2")
public String ghr2(){
return "ghr2收到轉(zhuǎn)發(fā)完畢";
}
}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 "轉(zhuǎn)發(fā)完畢";
}
@RequestMapping("/thr2")
public String r2(HttpServletResponse httpServletResponse) throws IOException {
httpServletResponse.sendRedirect("/ghr2");
return "轉(zhuǎn)發(fā)完畢!";
}
}注意到底是HttpServleRequest還是HttpServleResponse,并且注意外部轉(zhuǎn)發(fā)和內(nèi)部轉(zhuǎn)發(fā)的優(yōu)缺點(diǎn)。
到此這篇關(guān)于SpringBoot請(qǐng)求轉(zhuǎn)發(fā)的方式小結(jié)的文章就介紹到這了,更多相關(guān)SpringBoot請(qǐng)求轉(zhuǎn)發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于spring為類的靜態(tài)屬性實(shí)現(xiàn)注入實(shí)例方法,有需要的朋友們可以參考下。2019-10-10
Spring Boot中使用@Scheduled和Quartz實(shí)現(xiàn)定時(shí)任務(wù)的詳細(xì)過(guò)程
Spring Boot提供了兩種常見(jiàn)的定時(shí)任務(wù)實(shí)現(xiàn)方式,一種是基于@Scheduled注解的簡(jiǎn)單定時(shí)任務(wù),另一種是功能更強(qiáng)大的Quartz框架,本文將介紹如何在Spring Boot中使用這兩種方式實(shí)現(xiàn)定時(shí)任務(wù)和調(diào)度功能,感興趣的朋友一起看看吧2025-08-08
Java JDBC批量執(zhí)行executeBatch方法詳解
這篇文章主要介紹了Java JDBC批量執(zhí)行executeBatch方法詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
Spring MVC中日期格式轉(zhuǎn)換的兩種實(shí)用方法
在開(kāi)發(fā)基于 Spring MVC 的 Web 應(yīng)用時(shí),日期格式的轉(zhuǎn)換是一個(gè)常見(jiàn)的需求,本文將詳細(xì)介紹 Spring MVC 中兩種日期格式轉(zhuǎn)換的方法,包括創(chuàng)建過(guò)程和最終的運(yùn)行結(jié)果,需要的朋友可以參考下2025-08-08
springboot中配置logback-spring.xml的方法
文章介紹了如何在SpringBoot項(xiàng)目中配置logback-spring.xml文件來(lái)進(jìn)行日志管理,包括如何定義日志輸出方式、日志級(jí)別以及如何根據(jù)不同的環(huán)境配置不同的日志格式,感興趣的朋友跟隨小編一起看看吧2025-12-12

