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

SpringMVC響應處理詳細解讀

 更新時間:2022年07月28日 08:41:08   作者:·~簡單就好  
Spring?MVC?是?Spring?提供的一個基于?MVC?設計模式的輕量級?Web?開發(fā)框架,本質(zhì)上相當于?Servlet,Spring?MVC?角色劃分清晰,分工明細,本章來講解SpringMVC數(shù)據(jù)響應

數(shù)據(jù)處理及跳轉(zhuǎn)

1.結(jié)果跳轉(zhuǎn)方式

①.ModelAndView

設置ModelAndView對象 , 根據(jù)view的名稱 , 和視圖解析器跳到指定的頁面

<bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
    <property name="prefix" value="/html/" />
    <property name="suffix" value=".html" />
    <property name="templateMode" value="HTML5"/>
</bean>

對應的controller類:

/**
 * 返回ModelAndView對象的方式
 * @return
 */
@RequestMapping("/save3")
public ModelAndView save3(){
    System.out.println("執(zhí)行了...");
    // 創(chuàng)建mv對象
    ModelAndView mv = new ModelAndView();
    // 把一些數(shù)據(jù),存儲到mv對象中
    mv.addObject("msg","用戶名或者密碼已經(jīng)存在");
    // 設置邏輯視圖的名稱
    mv.setViewName("suc");
    return mv;
}

②.ServletAPI:請求轉(zhuǎn)發(fā)和重定向

通過設置ServletAPI , 不需要視圖解析器 .

1、通過HttpServletResponse進行輸出

2、通過HttpServletResponse實現(xiàn)重定向

3、通過HttpServletResponse實現(xiàn)請求轉(zhuǎn)發(fā)

(1)請求轉(zhuǎn)發(fā)

? 1、是服務器端的行為

? 2、請求地址不發(fā)生改變,用戶從始至終都是同一個請求

? 3、request數(shù)據(jù)在servlet共享,因為從始至終都是同一個請求

? 4、通過setAttribute進行數(shù)據(jù)傳遞,getAttribute進行數(shù)據(jù)接收

(2)重定向

? 1.服務器端指導,客服端行為的行為

? 2.兩次request請求

? 3.用戶瀏覽器訪問的地址欄也會發(fā)生變化

? 4.重定向可以解決跨域問題

? 跨域:我們當前訪問的地址不是我們項目中的地址

    /**
     * 請求轉(zhuǎn)發(fā):
     * @param request
     * @param response
     * @throws IOException
     * @throws ServletException
     */
    @RequestMapping("/test1")
    public void test1(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        System.out.println("test1=" + request.getParameter("name"));
        request.setAttribute("msg", "你好");
        //request.getRequestDispatcher("/dept/test2").forward(request,response);
        request.getRequestDispatcher("/html/suc.html").forward(request, response);
    }
    /**
     * 重定向:
     * @param request
     * @param response
     * @throws IOException
     */
    @RequestMapping("t3")
    public void test3(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("我是test3");
        //response.sendRedirect("/SpringMVCTest/dept/t4");
        response.sendRedirect("/SpringMVCTest/html/suc.html");
    }

2.ResponseBody響應json數(shù)據(jù)

1、導入關鍵jar導入依賴

<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-core</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、標簽配置不過濾靜態(tài)資源

DispatcherServlet會攔截到所有的資源,導致一個問題就是靜態(tài)資源(img、css、js)也會被攔截到,從而不能被使用。解決問題就是需要配置靜態(tài)資源不進行攔截,在springmvc.xml配置文件添加如下配置

  1. location元素表示webapp目錄下的包下的所有文件
  2. mapping元素表示以/static開頭的所有請求路徑,如/static/a 或者/static/a/b
<!--設置靜態(tài)資源不過濾-->
<mvc:resources mapping="/css/**" location="/css/"/> <!--樣式-->
<mvc:resources mapping="/images/**" location="/images/"/> <!--圖片-->
<mvc:resources mapping="/js/**" location="/js/"/> <!--javascript-->

controller層代碼示例:user對象轉(zhuǎn)換成json對象傳輸給前端

