Json详见. RESTful风格详见.
jar包 项目结构图
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>spirngmvc_01</display-name> <!-- 配置前端过滤器 --> <servlet> <servlet-name>springmvc</servlet-name> <!--servlet-class中的值是spring-webmvc包提供的类,即前端控制器,用于控制所有请求 --> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 初始化时加载文件(mvc-json.xml) --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:mvc-json.xml</param-value> </init-param> <!-- 表示容器在启动时立即加载 Servlet,数值越小,加载越快 --> <load-on-startup>1</load-on-startup> </servlet> <!-- 配置servlet映射 servlet-name取值与servlet的servlet-name一致--> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>mvc-json.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <context:component-scan base-package="com.myjson" /> <!-- 1、配置注解驱动 --> <mvc:annotation-driven /> <!-- 2、 <bean>标签配置注解方式的处理器映射器和处理器适配器必须配对使用 使用 <bean>标签配置注解方式的处理器映射器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> --> <!-- 使用 <bean>标签配置注解方式的处理器适配器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> --> <!-- <property name="messageConverters"> --> <!-- <list> --> <!-- 在注解适配器中配置 JSON 转换器 --> <!-- <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> </list> </property> </bean> --> <!-- 定义视图解析器 --> <bean class= "org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 设置前缀 --> <property name="prefix" value="/" /> <!-- 设置后缀 --> <property name="suffix" value=".jsp" /> </bean> </beans>JsonTest.java
package com.myjson; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.user.User; @Controller public class JsonTest { public JsonTest() { // TODO Auto-generated constructor stub } //RESTful风格 @RequestMapping("/jsonTest/{id}") //用于直接返回对象,标注在方法上 @ResponseBody //用于将请求体中的数据绑定到形参上,标注在形参上 public User Restful(/* @RequestBody User user */ @PathVariable("id") String id) { User user = new User(); System.out.println("Restful风格"); if(id.equals("1")) { user.setUserName("tom"); } return user; } //Json @RequestMapping("/jsonTest") //用于直接返回对象,标注在方法上 @ResponseBody //用于将请求体中的数据绑定到形参上,标注在形参上 public User jsonTest(@RequestBody User user) { System.out.println("Json交互"); return user; } }jsonTest.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>json</title> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript"> function jsonTest() { var username = $("#username").val(); var password = $("#password").val(); $.ajax({ url : "jsonTest/"+username, //RESTful风格 //url : "jsonTest", type : "post", //请求方式 //data:请求携带的数据,当使用json格式时, //{}内是一个对象,userName,passWord为pojo类里的属性 //data : JSON.stringify({userName:username,passWord:password}), //contentType:当响应数据为json格式时,值必须为application/json contentType : "application/json;charset=utf-8", //可选(自动识别),当响应数据为json时,值必须也是json dataType : "json", //请求成功后 success : function(data) { if(data!=null) { if(data.userName!=null&&data.passWord!=null) { alert(" 您输入的用户名为: "+data.userName+ "密码为: "+data.passWord); } else { alert(" 您查找的用户名:"+data.userName); } } else { alert(" null"); } } }); } </script> </head> <body> <form action=""> <input type="text" id="username" name="username"><br> <!-- <input type="password" id="password" name="password"><br> --> <input type="button" value="jsontest" onclick="jsonTest()"> </form> </body> </html>User类(pojo类)。。。略
这样,一个关于json数据交互的小案例就完成了
