最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring?MVC響應(yīng)結(jié)果和設(shè)置舉例詳解

 更新時(shí)間:2024年11月06日 09:28:31   作者:2的n次方_  
在Web開發(fā)中,通過@Controller和@RestController注解,可以分別返回HTML頁(yè)面和JSON數(shù)據(jù),@Controller配合@ResponseBody可以返回HTML代碼片段或JSON,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

?1. 返回靜態(tài)頁(yè)面

先創(chuàng)建一個(gè) html 頁(yè)面

如果還按照之前的方式進(jìn)行返回的話,返回的并不是一個(gè) html 頁(yè)面

@RequestMapping("/response")
@RestController
public class ResponseController {
    @RequestMapping("/returnHtmlPage")
    public String returnHtmlPage(){
        return "/hello.html";
    }
}

?如果把 @RestController 改成 @Controller就可以返回 html 頁(yè)面

@RequestMapping("/response")
@Controller
public class ResponseController {
    @RequestMapping("/returnHtmlPage")
    public String returnHtmlPage(){
        return "/hello.html";
    }
}

?對(duì)比這兩個(gè)注解的實(shí)現(xiàn)可以發(fā)現(xiàn),可以理解為@RestController 是在 @Controller的基礎(chǔ)上實(shí)現(xiàn)的,相差了一個(gè) @ResponseBody

@ResponseBody 表示返回?cái)?shù)據(jù),如果使用 @Controller再加上@ResponseBody 就又顯示的是數(shù)據(jù)了

@ResponseBody 既是類注解又是方法注解,如果作用在類上,表示該類的所有方法都返回的是數(shù)據(jù),如果作用在方法上,表示該方法返回的是數(shù)據(jù),其它的不受影響

此外,由于 @Controller 返回的是頁(yè)面,所以用到了像之前使用的 @RestController返回?cái)?shù)據(jù)的代碼中,就可能報(bào)錯(cuò)

?如果把原來的返回值當(dāng)成頁(yè)面路徑返回后,就找不到這個(gè)頁(yè)面,就會(huì)給出 404 的狀態(tài)碼

2. 返回 html 代碼片段

如果還是用 @Controller的話,由于返回的是頁(yè)面,就找不到對(duì)應(yīng)的路徑,所以需要加上 @ResponseBody,直接寫上去的 html 代碼片段會(huì)被自動(dòng)識(shí)別:

@ResponseBody
@RequestMapping("/returnHtml")
public String returnHtml(){
    return "<h1>你好</h1>";
}

3. 返回 JSON

JSON 是可以表示對(duì)象的,返回對(duì)象時(shí)就會(huì)通過 JSON 方式返回

@ResponseBody
@RequestMapping("/returnJson")
public User returnJson(){
    User user = new User();
    user.setName("zhangsan");
    user.setAge(18);
    return user;
}

?這里的返回類型也變?yōu)榱?JSON

4. 設(shè)置狀態(tài)碼

狀態(tài)碼可以通過創(chuàng)建 HttpServletResponse 對(duì)象調(diào)用 setStatus 方法進(jìn)行設(shè)置,例如設(shè)置一個(gè) 404

@ResponseBody
@RequestMapping("/setStatus")
public User setStatus(HttpServletResponse response){
User user = new User();
user.setName("zhangsan");
user.setAge(18);
response.setStatus(404);
return user;
}

?雖然說顯示的是 404 狀態(tài)碼,但是還是顯示了頁(yè)面

5. 設(shè)置 header

在 @RequestMapping中設(shè)置一些參數(shù)可以修改指定 header 的一些類型

1. value:指定映射的 URL

2. method:指定請(qǐng)求的 method 類型,如 GET ,POST等

3. consumes:指定處理請(qǐng)求的提交內(nèi)容類型(Content-type),例如 application/json, text/html

4. produces:指定返回的內(nèi)容類型,還可以同時(shí)設(shè)置返回值的字符編碼

5. params:指定 request 中必須包含某些參數(shù)

6. headers:指定 request 中必須包含某些制定的 header 值

來修改一下請(qǐng)求類型:

@ResponseBody
@RequestMapping(value = "/setHeader",produces = "application/json")
public String setHeader(){
    return "<h1>你好</h1>";
}

?還可以添加一個(gè) Header 信息

@ResponseBody
@RequestMapping(value = "/setHeader2")
public String setHeader2(HttpServletResponse response){
response.setHeader("name","zhangsan");
return "success";
}

總結(jié)