/**
 * 異步的數(shù)據(jù)交互
 * 重定向
 * @return
 */
@RequestMapping("/save6")
public @ResponseBody User save6(User user){
    System.out.println(user);
    // 模擬,調(diào)用業(yè)務層代碼
    user.setUsername("hello");
    user.setAge(100);
    // 把user對象轉(zhuǎn)換成json,字符串,再響應。使用@ResposeBody注解 response.getWriter().print()
    return user;
}

到此這篇關于SpringMVC響應處理詳細解讀的文章就介紹到這了,更多相關SpringMVC響應內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot整合MyBatis和MyBatis-Plus請求后不打印sql日志的問題解決

    SpringBoot整合MyBatis和MyBatis-Plus請求后不打印sql日志的問題解決

    本文主要介紹了SpringBoot整合MyBatis和MyBatis-Plus請求后不打印sql日志的問題解決文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • Java實戰(zhàn)之自助進行多張圖片合成拼接

    Java實戰(zhàn)之自助進行多張圖片合成拼接

    在當今數(shù)字化時代,圖像處理技術在各個領域都發(fā)揮著至關重要的作用,本文為大家詳細介紹了如何使用Java實現(xiàn)多張圖片合成拼接,需要的可以了解下
    2025-02-02
  • Java 完美判斷中文字符的方法

    Java 完美判斷中文字符的方法

    Java判斷一個字符串是否有中文一般情況是利用Unicode編碼正則來做判斷,但是其實這個區(qū)間來判斷中文不是非常精確,以下是比較完善的判斷方法
    2013-02-02
  • Spring整合Quartz分布式調(diào)度的示例代碼

    Spring整合Quartz分布式調(diào)度的示例代碼

    本篇文章主要介紹了Spring整合Quartz分布式調(diào)度的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Java-lambda表達式入門看這一篇就夠了

    Java-lambda表達式入門看這一篇就夠了

    lambda表達式最簡單的作用就是用于簡化創(chuàng)建匿名內(nèi)部類對象,Lambda表達式是一個可傳遞的代碼塊,可以在以后執(zhí)行一次或多次,下面通過本文給大家介紹Java-lambda表達式入門教程,感興趣的朋友一起看看吧
    2021-05-05
  • springmvc學習筆記-返回json的日期格式問題的解決方法

    springmvc學習筆記-返回json的日期格式問題的解決方法

    本篇文章主要介紹了springmvc學習筆記-返回json的日期格式問題的解決方法,解決了日期格式的輸出,有興趣的可以了解一下。
    2017-01-01
  • Java8中CompletableFuture的用法全解

    Java8中CompletableFuture的用法全解

    這篇文章主要給大家介紹了關于Java8中CompletableFuture用法的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • 詳解ArrayBlockQueue源碼解析

    詳解ArrayBlockQueue源碼解析

    這篇文章主要介紹了ArrayBlockQueue源碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 詳解Java多線程與并發(fā)

    詳解Java多線程與并發(fā)

    多線程是一個進程在執(zhí)行過程中產(chǎn)生多個更小的程序單元,這些更小的單元稱為線程,這些線程可以同時存在,同時運行,一個進程可能包含多個同時執(zhí)行的線程。多線程是實現(xiàn)并發(fā)機制的一種有效手段。進程和線程一樣,都是實現(xiàn)并發(fā)的一個基本單位。
    2021-06-06
  • MybatisPlus之likeRight的用法

    MybatisPlus之likeRight的用法

    這篇文章主要介紹了MybatisPlus之likeRight的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論

松溪县| 西平县| 宁陵县| 兴安盟| 泰和县| 利川市| 岳西县| 天柱县| 新龙县| 张北县| 张掖市| 浦城县| 辽宁省| 内乡县| 太湖县| 通榆县| 鄢陵县| 安义县| 余江县| 伊川县| 东辽县| 梅州市| 建湖县| 永吉县| 尼木县| 金沙县| 宜君县| 莱州市| 浙江省| 陆良县| 庆云县| 大同市| 龙州县| 元江| 威信县| 蒙阴县| 烟台市| 日喀则市| 桃江县| 定陶县| 民和|