亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

關于SpringMVC Json使用

2019-11-14 22:13:51
字體:
來源:轉載
供稿:網友
關于SPRingMVC Json使用

很簡單的一個東西,這里就不做過多介紹了,寫一個小Demo,隨手記錄下。

首先,在搭好SpringMVC工程環境之后,如果想用Spring自帶的Json,需要額外的添加2個JAR包:

1、jackson-core-asl-1.9.9.jar

2、jackson-mapper-asl-1.9.9.jar

我這里使用的是Maven,也相對應的給出pox.xml

 1         <dependency> 2             <groupId>org.codehaus.jackson</groupId> 3             <artifactId>jackson-core-lgpl</artifactId> 4             <version>1.8.1</version> 5         </dependency> 6  7         <dependency> 8             <groupId>org.codehaus.jackson</groupId> 9             <artifactId>jackson-mapper-lgpl</artifactId>10             <version>1.8.1</version>11         </dependency>

當然也可以不使用Spring自帶的Json,還有很多第三方的Json支持包,比如谷歌的Gson,都是很好用的東西。

關于Gson的使用,之前的文章里也有做介紹,請戳:《Gson簡要使用筆記》http://www.49028c.com/lichenwei/p/3987429.html

好了,進入正題,要使用Spring自帶的Json,需要在SpringMVC配置文件里做一些配置:

 1     <!-- 處理在類級別上的@RequestMapping注解 --> 2     <bean 3         class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> 4     <!-- 處理在方法級別上的@RequestMapping注解 --> 5     <bean 6         class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 7         <property name="messageConverters"> 8             <list> 9                 <bean10                     class="org.springframework.http.converter.StringHttpMessageConverter">11                     <property name="supportedMediaTypes">12                         <list>13                          <!-- 默認是ISO-88859-1,避免亂碼這里設置為UTF-8 -->14                             <value>15                                 text/html;charset=UTF-816                             </value>17                         </list>18                     </property>19                 </bean>20                 <!-- 啟動JSON格式的配置 -->21                 <bean id="jacksonMessageConverter"22                     class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">23                     <!-- 解決 HttpMediaTypeNotAcceptableException: Could not find acceptable 24                         representation -->25                     <property name="supportedMediaTypes">26                         <list>27                             <value>application/json;charset=UTF-8</value>28                         </list>29                     </property>30                 </bean>31             </list>32         </property>33     </bean>

有了以上的配置之后,我們只需要在對應處理Ajax請求的方法上加上注解@ResponseBody,這樣Spring就會幫我們把內容或對象作為HTTP響應的正文返回,會跳過視圖處理部分,而調用適合HttpMessageConverter,將返回值(對象、字符串、List集合等)寫入輸出流。

SpringMVC的用法這里就不再多說了,直接給出關鍵代碼:

    //向頁面直接輸出Json字符串    @ResponseBody    @RequestMapping(value="/showUser",params="json",produces="application/json")    public User showUserJson(){        User user=userService.getUserById(1);//獲取數據庫的一條信息        return user;    }

@RequestMapping

value: 指定請求的實際地址,指定的地址可以是URI Template 模式(后面將會說明);

produces: 指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回;

params: 指定request中必須包含某些參數值,才讓該方法處理。

看一下頁面輸出:

怎么樣?相比Struts2輸出Json要簡單的多吧,少去了很多配置和通配符的設定。

再來看一下和AJAX的配合使用,服務端的代碼依舊如上,然后我們寫一個jsp頁面進行測試

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <% 4     String path = request.getContextPath(); 5     String basePath = request.getScheme() + "://" 6             + request.getServerName() + ":" + request.getServerPort() 7             + path + "/"; 8 %> 9 <html>10 <head>11     <script type="text/Javascript" src="<%=basePath %>js/jquery-1.4.4.min.js"></script>12     <script type="text/javascript">13         $(document).ready(function(){14             $("#send").click(function(){15                     $.ajax({16                         type:"get",17                         url:"<%=basePath %>userController/showUser?json",18                         dataType:" json",19                         success:function(data){    20                             alert(data);21                         }22                     });23             });24         });25     </script>26 </head>27 <body>28 <h3>點擊下面按鈕,輸出Json信息</h3>29 <input type="button" id="send" name="send" value="獲取json信息">30 </body>31 </html>

這里要提到一個注意事項,我們在整合SpringMVC的時候需要在web.xml進行對DispatcherServlet的配置

 1     <!-- SpringMVC配置 --> 2     <servlet> 3         <servlet-name>springDispatcherServlet</servlet-name> 4         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 5         <init-param> 6             <param-name>contextConfigLocation</param-name> 7             <param-value>classpath:springmvc.xml</param-value> 8         </init-param> 9         <load-on-startup>1</load-on-startup>10     </servlet>11 12     <servlet-mapping>13         <servlet-name>springDispatcherServlet</servlet-name>14         <url-pattern>/</url-pattern>15     </servlet-mapping>

如果你配置DispatcherServlet攔截*.do就不會存在靜態資源訪問的問題,

但如果你和我一樣配置DispatcherServlet攔截 / (所有),那么對*.js,*.CSS,*.jpg等資源的訪問也就被攔截了,也就訪問不到了。

這里順帶說下解決方法:

激活Tomcat的defaultServlet來處理靜態文件

 1 <servlet-mapping> 2     <servlet-name>default</servlet-name> 3     <url-pattern>*.jpg</url-pattern> 4 </servlet-mapping> 5 <servlet-mapping> 6     <servlet-name>default</servlet-name> 7     <url-pattern>*.js</url-pattern> 8 </servlet-mapping> 9 <servlet-mapping>10     <servlet-name>default</servlet-name>11     <url-pattern>*.css</url-pattern>12 </servlet-mapping>  

