[Spring]_Controller 파라미터 정리
2022. 6. 3. 11:27ㆍ[Spring]_
728x90
반응형
스프링 컨트롤러를 작성하면서 사용한 파라미터 정리입니다.
1. @HttpServletRequest / @HttpServletResponse / @ServletRequest / @ServletResponse
@RequestMapping("/test")
String test1(HttpServletRequest request)
{
String a = request.getParameter("a");
System.out.println("a : " + a);
return "data";
}
HTTP 에서 URL 요청시 전송한 값, 쿠키 ,세션, 헤더 등 클라이언트 정보를 가져올때 사용
웹브라우저 사용자인 클라이언트 -> 서버로 요청- > 서버에서 HttpServletRequest 를 생성, 서블릿에게 전달
받아올때 getParameter() 를 사용합니다.
2.HttpSession
HttpServletRequest 에서 가져올 수 있습니다.
@RequestMapping("/test")
String test1(@RequestParam Map<String, Object> param, HttpServletRequest request) {
HttpSession session = request.getSession();
param.put("user_id", session.getAttribute("userId").toString());
return "data";
}
가져온 값은 getAttribute 메소드를 사용해서 가져올 수 있습니다.
3. @RequestParam
@RequestMapping("/test")
@ResponseBody
String test2(@RequestParam(value="username", required = false) String pwd,
@RequestParam(value = "age", required = false) String pwd3, HttpServletRequest request) {
HttpSession session = request.getSession();
String test =pwd;
return "data";
}
RequestParam은 1개의 HTTP 요청 파라미터를 받기 위해서 사용합니다.
여기서 요청 파라미터란 URL 요청의 localhost:8080?username=value&age=value 의 쿼리 매개변수와 HTML 태그의 Form 데이터가 해당합니다
@RequestParam은 필수 여부가 true이기 때문에 기본적으로 반드시 해당 파라미터가 전송되어야 합니다.
만약 해당 파라미터가 전송되지 않으면 400 Error가 발생합니다.
이를 방지하기 위해서 required = false 를 사용하여 방지할 수 있습니다.
HTML Form 태그에서 method 가 POST 전송일 때는 @RequestParam으로 값을 받을 수 있습니다
Form 데이터를 받는 경우에는
@RequestMapping("/test")
@ResponseBody
String test1(@RequestParam Map<String, Object> param, HttpServletRequest request) {
HttpSession session = request.getSession();
String user = param.get("user").toString();
String pwd = param.get("pwd").toString();
return "data";
}
이렇게 사용 가능합니다.
4.@RequestBody
@RequestMapping("/test")
@ResponseBody
String test1(@RequestBody Map<String, Object> body, HttpServletRequest request) {
HttpSession session = request.getSession();
String id = body.get("id").toString();
String pwd = body.get("pwd").toString();
return "data";
}
HTTP 요청의 body 부분이 그대로 전달됩니다.
XML 이나 JSON 기반의 형식을 가지는 데이터 묶음을 요청하는 경우에 유용합니다.
감사합니다.
728x90
반응형
'[Spring]_' 카테고리의 다른 글
[Spring]_Maven 의 Profiles 기능 구현,사용하기_(pom.xml) (0) | 2022.06.22 |
---|---|
[Spring]_HTTP 통신 개념,설명 (0) | 2022.06.21 |
[Spring]_Scheduler 설정 및 사용 (0) | 2022.06.17 |
[Dispatcher-Servlet]_디스패처 서블릿 이란 (0) | 2022.06.17 |
[Exception]_Spring 예외처리 (0) | 2022.06.16 |