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

Java SpringMVC數(shù)據(jù)響應(yīng)超詳細(xì)講解

 更新時間:2022年04月06日 14:09:37   作者:求不脫發(fā)  
Spring?MVC?是?Spring?提供的一個基于?MVC?設(shè)計模式的輕量級?Web?開發(fā)框架,本質(zhì)上相當(dāng)于?Servlet,Spring?MVC?角色劃分清晰,分工明細(xì),本章來講解SpringMVC數(shù)據(jù)響應(yīng)

1)頁面跳轉(zhuǎn) ?

直接返回字符串:此種方式會將返回的字符串與視圖解析器的前后綴拼接后跳轉(zhuǎn)。?

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGC5LiN6ISx5Y-R,size_20,color_FFFFFF,t_70,g_se,x_16

返回帶有前綴的字符串:

轉(zhuǎn)發(fā): forward:/WEB-INF/views/index.jsp

重定向: redirect:/index.jsp

通過ModelAndView對象返回

@RequestMapping("/quick2")
public ModelAndView quickMethod2(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("redirect:index.jsp");
    return modelAndView;
}
@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    return modelAndView;
}

?在進(jìn)行轉(zhuǎn)發(fā)時,往往要向request域中存儲數(shù)據(jù),在jsp頁面中顯示,那么Controller中怎樣向request 域中存儲數(shù)據(jù)呢?

① 通過SpringMVC框架注入的request對象setAttribute()方法設(shè)置。

@RequestMapping("/quick")
public String quickMethod(HttpServletRequest request){
    request.setAttribute("name","zhangsan");
    return "index";
}

② 通過ModelAndView的addObject()方法設(shè)置。

@RequestMapping("/quick3")
public ModelAndView quickMethod3(){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");
    modelAndView.addObject("name","lisi");
    return modelAndView;
}

2)回寫數(shù)據(jù)

直接返回字符串:Web基礎(chǔ)階段,客戶端訪問服務(wù)器端,如果想直接回寫字符串作為響應(yīng)體返回的話,只需要使用response.getWriter().print(“hello world”) 即可,那么在Controller中想直接回寫字符串該怎樣呢?

① 通過SpringMVC框架注入的response對象,使用response.getWriter().print(“hello world”) 回寫數(shù)據(jù),此時不需要視圖跳轉(zhuǎn),業(yè)務(wù)方法返回值為void。

@RequestMapping("/quick4")
public void quickMethod4(HttpServletResponse response) throws IOException {
    response.getWriter().print("hello world");
}

② 將需要回寫的字符串直接返回,但此時需要通過@ResponseBody注解告知SpringMVC框架,方法 返回的字符串不是跳轉(zhuǎn)是直接在http響應(yīng)體中返回。

@RequestMapping("/quick5")
@ResponseBody
public String quickMethod5() throws IOException {
    return "hello springMVC!!!"; 
}

開發(fā)中往往要將復(fù)雜的java對象轉(zhuǎn)換成json格式的字符串,我們可以使用web階段學(xué)習(xí)過的json轉(zhuǎn)換工具jackson進(jìn)行轉(zhuǎn)換,

1.在pom.xml中導(dǎo)入jackson坐標(biāo)。

<!--jackson-->
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-core</artifactId>
 <version>2.9.0</version>
</dependency>
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-databind</artifactId>
 <version>2.9.0</version>
</dependency> 
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-annotations</artifactId>
 <version>2.9.0</version>
</dependency>

2.通過jackson轉(zhuǎn)換json格式字符串,回寫字符串。 ?

@RequestMapping("/quick7")
@ResponseBody
public String quickMethod7() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    ObjectMapper objectMapper = new ObjectMapper();
    String s = objectMapper.writeValueAsString(user);
    return s;
}

返回對象或集合

通過SpringMVC幫助我們對對象或集合進(jìn)行json字符串的轉(zhuǎn)換并回寫,為處理器適配器配置消息轉(zhuǎn)換參數(shù), 指定使用jackson進(jìn)行對象或集合的轉(zhuǎn)換,因此需要在spring-mvc.xml中進(jìn)行如下配置:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
 <property name="messageConverters">
     <list>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
     </list>
 </property>
</bean>

直接在方法中返回對象或集合

@RequestMapping("/quick8")
@ResponseBody
public User quickMethod8() throws IOException {
    User user = new User();
    user.setUsername("zhangsan");
    user.setAge(18);
    return user;
}

3)配置注解驅(qū)動

在方法上添加 @ResponseBody就可以返回json格式的字符串,但是這樣配置比較麻煩,配置的代碼比較多, 因此,我們可以使用mvc的注解驅(qū)動代替上述配置。

