IT 지식 공부

[JAVA/Springboot] Path variable 개념

wonderson 2022. 5. 25. 10:27
반응형

- GET, POST 등등 요청에 따라 클라이언트에서 서버로 URL에 파라미터를 같이 전달하는 경우가 있다. Spring에서는 이러한 전달인자를 처리하는데 두 가지 방법을 제공한다.

  1. URL 변수 (@PathVariable)
    • 예시 - http://127.0.0.1/index/1
  2. Query String (@RequestParam)
    • 예시 - http://127.0.0.1?index=1&page=2

 

1. URL 변수 (@PathVariable)

  • Rest api에서 값을 호출할 때 주로 많이 사용
  • URL을 처리할 때는 @PathVariable을 사용
  • URL에서 구분자에 들어오는 값을 처리해야 할 때 사용
@PostMapping("delete/{idx}")
@ResponseBody
public void testMethod(@PathVariable("idx") int id ){
	return testService.deleteId(id);
}
  • 주의
    • URL에 특수문자나 구분기호 " , , ` , . " 등을 사용하면 인식을 못한다.
      따라서 URL에 태우지 말고 JSON 형태로 HTTP BODY에 실어 보내야 한다.
      그러므로 여러개의 파라미터값을 삭제할 때 ex)1,2,3,4 이런식으로 url에 요청하면 안된다.

 

 

 

2. Query String (@RequestParam)

  • 파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용한다.
  • @RequestParam 어노테이션의 괄호 안의 경우 전달인자 이름(실제 값을 표시)
@GetMapping("getDriver")
public String viewName( @RequestParam("name") String name, @RequestParam("name2") String name2){

	//위처럼 하나 이상의 타입을 적용할 수 있다.
  	//스프링에서 지원하는 변환기에서 지원되는 모든타입을 변환가능하다.
	//RequesParam은 하나 이상 파라미터에서 사용 가능핟.
}

 

  • url이 전달될 때 name 파라미터(name에 담긴 value)를 받아오게 된다.
    즉, @RequestParam("실제 값") String 설정할 변수 이름
ex)  /getDriver?name="name에 담긴 value"
  • 이렇게 @RequestParam의 경우 url뒤에 붙는 파라미터의 값을 가져올 때 사용한다.

 

  • 주의
  • 만약 RequestParam에 key값이 존재하지 않을 경우 "BadRequest 로 4**" error가 발생한다.
  • 이를 방지하고자 default 값을 설정해줍니다. 바로 "DefaultValue"를 이용하여 기본 값을 설정해준다.
    (  " required=false " 속성을 꼭 명시해줘야 한다. )
    required = false 속성을 명시함으로써 키값이 존재하지 않다고 해서 BadRequest가 발생하지 않게 된다.
    그리고 존재하지 않다면 String 변수에 default로 "" 값이 들어가게 된다.
@GetMapping("getDriver")
public String viewName( @RequestParam("name",required=false,defaultValue="")
			String name, @RequestParam("name2",required=false,defaultValue="") String name2){

		//이런식으로 defaultValue를 지정하려면 required 속성을 명시해줘야 합니다.
}

 

 

 

 

참고 자료

https://2ham-s.tistory.com/290

 

@RequestParam과 @PathVariable?

컨트롤라에서 Requestparam으로 파라미터 값을 넘겨받을 때 아무 생각 없이 사용하곤 했는데, 이번 기회에 이 어노테이션에 대해 정리해 보고자 한다. 스프링에서는 컨트롤러로 사용할 클래스 상단

2ham-s.tistory.com

https://velog.io/@jcinsh/Query-string-path-variable

 

올바른 URL 설계 : 1) Query string과 Path Variable 이해하기

이 글은 When Should You Use Path Variable and Query Parameter?란 영문글을 한글로 요약 정리한 것입니다. 자세한 내용은 원문을 참고해 주세요.웹에서 특정 데이터를 전송하고 받기 위해서는 어디(End-point)에

velog.io

https://so-easy-coding.tistory.com/8

 

[Spring Boot] @PathVariable 사용법

Request가 들어오는 타입에 따라 ... 받는 방법을 크게 4가지 정도로 나눠서 앞으로 하나씩 살펴보자. URL 변수 (@PathVariable) Query String (@RequestParam) Body Form @PathVariable 이란? REST API에서 URI에..

so-easy-coding.tistory.com

https://elfinlas.github.io/2018/02/18/spring-parameter/

 

Spring에서 @RequestParam과 @PathVariable

Spring에서 Controller의 전달인자…Spring을 사용하다 보면 Controller 단에서 클라이언트에서 URL에 파라메터를 같이 전달하는 경우가 있습니다.주로 사용하는 형태는 아래의 두 가지가 대표적인 케이

elfinlas.github.io

 

반응형

'IT 지식 공부' 카테고리의 다른 글

[JAVA/Springboot] DTO 개념  (0) 2022.05.26
[JAVA] RDBMS 개념  (0) 2022.05.24
[JAVA] JPA 개념  (0) 2022.05.23
[JAVA] Getter와 Setter 사용하는 이유?  (0) 2022.05.23
[JAVA] Gradle 개념  (0) 2022.05.21