到此這篇關(guān)于Spring MVC響應(yīng)結(jié)果和設(shè)置的文章就介紹到這了,更多相關(guān)Spring MVC響應(yīng)結(jié)果和設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 聊聊spring boot的WebFluxTagsProvider的使用

    聊聊spring boot的WebFluxTagsProvider的使用

    這篇文章主要介紹了聊聊spring boot的WebFluxTagsProvider的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • SpringBoot整合MQTT協(xié)議實(shí)現(xiàn)消息訂閱與發(fā)布功能

    SpringBoot整合MQTT協(xié)議實(shí)現(xiàn)消息訂閱與發(fā)布功能

    文章介紹了基于MQTT的項(xiàng)目實(shí)現(xiàn),包含依賴配置、啟動(dòng)時(shí)固定主題訂閱、連接配置類、消息發(fā)布與訂閱功能、回調(diào)處理連接狀態(tài)及消息,并通過接口測(cè)試消息發(fā)送與接收,驗(yàn)證EMQX連接狀態(tài)與主題交互,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Java多線程Thread類的使用詳解

    Java多線程Thread類的使用詳解

    這篇文章主要介紹了Java多線程Thread類的使用及注意事項(xiàng),在java標(biāo)準(zhǔn)庫(kù)中提供了一個(gè)Thread類來表示/操作線程,Thread類也可以視為是java標(biāo)準(zhǔn)庫(kù)提供的API
    2022-12-12
  • 使用Spring事件監(jiān)聽機(jī)制實(shí)現(xiàn)跨模塊調(diào)用的步驟詳解

    使用Spring事件監(jiān)聽機(jī)制實(shí)現(xiàn)跨模塊調(diào)用的步驟詳解

    Spring 事件監(jiān)聽機(jī)制是 Spring 框架中用于在應(yīng)用程序的不同組件之間進(jìn)行通信的一種機(jī)制,Spring 事件監(jiān)聽機(jī)制基于觀察者設(shè)計(jì)模式,使得應(yīng)用程序的各個(gè)部分可以解耦,提高模塊化和可維護(hù)性,本文給大家介紹了使用Spring事件監(jiān)聽機(jī)制實(shí)現(xiàn)跨模塊調(diào)用,需要的朋友可以參考下
    2024-06-06
  • 一文了解為什么Java中只有值傳遞

    一文了解為什么Java中只有值傳遞

    Java?傳參是值傳遞還是引用傳遞?這個(gè)問題很基礎(chǔ),但是許多人都有點(diǎn)懵。本文就來通過一些示例帶大家詳細(xì)了解一下,需要的可以參考一下
    2022-07-07
  • jfreechart畫折線圖的方法

    jfreechart畫折線圖的方法

    這篇文章主要為大家詳細(xì)介紹了jfreechart畫折線圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Mybatis-plus 雙主鍵的實(shí)現(xiàn)示例

    Mybatis-plus 雙主鍵的實(shí)現(xiàn)示例

    本文主要介紹了Mybatis-plus 雙主鍵的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • jdbc結(jié)合dpcp連接池的封裝實(shí)例

    jdbc結(jié)合dpcp連接池的封裝實(shí)例

    下面小編就為大家?guī)硪黄猨dbc結(jié)合dpcp連接池的封裝實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • 淺析如何在SpringBoot上傳中將MultipartFile轉(zhuǎn)File對(duì)象

    淺析如何在SpringBoot上傳中將MultipartFile轉(zhuǎn)File對(duì)象

    在我們開發(fā) Spring Boot Web 應(yīng)用中,文件上傳通常通過 MultipartFile 接口接收,但有時(shí)我們需要將 MultipartFile 轉(zhuǎn)成標(biāo)準(zhǔn)的 java.io.File 對(duì)象,下面我們就來看看具體實(shí)現(xiàn)吧
    2025-08-08
  • HttpClient的RedirectStrategy重定向處理核心機(jī)制

    HttpClient的RedirectStrategy重定向處理核心機(jī)制

    這篇文章主要為大家介紹了HttpClient的RedirectStrategy重定向處理核心機(jī)制源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10

最新評(píng)論

和硕县| 崇左市| 沅陵县| 香港| 泰宁县| 土默特右旗| 镇坪县| 霸州市| 山东省| 武宣县| 吴堡县| 安平县| 巧家县| 三都| 全州县| 麻栗坡县| 泰和县| 贵溪市| 江津市| 广平县| 柘荣县| 吉林市| 临高县| 阿坝| 宜春市| 建湖县| 河津市| 连平县| 新巴尔虎左旗| 达州市| 石楼县| 长白| 汕尾市| 筠连县| 民勤县| 灵寿县| 开原市| 年辖:市辖区| 英德市| 揭西县| 瑞昌市|