#5-1 / Jquery Ajax & API 서버통신 (JSON) / JSONArray,JSONObject 사용
hingu
2024. 7. 19. 10:59
ecma랑 jquery 는 사실 매칭이 잘 안됨.. 버그 생김ㅋ
❓ API 서버
REST ( get,post ) xml,json 로드받는 역할 아키텍처 구조
RESTful ( get,post,put,delete ) - url 파라미터로 세팅
CDN ( get,post ) - Image,Video
SOAP ( xml만 사용 ) 나중에 공부해보길 추천ㅋ , REST보다 어려움 REST와 특성이 비슷함 금융권에서 많이 사용 - 보안 좋아서 프로토콜 구조(서버와 서버간의 DATA 교환)
❓ 아키텍처 , 프로토콜
아키텍처 : 데이터의 구조 형태
프로토콜 : 서버와 서버간의 통신
1. html로 받아서 json으로 변경하는 방식
2. 처음부터 json파일로 받는 형식
⚡ REST (JSON 이니까) - (dataType : "HTML"로 받기)
dataType : HTML,TXT,XML,JSON (rest_json.jsp 에서 contentType="text/html; 라서 html로 보내야함) 1. web 으로 배열을 출력하는 형태 : HTML,TEXT로 핸들링 2. 웹 디렉토리에 .json 파일 을 생성하여 front-end에서 데이터를 가져가는 형태 : JSON으로 핸들링 - 예 ) 회원가입 페이지 제작 -> '회원가입 완료되었습니다' 실행됨가 동시에 json파일 만들어버림 예2 ) 상품 등록 페이지 제작 -> '상품 등록 완료되었습니다' 실행됨가 동시에 json파일 만들어버림 => 프론트가 가져가서 리스트 출력
👀 {"member":["hong","park","kim"]} 이 형태로 찍기 => JSONObject : {}형태 배열 만들때 사용 , JSONArray : []형태 배열 만들 때 사용 (org.json.simple 은 add , org.json은 put 사용)
- ajax1.jsp : 버튼 클릭시 @controller에서 값 출력한 rest_json.do에서 값을 그대로 가져옴
$("#btn").click(function(){
//get통신할거임
$.ajax({
url : "./rest_json.do",
cache : false,
type : "GET",
dataType : "HTML",
success : function($data){
//console.log($data); //배열처럼 생긴 문자열 찍힘 (url 경로의 파일 내용이 그대로 찍힘)
console.log(JSON.parse($data));
},
error : function($data){
console.log($data);
}
});
})
$.ajax 대신 - $.get , $.post 이렇게 작성해도 됨 (처음부터 get으로 받을건지 post로 받을건지 정하는거)
@GetMapping("/jq/rest_json.do")
public String rest_json(Model m) throws Exception{
JSONArray ja = new JSONArray();
ja.add("hong"); // org.json.simple 은 add , org.json은 put 사용
ja.add("park");
ja.add("kim");
JSONObject jo = new JSONObject();
jo.put("member", ja);
m.addAttribute("data",jo);
return "/jq/rest_json";
}