keembloo

스프링 매핑관련 정리 본문

Spring

스프링 매핑관련 정리

keembloo 2023. 10. 4. 12:20
728x90

 

매개변수 요청하는 방법

 

1.HttpServletRequest request

String param = request.getParameter("매개변수명");

 

2.@RequestParam 

해당 URL

 

 

@RestController // @Controller + @ResponseBody
@RequestMapping("/day03/get") // 해당 클래스의 URL 매핑 정의 // [ 메소드들의 공통 URL ]
public class GetMappingController {
    // 1. HttpServletRequest request 객체 이용한 GET 메소드
    @GetMapping("/method1")
    public String method1 (HttpServletRequest request){
        System.out.println("GetMappingController.method1");
        String param1 = request.getParameter("param1");
        System.out.println("param1 = " + param1);
        return "정상응답";
    }
    // 함수의 반환타입이 String인 이유 : @ResponseBody 가 자동으로 반환타입이 String 이면 resp.setContentType("text/html; charset=utf-8"); 제공
    // return "정상응답"; 인 이유 :  @ResponseBody가 자동으로 resp.getWriter().println("정상응답"); 제공

    // 2.
    @GetMapping("/method2")
    public String method2 (@RequestParam String param1 ){
        System.out.println("GetMappingController.method2");
        System.out.println("param1 = " + param1);
        return "정상응답";
    }
}

 

<1>  쿼리스트링 방식 요청

http://localhost:80/day03/get/method4?param1=유재석&param2=50

@RequestParam

 

<2>  경로매개변수 방식 요청

http://localhost:80/day03/get/method6/유재석/50

@PathVariable("경로순서매개변수명")

@PathVariable("경로순서매개변수명")

URL경로상의 매개변수명이 없으므로 @PathVariable() 순서대로 매개변수명 정의

 

두개중에 하나 골라서 쓰면된다!!!! 

웬만하면 쿼리스트링으로 씀

 


 

3.DTO 요청 매핑

 

[조건]

1. 해당 DTO는 getter , setter 메소드가 존재할경우
2. 매개변수와 DTO의 필드명이 일치
3. @RequestParam 대신 생략 또는 @ModelAttribute 사용

 

[방법]

// 4. 여러개 매개변수를 DTO로 자동 변환 매핑
@GetMapping("/method4")
    public String method4( ParamDto paramDto ) {
            System.out.println("paramDto = " + paramDto);
            return "정상응답";
    }
    
// 5. 여러개 매개변수를 DTO로 자동 변환 매핑
@GetMapping("/method5")
    public String method5(@ModelAttribute ParamDto paramDto) {
        System.out.println("paramDto = " + paramDto);
        return "정상응답";
	}

 


 

HTTP BODY 사용하는 메소드

@PostMapping("")

@PutMapping("")

 

 

HTTP BODY 사용하지 않는 메소드

@GetMapping("")

@DeleteMapping("")

 


 

@PostMapping("") / @PutMapping("")

 

BODY 요청 타입

 

1. application/json

@RequestBody : 매개변수들이 JSON 형식일때 [ 기본값 AJAX ]

- 폼전송 아닐때

@RequestBody ParamDto paramDto

 

 

2. application/x-www.form-urlencoded

@RequestParam : 매개변수들이 폼형식일때 [ 첨부파일전송 ]

- 폼전송 [ 주로 첨부파일 있을때(없을때도 되긴됨)]

ParamDto paramDto

 

728x90

'Spring' 카테고리의 다른 글

JPA Auditing 정리  (0) 2023.10.18
Spring 아키텍처  (0) 2023.10.17
Spring 이란? 스프링 기본 정리  (0) 2023.10.12
다른 클래스 메소드를 호출하는 방법  (0) 2023.10.05
스프링 기본 패턴과 어노테이션(Annotation)  (0) 2023.10.04