每種文件類型都要配置,要寫在DispatcherServlet的前面, 讓defaultServlet先攔截,這個就不會進入Spring了。

看下實現效果:


上一篇:Java基本語法

下一篇:hdu 1002大數(Java)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文国产成人精品久久一| 精品国模在线视频| 亚洲精品国产精品久久清纯直播| 亚洲高清在线观看| 国产精品成av人在线视午夜片| 国产精品久久电影观看| 亚洲天堂网站在线观看视频| 日韩欧美在线播放| 欧美激情视频在线观看| 欧美激情一区二区三区在线视频观看| 亚洲第一区中文字幕| 欧美大秀在线观看| 在线电影av不卡网址| 欧美成人午夜激情视频| 美女视频黄免费的亚洲男人天堂| 精品国产自在精品国产浪潮| 亚洲国产成人精品久久久国产成人一区| 日韩av网站电影| 国产精品久久久久久久久久ktv| 中文精品99久久国产香蕉| 色狠狠av一区二区三区香蕉蜜桃| 国产精品综合网站| 成人免费网视频| 国产日韩精品在线| 欧美激情欧美激情在线五月| 欧美日韩在线另类| 国产日韩精品视频| 久久久999国产| 欧美亚洲午夜视频在线观看| 国产精品成人aaaaa网站| 日韩在线精品视频| 久久精品一偷一偷国产| 国产成人精品视频| 91社影院在线观看| 欧美性色视频在线| 欧美电影免费看| 久久精品中文字幕| 国产精品久久久一区| 午夜精品99久久免费| 亚洲人成电影在线观看天堂色| 亚洲国产精品一区二区久| 亚洲变态欧美另类捆绑| 中文字幕欧美精品日韩中文字幕| 国产精品视频最多的网站| 日韩欧美999| 亚洲自拍高清视频网站| 精品五月天久久| 欧美亚洲国产另类| 中文字幕精品久久久久| 国产日韩在线亚洲字幕中文| 91理论片午午论夜理片久久| 日韩成人小视频| 91精品国产自产在线观看永久| 精品久久久久久久久久久久久久| 日本精品久久电影| 国产亚洲一级高清| 亚洲热线99精品视频| 日韩亚洲国产中文字幕| 国产精品wwwwww| 亚洲精品国产综合区久久久久久久| 2019中文字幕全在线观看| 亚洲xxx大片| 亚洲成人免费在线视频| 日韩大胆人体377p| 亚洲xxx视频| 欧美日韩午夜激情| www.亚洲男人天堂| 亚洲曰本av电影| 亚洲国产欧美一区二区三区久久| 91精品国产自产在线| 久热99视频在线观看| 欧美精品福利视频| 欧美日韩亚洲精品一区二区三区| 久久精品国产久精国产思思| 国产精品精品久久久| 国产91对白在线播放| 欧美精品少妇videofree| 中文字幕免费国产精品| 久久在线视频在线| 日韩在线不卡视频| 国产精品视频免费观看www| 亚洲国产欧美一区二区三区久久| 992tv成人免费视频| 欧美精品久久久久久久免费观看| 色偷偷av亚洲男人的天堂| 亚洲福利在线观看| 欧美成人一区在线| 国产亚洲精品综合一区91| 国产精品18久久久久久麻辣| 精品偷拍一区二区三区在线看| 精品国产电影一区| 国产视频999| 欧美性高潮在线| 精品亚洲aⅴ在线观看| 日本久久精品视频| 国产成人福利夜色影视| 日韩视频欧美视频| 成人网在线视频| 91chinesevideo永久地址| 欧美国产高跟鞋裸体秀xxxhd| 欧美日韩精品国产| 日韩欧美一区二区三区| 日韩av电影免费观看高清| 欧美劲爆第一页| 精品视频在线播放免| 91热精品视频| 亚洲成人精品久久久| 亚洲www在线观看| 国产成人综合久久| 国产精品99久久99久久久二8| 国产不卡一区二区在线播放| 日韩成人av一区| 亚洲精品自拍第一页| 日韩成人av网| 国产精品网址在线| 中文字幕不卡av| 国产精品精品一区二区三区午夜版| 亚洲精品91美女久久久久久久| 欧美日韩午夜激情| 欧美最猛性xxxxx(亚洲精品)| 亚洲专区国产精品| 欧美激情中文网| 日韩美女中文字幕| 日韩中文字幕久久| 狠狠综合久久av一区二区小说| 亚洲肉体裸体xxxx137| 国产欧洲精品视频| 97在线视频精品| 久久久999国产精品| 国产国语刺激对白av不卡| 欧美激情18p| 国产精品久久久久久av下载红粉| 8x拔播拔播x8国产精品| 黑人巨大精品欧美一区二区三区| 亚洲精品成a人在线观看| 国产精品日韩欧美大师| 欧美怡红院视频一区二区三区| 日韩精品电影网| 亚洲精品天天看| 成人写真视频福利网| 国产精品揄拍一区二区| 日韩欧美国产免费播放| 日韩专区在线观看| 欧美多人乱p欧美4p久久| 欧美性xxxx极品高清hd直播| www.欧美精品一二三区| 久久精品国产一区| 一区二区欧美久久| 2019亚洲日韩新视频| 亚洲精品成人久久久| 亚洲区bt下载| 日韩精品日韩在线观看| 91精品久久久久久久| 91福利视频在线观看| 91九色视频导航| 韩国19禁主播vip福利视频| 日韩亚洲欧美中文在线| 韩曰欧美视频免费观看| 韩剧1988在线观看免费完整版| 欧美区二区三区| 久久国产加勒比精品无码| 日韩综合视频在线观看| 欧美一区二区三区艳史| 日韩精品中文字幕在线播放|