전체 글
-
HTTP 요청 메서드 - JSON스프링/스프링 MVC 패턴 2023. 2. 14. 16:26
@Slf4j @Controller public class RequestBodyJsonController { private ObjectMapper objectMapper = new ObjectMapper(); // json을 사용하기 위해 만들어야함 @PostMapping("/request-body-json-v1") public void requestBodyJsonV1(HttpServletRequest request, HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String messageBody = StreamUtils.copyToString(inputSt..
-
HTTP 요청 메시지 - 텍스트스프링/스프링 MVC 패턴 2023. 2. 14. 15:19
messageBody에 문자를 입력하고 그 문자를 받아오는 코드 @Slf4j @Controller public class RequestBodyStringController { @PostMapping("/request-body-string-v1") public void requestBodyString(HttpServletRequest request,HttpServletResponse response) throws IOException { ServletInputStream inputStream = request.getInputStream(); String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); log.info(..
-
요청 파라미터 - @RequestParam, @ModelAttribute스프링/스프링 MVC 패턴 2023. 2. 14. 14:18
쿼리 파라미터에 들어온 값들을 재사용하거나 출력해야할 때가 있다. 그럴 때 사용하는 것이 @RequestParam 애노테이션이다. @RequestParam 사용 x @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); respon..
-
API 요청 매핑 타입스프링/스프링 MVC 패턴 2023. 2. 14. 12:50
회원 관리 API 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE /users/{userId} 회원 목록 조회와 회원 등록을 보면 url이 같더라도 http 메서드로 구분해서 기능을 다르게 할 수 있다. @RestController @RequestMapping("/mapping/users") public class MappingClassController { /** 회원 목록 조회: GET /users 회원 등록: POST /users 회원 조회: GET /users/{userId} 회원 수정: PATCH /users/{userId} 회원 삭제: DELETE..
-
특정 조건 매핑스프링/스프링 MVC 패턴 2023. 2. 14. 12:34
저번에 @GetMapping, @PostMapping 등의 요청사항을 알아보았는데 이번에는 이런 요청들을 사용할 때 추가적으로 필요한 기능들을 공부할 것이다. @PathVaribale의 사용 @GetMapping("/mapping/{userId}") public String mappingPath(@PathVariable("userId") String data) { log.info("mappingPath userId={}", data); return "ok"; } 위와 같이 url에 파라미터를 넣을 수 있다. userId라는 변수를 만들어서 url에 userId 변수 값이 넘어오면 로그에 출력해주는 방식이다. @PathVariable을 사용한 경로변수를 통해서 원하는 리소스 경로에 식별자를 넣어주는 방식을..
-
로그 출력스프링/스프링 MVC 패턴 2023. 2. 13. 11:51
자바 공부를 할 때 지금까지 System.out.println()을 사용했다. 하지만 위와 같은 출력 방법은 괄호 안에 있는 모든 데이터를 일방적으로 출력하기 때문에 실무에서는 거의 사용하지 않는다고 한다. System.out.println()보다는 로그를 이용해서 출력하는 방법을 사용한다고 한다. @Slf4j // 로그 출력을 사용하게 해주는 애노테이션 @RestController // 그냥 컨트롤러는 view 이름이 반환되지만 RestController는 문자를 반환할 수 있다. public class LogTestController { // private final Logger log = LoggerFactory.getLogger(LogTestController.class); // @Slf4j로 대..
-
스프링 MVC스프링/스프링 MVC 패턴 2023. 2. 12. 18:28
스프링 MVC를 이용하면 이전까지 웹 페이지를 구축해서 회원 가입, 회원 저장, 회원 목록 조회했던 것들을 하나의 클래스에서 작성할 수 있다. 또한 코드가 간결하여 파악하기도 쉽다는 장점이 있다. 클래스 선언과 컨트롤러, 매핑 애노테이션 @Controller @RequestMapping("/springmvc/v3/members") public class SpringMemberControllerV3 { private MemberRepository memberRepository = MemberRepository.getInstance(); 클래스 위에 @Controller, @RequestMapping 애노테이션이 들어갔다. @Controller는 이 클래스를 컨트롤러로 사용한다는 의미를 가지고 있는 애노테이..
-
view resolver스프링/스프링 MVC 패턴 2023. 2. 12. 15:14
회원가입, 회원저장, 회원 목록 웹 사이트를 구축할 때 hocalhost:8080 뒤에 회원가입 WEB-INF/view/new-form.jsp 회원저장 WEB-INF/view/save-result 회원목록 WEB-INF/view/members 라는 url을 설정한다고 예를 들어보자. WEB-INF/view는 겹치는 것이기 때문에 웹 페이지를 만들때마다 입력해주는 것은 효율적이지 않다. 코드의 가독성도 떨어질 뿐만 아니라 반복작업이기에 지양해야한다. @Component("/springmvc/old-controller") // 스프링 빈의 이름 public class OldController implements Controller { @Override public ModelAndView handleReque..