博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.4(Spring MVC学习笔记)JSON数据交互与RESTful支持
阅读量:7145 次
发布时间:2019-06-29

本文共 5336 字,大约阅读时间需要 17 分钟。

一、JSON数据交互

  1.1JSON简介

  JSON(JavaScript Object Notation)是一种数据交换格式。

  

  1.2JSON对象结构

  {}代表一个对象,{}中写入数据信息,通常为key:value形式。

  {key:value,key:value},属性名和属性之间用“:”隔开,各个属性间用“,”隔开.

  同时value不仅可以为字符串或数字,也可为一个{}表示的对象。

  {key:{key1:value1}}

  数组采用[]表示,[value1,value2...] value可为数字,布尔类型,String。

  其中key必须为String类型,value可以为对象({}),数字,布尔类型,数组,null。 

{    “name”:"hcf",    “age":20,    "hobby":["篮球","足球","网球"],    “address”:{        "city":"xx",        "street":"xxx",        "postcode",123456,    }    "isAdult":true}

 

  2.1SpringMVC实现JSON数据绑定

  首先需要准备一些.jar包。

  

  下载地址:

  还需要下载jQuery库:

  不想下载jQuery库也可以通过CDN引用。

百度 CDN:

 

  这个类似数据绑定,将JSON数据与控制类中的参数绑定,不过这里绑定的是JSON类型的数据。

  JSON转换注解:

  @RequestBody:将请求中的JSON格式数据绑定到对应参数上(用在形参上)。

  @ResponseBody:用于方法上,返回值不会解析为路径,而是被解析为JSON,同时将JSON写入response对象的body区。

    

 

  首先来配置前端控制器:

web.xml 

SpringMVC
springmvc
org.springframework.web.servlet.DispatcherServlet
1
springmvc
/

 

springmvc-servlet.xml

 

User.java(作为Contrller类参数类型,用于封装一个JSON类型,属性名与JSON中的key要对应。)

package com.springmvc.json;public class User {    public String userName;    public String password;    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public String toString() {        // TODO Auto-generated method stub        return "name:" + this.getUserName() + "\nage:" + this.getPassword();    }}

 

控制类:

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class JsonController {    @ResponseBody()//加上注解,返回一个JSON形式组织的对象    @RequestMapping("/testJson")    //User获取JSON发送的数据    public User testJosn(@RequestBody User user) {        System.out.println(user);        System.out.println("into TestJson");        return user;//后续用于ajax中success属性中的方法输出。    }        //用于页面跳转,跳转到WBE-INF/jsp/testJson.jsp页面    @RequestMapping("/toTestJson")    public String toTestJson() {        System.out.println("into toTestJson");        return "testJson";    }    }

 

testJson.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    
Insert title here
用户名:
密   码:

 

点击testJson按钮,触发testJson方法。

首先获取输入值,然后通过ajax向SpringMVC/testJson发送请求和数据。

控制类中的testJson方法执行,接受发送的数据并输出。

发送成功后执行ajax success属性中的方法,弹出用户名和密码信息。

 

 

 二、RESTful支持

  RESTful又称REST(representational state transfer)。

  传统URL格式:

  localhost:8080/SpringMVC/test?id=1

  RESTful风格:

  localhost:8080/SpringMVC/test/1

  这里主要用到@RequestMapping 和@PahtVariable注解。

  可参阅:中3.2部分内容。

  

  接下来采用RESTful风格的URL,然后通过ajax发送数据。

User.java  

package com.springmvc.restful;public class User {    public int id;    public String name;    public int age;         public User() {};        public User(int id, String name, int age) {        super();        this.id = id;        this.name = name;        this.age = age;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    }

 

控制类

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class RestfulController {    @ResponseBody    @RequestMapping("/restful/{id}")//执行查询    public User selectUser(@PathVariable("id") int id) {        if(id == 1) //模拟数据库查询            return new User(1,"hcf",20);        else            return new User();    }        //跳转WEB-INF/jsp/testRESTful.jsp    @RequestMapping("/toTestRESTful")    public String toTestRESTful() {        return "testRESTful";    }}
testRESTful.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    
Insert title here
id:

 

输入查询id,点击查询按钮后执行testRestful方法。

首先获取输入的id,然后将id作为URL的一部分发送请求。

控制类中获取指定参数并进行查询,最后返回结果。

请求成功后ajax中success执行对应方法,弹出查询的用户名及密码。

 

 

参考资料:

 

转载于:https://www.cnblogs.com/huang-changfan/p/10417757.html

你可能感兴趣的文章
前端基本知识
查看>>
将excel中的数据转为json格式
查看>>
Poedu_项目2_Lesson005 课堂笔记
查看>>
字典操作
查看>>
实验2
查看>>
使用source创建一个新项目(将本地项目文件和github远程库链接)
查看>>
运行问题,如何修改APACHE的监听端口和密码
查看>>
Solaris服务管理
查看>>
Linux process state codes
查看>>
tyvj P1175 机器人
查看>>
1341 与3和5无关的数
查看>>
EasyReport报表工具
查看>>
【Tomcat】tomcat内存配置登记册
查看>>
HDOJ 2101 A + B Problem Too
查看>>
timus 1982 Electrification Plan(最小生成树)
查看>>
Android实例-操作摄像头(XE8+小米2)
查看>>
JAVA-JSP内置对象之session范围
查看>>
JAVA-JSP内置对象之out对象求得缓冲区使用大小
查看>>
<转>cookie和缓存解析
查看>>
基于AFNetWorking封装一个网络请求数据的类
查看>>