일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Board
- 문자열
- html
- Uipath
- Database
- API
- JDBC
- 이클립스
- 배열
- 상속
- Controller
- spring
- string
- jsp
- db
- React
- rpa
- SpringBoot
- jquery
- Oracle
- Eclipse
- View
- git
- Array
- mysql
- 조건문
- Java
- MVC
- Scanner
- Thymeleaf
- Today
- Total
유정잉
@RequestParam vs @PathVariable vs @RequestBody 본문
✅ Spring MVC에서 클라이언트가 보낸 데이터를 Controller에서 받는 방법은 3가지!
✅ 각각 어떤 방식으로 데이터를 주고받는지 JSP 연동까지 자세히 설명할게!
🔥 1️⃣ @RequestParam, @PathVariable, @RequestBody 차이점
어노테이션데이터 전달 방식사용 예제요청 방식
@RequestParam | 쿼리 스트링 값 받기 (?key=value) | /user?name=Tom&age=25 | GET, POST |
@PathVariable | URL 경로 값을 받기 (/{value}) | /user/Tom/25 | GET |
@RequestBody | JSON 데이터를 객체로 변환하여 받기 | { "name": "Tom", "age": 25 } | POST, PUT |
✅ 즉, @RequestParam은 ?key=value로 전달, @PathVariable은 URL 경로에서 받음, @RequestBody는 JSON 데이터를 객체로 변환하여 받음!
🔥 2️⃣ @RequestParam 사용법 (쿼리 스트링 방식)
💡 클라이언트가 ?name=Tom&age=25 같은 형식으로 데이터를 보낼 때 사용!
💡 주로 GET 요청에서 검색, 필터링, 페이지 번호 전달 시 사용됨
✅ @RequestParam을 사용한 Controller 코드
✅ 사용자가 http://localhost:8080/user?name=Tom&age=25 로 접속하면 실행됨
✅ 컨트롤러는 name=Tom, age=25 값을 받아서 user.jsp로 전달!
✅ user.jsp (JSP에서 데이터 받기)
✅ JSP에서 ${name}, ${age}를 사용하여 Controller에서 보낸 데이터를 출력
✅ 실행 결과 (http://localhost:8080/user?name=Tom&age=25)
✅ 쿼리 스트링(?name=Tom&age=25)을 사용해서 데이터를 전달받고, JSP에서 출력!
🔥 3️⃣ @PathVariable 사용법 (URL 경로 값 전달)
💡 URL 경로에 데이터를 직접 포함할 때 사용 (/user/Tom/25 형태)
💡 RESTful API에서 특정 리소스를 조회할 때 주로 사용됨
✅ @PathVariable을 사용한 Controller 코드
✅ 사용자가 http://localhost:8080/user/Tom/25 로 접속하면 실행됨!
✅ 실행 결과 (http://localhost:8080/user/Tom/25)
✅ URL 경로(/user/Tom/25)를 사용해서 데이터를 전달받고, JSP에서 출력!
🔥 4️⃣ @RequestBody 사용법 (JSON 데이터 전달)
💡 클라이언트가 JSON 데이터를 서버로 보낼 때 사용 (POST, PUT 요청)
💡 주로 REST API에서 JSON 데이터를 받을 때 사용됨
✅ @RequestBody를 사용한 Controller 코드
✅ 사용자가 POST /user 요청을 JSON 데이터와 함께 보내면 실행됨
✅ 클라이언트가 JSON 데이터를 보내면, Spring이 User 객체로 자동 변환!
✅ 클라이언트에서 JSON 데이터 전송 (Postman or AJAX)
✅ 서버에서 @RequestBody User user를 통해 JSON 데이터를 User 객체로 자동 변환
✅ 실행 결과 (POST /user)
✅ 클라이언트가 JSON 데이터를 보내면 Controller에서 객체로 변환하여 처리 가능!
🔥 5️⃣ @RequestParam vs @PathVariable vs @RequestBody 비교
비교 항목@RequestParam (쿼리 스트링)@PathVariable (URL 경로 값)@RequestBody (JSON 데이터)
데이터 전달 방식 | ?key=value 형식 | {}로 경로에 직접 포함 | JSON 데이터 |
예제 URL | /user?name=Tom&age=25 | /user/Tom/25 | POST /user + JSON 데이터 |
요청 방식 | GET, POST | GET | POST, PUT |
RESTful API 적합도 | ❌ 권장되지 않음 | ✅ RESTful API에서 사용 | ✅ RESTful API에서 JSON 데이터 전송 시 사용 |
사용 예제 | 검색, 필터링 (?keyword=Spring) | 특정 리소스 조회 (/user/123) | 데이터 저장, 수정 |
✅ 검색, 필터링처럼 선택적으로 데이터를 전달해야 하면 @RequestParam 사용!
✅ RESTful API에서 특정 리소스를 조회할 때는 @PathVariable 사용!
✅ RESTful API에서 JSON 데이터를 주고받을 때는 @RequestBody 사용!
🔥 6️⃣ 결론
1️⃣ @RequestParam → ?key=value 형식으로 데이터를 전달받을 때 사용 (GET)
2️⃣ @PathVariable → URL 경로에 데이터를 포함할 때 사용 (GET)
3️⃣ @RequestBody → JSON 데이터를 받아서 객체로 변환할 때 사용 (POST, PUT) 🚀
'개발자 공부 > ♡ Spring XML' 카테고리의 다른 글
PostgreSQL에서 ALIAS 사용법 & MyBatis에서 #{}만 써야 하는 이유! (0) | 2025.02.06 |
---|---|
Spring MVC + MyBatis로 데이터 화면에 출력! Entity, Controller, Service, Mapper, JSP (0) | 2025.02.04 |
Spring MVC와 JSP를 이용 (0) | 2025.02.04 |
@Autowired, @Qualifier("이름"), @Resource(name="이름") (0) | 2025.02.04 |
@ComponentScan과 @Bean의 차이점 (0) | 2025.02.04 |