springMVC返回Http響應(yīng)的實現(xiàn)
一、返回頁面
步驟如下:
我們先要在static目錄下創(chuàng)建我們的HTML文件。

HTML源碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
Hello,Spring MVC,我是Index??.
</body>
</html>
- 在源碼的類注解前面要使用@Controller注解,返回的頁面名要與創(chuàng)建的文件名一致,并且加上后綴,且必須加上反斜杠 /
源碼:
@RequestMapping("/response")
@Controller
public class ResponseController {
@RequestMapping("/r1")
public String r1() {
return "/index.html";
}
}
瀏覽器訪問結(jié)果:

二、@Controller和@ResponseBody與RestController區(qū)別
SpringBoot默認掃描路徑是啟動類所在路徑(包),和子目錄。
@RestController的作用就是告訴Spring這個類需要掃描。
@RestController = @ResponseBody+@Controller

在早期編程,前后端不分離時@Controller就是負責(zé)返回視圖的, @ResponseBody就是負責(zé)返回數(shù)據(jù)的。
- 當(dāng)一個類中既要返回頁面,又要返回數(shù)據(jù)的時候,就在類上加上@Controller,在類中返回數(shù)據(jù)的方法上加@ResponseBody。
- 當(dāng)一個類全部返回數(shù)據(jù)的時候,就在類上加上@Controller + @ResponseBody,或者@RestController。
- 當(dāng)一個頁面只返回頁面時,在類上加@Controller。
三、返回HTML代碼?段
直接跟寫HTML代碼一樣,寫就行了,注意這種算返回數(shù)據(jù)。
代碼:
@RequestMapping("/r2")
public String r2() {
return "<h2>我是二級標(biāo)題</h2>";
}
訪問結(jié)果:

如果這就是一個文本,只需要在@RequestMapping的products中注明類型即可。
@RequestMapping(value = "/r2", produces = "text/pain")
public String r2() {
return "<h2>我是二級標(biāo)題</h2>";
}
四、返回JSON
后端?法返回結(jié)果為對象直接就是返回的JSON。
源碼:
@RequestMapping("/r3")
public Person r3() {
Person person = new Person();
person.setId(1);
person.setName("zhangsan");
person.setPassword("123");
return person;
}
結(jié)果:

五、HttpServletResponse設(shè)置狀態(tài)碼
Spring MVC會根據(jù)我們?法的返回結(jié)果?動設(shè)置響應(yīng)狀態(tài)碼, 程序員也可以?動指定狀態(tài)碼。
通過類HttpServletResponse下的setStatue來設(shè)置。
源碼:
@RequestMapping("/r4")
public String r4(HttpServletResponse response) {
response.setStatus(404);
return "設(shè)置狀態(tài)碼成功";
}
結(jié)果:

六、設(shè)置Header
6.1 HttpServletResponse設(shè)置
通過類HttpServletResponse下的setHeader來設(shè)置。
在方法中前一個參數(shù)是header的參數(shù)名,后一個是值。
源碼:
@RequestMapping("/r5")
public String r5(HttpServletResponse response) {
response.setHeader("myHeader","444");
return "設(shè)置Header成功";
}
結(jié)果:

6.2 @RequestMapping設(shè)置
@RequestMapping的組成如下:

我們通過設(shè)置 produces屬性的值, 設(shè)置響應(yīng)的報頭Content-Type。
源碼:
@RequestMapping(value = "/r6",produces = "application/json")
public String r6() {
return "{\"success\":true}";
}
結(jié)果:

到此這篇關(guān)于springMVC返回Http響應(yīng)的實現(xiàn)的文章就介紹到這了,更多相關(guān)springMVC返回Http響應(yīng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot?HTTP如何調(diào)用其他服務(wù)
這篇文章主要介紹了Springboot?HTTP如何調(diào)用其他服務(wù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring?Boot?實現(xiàn)?WebSocket?的代碼示例
WebSocket?協(xié)議是獨立的基于?TCP?協(xié)議。它與?HTTP?的唯一關(guān)系是,它的握手會被?HTTP?服務(wù)器解釋為?Upgrade?請求,接下來通過本文給大家介紹Spring?Boot?實現(xiàn)?WebSocket?示例詳解,需要的朋友可以參考下2022-04-04
Java ArrayList的基本概念和作用及動態(tài)數(shù)組的機制與性能
在Java中,ArrayList是一個實現(xiàn)了List接口的動態(tài)數(shù)組,它可以根據(jù)需要自動增加大小,因此可以存儲任意數(shù)量的元素,這篇文章主要介紹了探秘Java ArrayList的基本概念和作用及動態(tài)數(shù)組的機制與性能,需要的朋友可以參考下2023-12-12
Mybatis空值關(guān)聯(lián)的問題解析及解決方案
這篇文章給大家介紹了Mybatis空值關(guān)聯(lián)的問題解析及解決方案,文中通過代碼示例介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01

