■ Get/ post, put, delete ■ 스프링 기본 파싱 전략

2022. 3. 14. 18:30· 무지성 메모
728x90

1. Get요청

url의 parameter 형태로 ?key=value&key=value&... 형태로 데이터를 담아서 보냄

body로 데이터를 담아 보내지 않고 url에 담음

 

2. Post, Put, delete 요청 (데이터를 변경)

데이터를 담아서 보내야할 것이 많음 그래서 body에 담아서 보냄

 

여러가지 data MIME형식 중 form태그는 Get, Post방식 2가지 방식으로 밖에 보낼 수 없음 (key=value)

 

그래서 통일 : 자바스크립트로 ajax요청 + 데이터는 json으로 통일!!

form:form 태그라는 것도 있는데 (4가지 다 쓸 수 있음)(X) 안씀

 

자바스크립트로 ajax요청 + 데이터는 json으로 통일 <-- 이거씀

 

 


스프링 컨트롤러는 key=value의 데이터를 자동으로 파싱하여 변수에 담아준다

가령 get요청은 key=value이고 post요청 중에 x-www-form-urlencoded (form태그를 만들어서 데이터를 전송) 시에도 key=value이기 때문에 이러한 데이터는 스프링 컨트롤러가 가진 메소드의 parameter로 받을 수 있다

 

위와같이 post형식으로 key=value형식의 데이터를 담은 requestMessage를 controller의 join메소드의 urlMapping에 맞춘 후에 전송해줌

 

 

	@PostMapping("/dummy/join")
	public String join(User user, String username) {
		System.out.println(username);
		
		System.out.println(user.getUsername());
		System.out.println(user.getPassword());
		System.out.println(user.getEmail());
		
		// 이게 @DynamicInsert나 @ColumnDefault를 안쓰고 default로 넣는 방법인듯?
		// enum을 쓰면 값을 강제할 수 있다..
		user.setRole(RoleType.USER);
		User userSaved  = userRepository.save(user); 
//		System.out.println(userRepository.findById(userSaved.getId()));
		
		return "회원가입이 완료되었습니다.";
	}

key=value방식으로 보낸 requestMessage의 데이터를 Object형식(위의 예시는 User)로 받을 수 있다.

단 User클래스에 해당 속성(requestMessage의 Body에 담긴 username, password, email데이터)의 setter메소드가 정의되어 있어야 한다.

 

 

 

key=value 형태가 아닌 josn등의 데이터를 받아서 읽어 오려면 DTO 앞에 @RequestBody를 붙여주어야 한다.

	@PostMapping("/dummy/join")
	public String join(@RequestBody User user, String username) {
		System.out.println(username);
		
        .....

 

 

 

저작자표시 (새창열림)

'무지성 메모' 카테고리의 다른 글

■ 대문자로만 이루어진 문자인지 판별  (0) 2022.03.19
■ AJAX를 쓰는 이유..?  (0) 2022.03.15
■ string클래스의 역순 출력 함수  (0) 2022.03.10
■ char배열의 stream은 왜 안되는걸까?  (0) 2022.03.09
■ 소켓통신보다 http통신이 더 비효율적인데 왜 http통신?  (0) 2022.03.08
'무지성 메모' 카테고리의 다른 글
  • ■ 대문자로만 이루어진 문자인지 판별
  • ■ AJAX를 쓰는 이유..?
  • ■ string클래스의 역순 출력 함수
  • ■ char배열의 stream은 왜 안되는걸까?
배게
배게
배게
백엔드
배게
전체
오늘
어제
  • 분류 전체보기 (430)
    • 알고리즘 풀이 (338)
      • 백준 (167)
      • Codility (22)
      • 프로그래머스 (123)
      • LeetCode (2)
      • CodeForces (9)
      • SWEA (15)
    • 백엔드 (11)
    • Coding existing for (3)
    • 무지성 메모 (40)
    • Debug (30)
    • 자바 (8)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 카톡 내보내기한 파일 정렬
  • MYSQL
  • 카카오톡 txt파일 정렬
  • 카톡
  • 카카오톡
  • hibernate

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
배게
■ Get/ post, put, delete ■ 스프링 기본 파싱 전략
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.