欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

如果還按照之前的方式進(jìn)行返回的話(huà),返回的并不是一個(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 既是類(lèi)注解又是方法注解,如果作用在類(lèi)上,表示該類(lèi)的所有方法都返回的是數(shù)據(jù),如果作用在方法上,表示該方法返回的是數(shù)據(jù),其它的不受影響

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

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

2. 返回 html 代碼片段

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

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

3. 返回 JSON

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

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

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

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

狀態(tài)碼可以通過(guò)創(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;
}

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

5. 設(shè)置 header

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

1. value:指定映射的 URL

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

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

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

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

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

來(lái)修改一下請(qǐng)求類(lèi)型:

@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)文章

  • Springboot整合Shiro之加鹽MD5加密的方法

    Springboot整合Shiro之加鹽MD5加密的方法

    這篇文章主要介紹了Springboot整合Shiro之加鹽MD5加密的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • C# log4net使用案例詳解

    C# log4net使用案例詳解

    這篇文章主要介紹了C# log4net使用案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Mybatis之a(chǎn)ssociation和collection用法

    Mybatis之a(chǎn)ssociation和collection用法

    這篇文章主要介紹了Mybatis之a(chǎn)ssociation和collection用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 老生常談java中cookie的使用

    老生常談java中cookie的使用

    下面小編就為大家?guī)?lái)一篇老生常談java中cookie的使用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • springboot代碼,注解配置獲取yml,properties文件的map即鍵值對(duì)

    springboot代碼,注解配置獲取yml,properties文件的map即鍵值對(duì)

    這篇文章主要介紹了springboot代碼,注解配置獲取yml,properties文件的map即鍵值對(duì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • spring配置文件加密方法示例

    spring配置文件加密方法示例

    這篇文章主要介紹了spring配置文件加密方法示例,簡(jiǎn)單介紹了什么是配置文件,然后分享了在實(shí)際生產(chǎn)環(huán)境中,對(duì)配置文件不允許出現(xiàn)明文用戶(hù)名及密碼等信息需求的Java實(shí)現(xiàn)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Springboot @Transactional使用時(shí)需注意的幾個(gè)問(wèn)題記錄

    Springboot @Transactional使用時(shí)需注意的幾個(gè)問(wèn)題記錄

    本文詳細(xì)介紹了Spring Boot中使用`@Transactional`注解進(jìn)行事務(wù)管理的多個(gè)方面,包括事務(wù)的隔離級(jí)別(如REPEATABLE_READ)和傳播行為(如REQUIRES_NEW),并指出了在同一個(gè)類(lèi)中調(diào)用事務(wù)方法時(shí)可能遇到的問(wèn)題以及解決方案,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Java實(shí)現(xiàn)動(dòng)物換位游戲完整?過(guò)程詳解

    Java實(shí)現(xiàn)動(dòng)物換位游戲完整?過(guò)程詳解

    大家好,今天嘗試用Java編程設(shè)計(jì)一個(gè)GUI界面的動(dòng)物換位游戲,游戲的結(jié)果是讓左右兩組的動(dòng)物交換位置,以下是具體設(shè)計(jì)過(guò)程,供大家參考
    2022-07-07
  • Java?SpringBoot?中的操作事務(wù)

    Java?SpringBoot?中的操作事務(wù)

    這篇文章主要介紹了Java?SpringBoot?中的操作事務(wù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Java樹(shù)形結(jié)構(gòu)數(shù)據(jù)生成導(dǎo)出excel文件方法記錄

    Java樹(shù)形結(jié)構(gòu)數(shù)據(jù)生成導(dǎo)出excel文件方法記錄

    最近好像得罪了poi,遇到的都是導(dǎo)出word、Excel、pdf的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于Java樹(shù)形結(jié)構(gòu)數(shù)據(jù)生成導(dǎo)出excel文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10

最新評(píng)論