SpringMVC JSON 데이터 상호작용 및 RESTful 지원 실현 방법
JSON(JavaScript Object Notation,JS 대상 표기)은 경량급 데이터 교환 형식 으로 최근 몇 년 사이 에 유행 하기 시작 했다.JSON 은 자 바스 크 립 트 를 기반 으로 한 키 집합 으로 C,C++,C\#,자바,자 바스 크 립 트,Per,Python 등 다른 언어의 약속 을 사용 하고 프로 그래 밍 언어 에 완전히 독립 된 텍스트 형식 으로 데 이 터 를 저장 하고 표시 한다.이러한 특성 으로 인해 JSON 은 이상 적 인 데이터 상호작용 언어 가 되 었 고 읽 기 쉽 고 작성 하기 쉬 우 며 기계 적 으로 해석 하고 생 성 하기 도 쉽다.
XML 과 마찬가지 로 JSON 도 일반 텍스트 에 기반 한 데이터 형식 이다.초보 자 는 JSON 을 사용 하여 간단 한 String,Number,Boolean 을 전송 할 수도 있 고 하나의 배열 이나 복잡 한 Object 대상 을 전송 할 수도 있다.
JSON 은 다음 과 같은 두 가지 데이터 구 조 를 가지 고 있다.
1.개체 구조
대상 구 조 는"{"로 시작 하여"}"로 끝 납 니 다.중간 부분 은 0 개 이상 의 영어 로 구성 되 어 있 습 니 다.그 중에서 key 와 value 사이 도 영어 입 니 다.
{
keyl: valuel,
key2: value2,
……
}
2.배열 구조배열 구 조 는'['로 시작 하여']'로 끝난다.중간 부분 은 0 개 이상 의 영어","구 분 된 값 의 목록 으로 구성 된다.
[
valuel,
value2,
……
]
JSON 데이터 변환Spring 은 브 라 우 저 와 컨트롤 러 클래스(Controller)간 의 데이터 상호작용 을 실현 하기 위해 HttpMessageConverter 인 터 페 이 스 를 제공 하여 이 작업 을 완성 합 니 다.이 인 터 페 이 스 는 요청 정보의 데 이 터 를 T 형식의 대상 으로 변환 하고 T 형식의 대상 을 요청 방법의 매개 변수 에 연결 하거나 대상 을 응답 정보 로 전환 하여 브 라 우 저 에 전달 하 는 데 사용 된다.
Spring 은 HttpMessageConverter 인터페이스 에 많은 실현 클래스 를 제공 하 는데 이런 실현 클래스 는 서로 다른 유형의 데 이 터 를 정보 변환 할 수 있다.그 중에서 MappingJacksona2HttpMessageConverter 는 Spring MVC 에서 JSON 형식 요청 응답 을 기본 으로 처리 하 는 실현 클래스 입 니 다.이 구현 클래스 는 Jackson 오픈 소스 패키지 읽 기 쓰기 JSON 데 이 터 를 이용 하여 자바 대상 을 JSON 대상 과 XML 문서 로 변환 하 는 동시에 JSON 대상 과 XML 문 서 를 자바 대상 으로 변환 할 수 있 습 니 다.
MappingJacksona2HttpMessageConverter 를 사용 하여 데 이 터 를 변환 하려 면 Jackson 을 사용 해 야 합 니 다.
의 오픈 소스 패키지,개발 에 필요 한 오픈 소스 패키지 와 그 설명 은 다음 과 같다.
springmvc-config. 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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- -->
<context:component-scan base-package="com.ssm.controller" />
<!-- -->
<mvc:annotation-driven />
<!-- , , -->
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<!-- -->
<bean id="viewResoler"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- -->
<property name="suffix" value=".jsp" />
</bean>
</beans>
구성 요소 스캐너 와 보기 해석 기 뿐만 아니 라 Spring MVC 의 주석 구동json.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> JSON </title>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/jquery-1.11.3.min.js">
</script>
<script type="text/javascript">
function testJson(){
//
var loginname=$("#loginname").val();
var password=$("#password").val();
$.ajax({
url:"${pageContext.request.contextPath}/testJson",
type:"post",
//data
data:JSON.stringfy({loginname:loginname,password:password}),
// JSON
contentType:"application/json;charset=UTF-8",
// JSON ,
dataType:"json",
//
success:function(data){
if(data!=null){
alert(" :"+data.loginname+" :"+data.password);
}
}
});
}
</script>
</head>
<body>
<form>
:<input type="text" name="loginname" id="loginname" /> <br />
:<input type="password" name="password" id="password" /> <br />
<input type="button" value=" JSON " onclick="testJson()" />
</form>
</body>
</html>
AJAX 에는 특별히 중요 한 속성 3 개가 포 함 돼 있 는데 그 설명 은 다음 과 같다.
package com.ssm.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ssm.po.Customer;
@Controller
public class CustomerController {
/*
* JSON , JSON
*/
@ResponseBody
public Customer testJson(@RequestBody Customer customer){
// JSON
System.out.println(customer);
return customer;
}
}
RESTful 지원RESTful 은 REST(Representational State Transfer)라 고도 부 르 는데 이 를 소프트웨어 구조 스타일 이나 디자인 스타일 로 이해 할 수 있다.
RESTful 스타일 은 요청 인 자 를 요청 경로 로 바 꾸 는 스타일 입 니 다.예 를 들 어 전통 적 인 URL 요청 형식 은 다음 과 같 습 니 다.
http://.../queryitems?id=1
RESTful 스타일 을 사용 하면 전체 8746°RL 요청 은:
http://.../items/1
/*
* RESTful , GET
*/
@RequestMapping(value="/customer/{id}",method=RequestMethod.GET)
@ResponseBody
public Customer selectCustomer(@PathVariable("id") Integer id){
//
System.out.println(id);
Customer customer=new Customer();
// id
if(id==10){
customer.setLoginname("wujit");
}
// JSON
return customer;
}
@RequestMapping(vaue="customer/{id}",method=RequestMethod.GET)주 해 는 요청 경로(인자 포함)와 방식 에 일치 합 니 다.그 중에서 vaue="/user/{id}"은"/user/{id}"로 끝 나 는 요청 과 일치 할 수 있 음 을 표시 합 니 다.id 는 요청 중의 동적 매개 변수 입 니 다.method=RequestMethod.GET 는 GET 방식 의 요청 만 받는다 고 표시 합 니 다.방법 중의@PathVariable("id")주 해 는 요청 인 자 를 수신 하고 연결 하 는 데 사 용 됩 니 다.요청 URL 의 변 수 를 방법의 형 삼 에 비 출 수 있 습 니 다.요청 경로 가"/user/{id}"이면 요청 인자 의 id 가 방법 형 삼 이름 id 와 같 으 면@PathVariable 뒤의"("id")"를 생략 할 수 있 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.