목차
- get 요청
- 특징
- post, put, delete 요청
- 통신 방식
- 스프링 컨트롤러의 파싱 전략
- Key=Value 데이터를 변수로 파싱
- Key=Value 데이터를 오브젝트로 파싱
- Key=Value가 아닌 데이터 파싱 (= JSON 데이터 or 일반 text 데이터)
- form 태그로 JSON 데이터 요청하는 방법
1. get 요청
- http(주소)에 데이터를 담아서 전송하는 방법
- 데이터 형태는 Key=Value
1) 특징
- body로 데이터를 담아 보내지 않음
2. post, put, delete 요청
- 데이터를 변경하는 작업
- 데이터를 담아 보내야 할 것이 많음
1) 통신 방식
- get 요청, post 요청 = form 태그 (Key=Value 형태)
- put요청, delete 요청 = 자바스크립트
- 통신 방식을 통일하기 위해 'ajax 요청 = 자바스크립트 / 데이터 요청 = JSON' 으로 바꿈
3. 스프링 컨트롤러의 파싱 전략
1) Key=Value 데이터를 변수로 파싱
- 스프링 컨트롤러는 Key=Value 데이터를 자동으로 파싱하여 변수에 담아준다
- get 요청, post 요청 모두 Key=Value 이기 때문에 함수의 파라미터로 받을 수 있음
2) Key=Value 데이터를 오브젝트로 파싱
- 스프링 컨트롤러는 Key=Value 데이터를 오브젝트로 파싱해서 파라미터로 받을 수 있음
- 단, 해당 오브젝트에 setter가 없으면 파싱하지 못한다 (@Data는 getter, setter의 기능을 포함)
- setter가 없는 변수로 데이터를 보내면 무시 / setter가 있음에도 데이터를 안보내면 null
3) Key=Value가 아닌 데이터 파싱 (= JSON 데이터 or 일반 text 데이터)
- JSON 데이터나 일반 text 데이터는 스프링이 오브젝트로 파싱해서 받지 못한다
- 이럴 땐, @RequestBody 어노테이션을 사용한다
- MessageConverter 클래스를 구현한 Jackson 라이브러리가 자동으로 JSON 데이터를 자바 오브젝트로 파싱하여 받을 수 있음
4) form 태그로 JSON 데이터 요청하는 방법
- 별도의 jsp 파일을 만들어 <form> 태그의 id로 각각의 데이터를 받고, JS 파일로 넘긴다
- JS 파일을 만들고 jsp에서 들어온 <form> 태그의 id에 담긴 데이터를 저장 후, ajax를 사용하여 전달한다
** 추후에 작업 예정
'IT 언어 > JPA' 카테고리의 다른 글
[JPA] 트랜잭션 (transaction, 트랜잭션 격리) (0) | 2024.03.19 |
---|---|
[JPA] Ajax란? (사용하는 이유, 비동기화 vs 동기화) (0) | 2024.03.15 |
[JPA] JSON 이란? (0) | 2024.03.07 |