在 SpringMVC 的各個組件中, 處理器映射器、 處理器適配器、 視圖解析器稱為 SpringMVC 的三大組件。

使用<mvc:annotation-driven>自動加載 RequestMappingHandlerMapping(處理映射器)和 RequestMappingHandlerAdapter(處理適配器)可用在Spring-xml.xml配置文件中使用 <mvc:annotation-driven>替代注解處理器和適配器的配置。

同時使用<mvc:annotation-driven>默認(rèn)底層就會集成jackson進(jìn)行對象或集合的json格式字符串的轉(zhuǎn)換。

<!--在spring-mvc.xml中配置mvc的注解驅(qū)動--> 
<mvc:annotation-driven/>

4)知識要點

SpringMVC的數(shù)據(jù)響應(yīng)方式

1) 頁面跳轉(zhuǎn) ????????

  • 直接返回字符串 ????????
  • 通過ModelAndView對象返回

2) 回寫數(shù)據(jù) ????????

  • 直接返回字符串 ????????
  • 返回對象或集合

到此這篇關(guān)于Java SpringMVC數(shù)據(jù)響應(yīng)超詳細(xì)講解的文章就介紹到這了,更多相關(guān)Java SpringMVC內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談@PostConstruct不被調(diào)用的原因

    淺談@PostConstruct不被調(diào)用的原因

    這篇文章主要介紹了淺談@PostConstruct不被調(diào)用的原因及分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • java.io.EOFException產(chǎn)生原因及解決方法(附代碼)

    java.io.EOFException產(chǎn)生原因及解決方法(附代碼)

    java.io.EOFException表示在讀取數(shù)據(jù)時突然遇到了文件或流的末尾,也就是說客戶端或服務(wù)器已經(jīng)關(guān)閉了連接,但是你還在嘗試讀取數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于java.io.EOFException產(chǎn)生原因及解決的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • springboot集成redis啟動報錯問題的解決方式

    springboot集成redis啟動報錯問題的解決方式

    這篇文章主要介紹了springboot集成redis啟動報錯問題的解決方式,從錯誤信息上看缺少pool2相關(guān)包,查詢資料發(fā)現(xiàn)當(dāng)redis客戶端選擇Lettuce時候需要增加:commons-pool2
    添加引用,重啟服務(wù),需要的朋友可以參考下
    2023-11-11
  • java發(fā)送form-data請求實現(xiàn)文件上傳的示例代碼

    java發(fā)送form-data請求實現(xiàn)文件上傳的示例代碼

    最近做一個需求,需要請求第三方接口上傳文件,該請求類型是form-data請求,本文就來介紹一下java發(fā)送form-data請求實現(xiàn)文件上傳的示例代碼,感興趣的可以了解一下
    2023-12-12
  • Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式

    Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式

    這篇文章主要介紹了Springboot線程池并發(fā)處理數(shù)據(jù)優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java使用正則表達(dá)式(regex)匹配中文實例代碼

    Java使用正則表達(dá)式(regex)匹配中文實例代碼

    本文給大家分享java使用正則表達(dá)式匹配中文的實例代碼,以及java中要匹配中文的正則表達(dá)式兩種寫法,感興趣的朋友通過本文一起看看吧
    2016-12-12
  • Druid核心源碼解析DruidDataSource

    Druid核心源碼解析DruidDataSource

    這篇文章主要為大家介紹了Druid核心源碼解析DruidDataSource,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Mybatis之映射實體類中不區(qū)分大小寫的解決

    Mybatis之映射實體類中不區(qū)分大小寫的解決

    這篇文章主要介紹了Mybatis之映射實體類中不區(qū)分大小寫的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • maven插件assembly使用及springboot啟動腳本start.sh和停止腳本 stop.sh

    maven插件assembly使用及springboot啟動腳本start.sh和停止腳本 stop.sh

    這篇文章主要介紹了maven插件assembly使用及springboot啟動腳本start.sh和停止腳本 stop.sh的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 淺談Java中注解Annotation的定義、使用、解析

    淺談Java中注解Annotation的定義、使用、解析

    下面小編就為大家?guī)硪黄獪\談Java中注解Annotation的定義、使用、解析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論

高碑店市| 惠安县| 临城县| 岳池县| 孝义市| 方城县| 长宁县| 广西| 梅河口市| 冷水江市| 班玛县| 襄樊市| 灵山县| 嘉鱼县| 庆云县| 象山县| 莒南县| 孝感市| 佳木斯市| 长乐市| 东海县| 苏尼特左旗| 旅游| 留坝县| 普定县| 巩义市| 巴林右旗| 周至县| 德钦县| 六枝特区| 泰兴市| 石景山区| 留坝县| 信丰县| 涞水县| 宜宾县| 依安县| 原阳县| 天峻县| 公主岭市| 龙山县|