Path 파라미터와 QueryString의 차이점
Q.
(08-04 참고)
PathController 를 참고해서 말해줘. path 파라미터와 QueryString은 무슨 차이야?
A.
PathController를 참고하여 설명드리겠습니다.
Path 파라미터
정의: URL 경로의 일부로 포함된 변수입니다.
예시: /mypath/{txt1}/{txt2}/{num}
1. 실제 요청: /mypath/hello/world/123
2. 매핑된 메서드: mypath(Model model, @PathVariable("txt1") String txt1, @PathVariable("txt2") String txt2, @PathVariable("num") int num)
3. 전달된 값: txt1 = "hello", txt2 = "world", num = 123
QueryString
정의: URL의 끝에 ?로 시작하여 key=value 형식으로 전달되는 파라미터입니다.
예시: /mypath?txt1=hello&txt2=world&num=123
1. 실제 요청: /mypath?txt1=hello&txt2=world&num=123
2. 매핑된 메서드: mypath(Model model, @RequestParam("txt1") String txt1, @RequestParam("txt2") String txt2, @RequestParam("num") int num)
3. 전달된 값: txt1 = "hello", txt2 = "world", num = 123
차이점
1.위치:
1) Path 파라미터는 URL 경로의 일부입니다.
2) QueryString은 URL의 끝에 위치합니다.
2.형식:
1) Path 파라미터는 슬래시(/)로 구분됩니다.
2) QueryString은 ?로 시작하고 &로 구분됩니다.
3. 사용 용도:
1) Path 파라미터는 리소스를 식별하는 데 주로 사용됩니다.
2) QueryString은 필터링, 검색, 정렬 등의 추가 정보를 전달하는 데 사용됩니다.
예시 코드
Path 파라미터를 사용하는 PathController의 메서드:
@GetMapping("/mypath/{txt1}/{txt2}/{num}")
public String mypath(Model model,
@PathVariable("txt1") String txt1,
@PathVariable("txt2") String txt2,
@PathVariable("num") int num) {
model.addAttribute("txt1", txt1);
model.addAttribute("txt2", txt2);
model.addAttribute("num", num);
return "path/mypath";
}
QueryString을 사용하는 메서드:
@GetMapping("/mypath")
public String mypath(Model model,
@RequestParam("txt1") String txt1,
@RequestParam("txt2") String txt2,
@RequestParam("num") int num) {
model.addAttribute("txt1", txt1);
model.addAttribute("txt2", txt2);
model.addAttribute("num", num);
return "path/mypath";
}