springmvc 는 json 의 상호작용-request Body 와 response Body 를 실현 합 니 다.
1.왜 제 이 슨 데이터 상호작용 을 합 니까?
json 데이터 형식 은 인터페이스 호출,html 페이지 에서 자주 사용 되 고 json 형식 이 간단 하 며 분석 이 편리 합 니 다.
예 를 들 어 웹 서비스 인터페이스,json 데이터 전송.
2.springmvc 에서 json 상호작용 하기
(1)json 을 요청 하고 json 을 출력 합 니 다.json 문자열 을 요청 하기 때문에 전단 페이지 에서 요청 한 내용 을 json 으로 전환 해 야 하기 때문에 불편 합 니 다.
(2)key/value 를 요청 하고 json 을 출력 합 니 다.이 방법 은 비교적 상용 된다.
3.환경 준비
3.1 제 이 슨 이 돌 리 는 jar 패 키 지 를 불 러 옵 니 다.
springmvc 에서 jackson 의 가방 을 사용 하여 json 변환(@requestBody 와@responseBody 는 아래 의 가방 을 사용 하여 json 전환)을 진행 합 니 다.다음 과 같 습 니 다.
jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
@RequestBody 역할:
@RequestBody 주 해 는 http 에서 요청 한 내용(문자열)을 읽 는 데 사 용 됩 니 다.springmvc 에서 제공 하 는 HttpMessageConverter 인 터 페 이 스 를 통 해 읽 은 내용 을 json,xml 등 형식의 데이터 로 변환 하고 controller 방법의 매개 변수 에 연결 합 니 다.
이 예 적용:
@RequestBody 주 해 는 http 요청 을 받 은 json 데 이 터 를 구현 하고 json 데 이 터 를 자바 대상 으로 변환 합 니 다.
@ResponseBody 역할:
이 주 해 는 Controller 의 방법 을 되 돌려 주 는 대상 으로 HttpMessageConverter 인 터 페 이 스 를 통 해 json,xml 등 지 정 된 형식의 데이터 로 변환 하고 Response 응답 을 통 해 클 라 이언 트 에 응답 합 니 다.
이 예 적용:
@Response Body 주 해 는 controller 방법 을 클 라 이언 트 에 게 json 응답 으로 되 돌려 줍 니 다.
3.2 json 변환기 설정
주석 어댑터 에 message Converters 추가
<!-- -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
</list>
</property>
</bean>
메모:4.json 대화 형 테스트
4.1 json 문자열 을 입력 하고 출력 은 json 문자열 입 니 다.
4.1.1jsp 페이지
jquery 의 ajax 를 사용 하여 json 문자열 을 제출 하고 출력 한 json 결 과 를 분석 합 니 다.
jduery 사용 하기 jquery-1.4.4.min.js 도입 잊 지 마 세 요.
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" >
<title>json </title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
// json, json
function reuqestJson(){
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/requestJson.action',
contentType:'application/json;charset=utf-8',
// json ,
data:'{"name":" ","price":999}',
success:function(data){// json
alert(data);
}
});
}
</script>
</head>
<body>
<input type="button" onclick="reuqestJson()" value=" json, json"/>
</body>
</html>
4.1.2controller
package cn.edu.hpu.ssm.controller;
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;
import cn.edu.hpu.ssm.po.ItemsCustom;
//json
@Controller
public class JsonText {
// json( ), json( )
//@RequestBody json itemsCustom
//@ResponseBody itemsCustom json
@RequestMapping("/requestJson")
public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom){
//@ResponseBody itemsCustom json
return itemsCustom;
}
}
4.1.3 테스트 결과4.2 key/value 를 입력 하고 출력 은 json 문자열 입 니 다.
4.2.1jsp 페이지
jquery 의 ajax 를 사용 하여 key/value 문자열 을 제출 하여 출력 한 json 결 과 를 분석 합 니 다.
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" >
<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.4.4.min.js"></script>
<script type="text/javascript">
// key/value, json
function responseJson(){
$.ajax({
type:'post',
url:'${pageContext.request.contextPath }/responseJson.action',
// key/value, contentType, key/value
//contentType:'application/json;charset=utf-8',
// json ,
data:'name= &price=999',
success:function(data){// json
alert(data);
}
});
}
</script>
</head>
<body>
<input type="button" onclick="requestJson()" value=" key/value, json"/>
</body>
</html>
4.2.2controller
package cn.edu.hpu.ssm.controller;
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;
import cn.edu.hpu.ssm.po.ItemsCustom;
//json
@Controller
public class JsonText {
// key/value( ), json( )
@RequestMapping("/responseJson")
public @ResponseBody ItemsCustom responseJson(ItemsCustom itemsCustom){
//@ResponseBody itemsCustom json
System.out.println(" :"+itemsCustom.getName());
return itemsCustom;
}
}
4.2.3 테스트백 스테이지 콘 솔 은'프런트 에서 보 내 온 상품 명:핸드폰'을 출력 하고 http 데 이 터 를 보면 제 이 슨 데이터 의 피드백 을 볼 수 있 습 니 다.
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
springmvc application/octet-stream problemmistake: Source code: Solution: Summarize: application/octet-stream is the original binary stream method. If the convers...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.