728x90
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
@Slf4j
@Controller
public class RequestParamController {
@RequestMapping("/request-param-v1")
public void requestParamV1(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
log.info("username={}, age={}", username, age);
response.getWriter().write("ok");
}
@ResponseBody
@RequestMapping("/request-param-v2")
public String requestParamV2(
@RequestParam("username") String memberName,
@RequestParam("age") int memberAge){
log.info("username = {}, age = {}", memberName, memberAge);
return "ok";
}
@ResponseBody
@RequestMapping("/request-param-v3")
public String requestParamV3(
@RequestParam String username,
@RequestParam int age){
log.info("username = {}, age = {}", username, age);
return "ok";
}
@ResponseBody
@RequestMapping("/request-param-v4")
// http 파라미터 변수 이름과 같으면 @RequestParam 생략가능
// String, int, Integer 등의 단순 타입이면 @RequestParam도 생략 가능
public String requestParamV4(String username, int age){
log.info("username = {}, age = {}", username, age);
return "ok";
}
@ResponseBody
@RequestMapping("/request-param-required")
public String requestParamRequired(
@RequestParam(required = true) String username,
// 자바에 int에는 null 이 못들어감(기본 형 null X)
// 요청 파라미터 없는 경우 null 입력 됨
@RequestParam(required = false) Integer age){
log.info("username = {}, age = {}", username, age);
return "ok";
}
@ResponseBody
@RequestMapping("/request-param-default")
public String requestParamDefault(
@RequestParam(required = true,defaultValue = "guest") String username,
@RequestParam(required = false, defaultValue = "-1") int age){
log.info("username = {}, age = {}", username, age);
return "ok";
}
@ResponseBody
@RequestMapping("/request-param-map")
// Map을 MultiValueMap으로 조회할 수 있다.
public String requestParamMap(@RequestParam Map<String,Object> paramMap){
log.info("username = {}, age = {}", paramMap.get("username"), paramMap.get("age"));
return "ok";
}
}
728x90
'백엔드 > Spring(Boot)' 카테고리의 다른 글
HTTP 요청 메시지 (단순 텍스트) (0) | 2021.09.09 |
---|---|
스프링 HTTP 요청 파라미터 - @ModelAttribute (0) | 2021.09.09 |
스프링 HTTP 헤더 조회 (0) | 2021.09.09 |
스프링 API 개발 기초 (0) | 2021.09.09 |
스프링 요청 매핑 (0) | 2021.09.09 |