最新国产好看的视频,伊人天堂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、導入關(guān)鍵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;
}

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

相關(guān)文章

  • 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ù)字化時代,圖像處理技術(shù)在各個領(lǐng)域都發(fā)揮著至關(guān)重要的作用,本文為大家詳細介紹了如何使用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的用法全解

    這篇文章主要給大家介紹了關(guān)于Java8中CompletableFuture用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    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

最新評論

丹东市| 惠来县| 博白县| 蒲江县| 安溪县| 苗栗县| 抚松县| 高要市| 大丰市| 绥江县| 凌云县| 东安县| 黄平县| 固始县| 宜兰市| 盐池县| 天气| 文水县| 加查县| 山东| 榆社县| 云林县| 郎溪县| 茌平县| 崇阳县| 桃园市| 儋州市| 萝北县| 昭平县| 无为县| 吴旗县| 绥宁县| 潍坊市| 桐梓县| 宣武区| 浠水县| 营口市| 弥渡县| 青阳县| 云和县| 凉山|