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=유재석¶m2=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