개발 환경M1 Macbook prointeliJ UltimateSpringbootProject: GradelLanaguege: JavaSpring Boot: 2.7.3Dependencies: Spring Web, Lombok\*Lombok 사용시: preference
개발환경m1 MacBook ProInteliJ Springboot Project: GradleLanguage: JavaSpring Boot: 2.7.3DependenciesSpring WeblombokLombok 사용시preference - annotation - pr
requestBodyStringTest를 위한 HelloData 생성httpBodyJsonServlet
Header ServletJson ServletHtml Servlet결과값
Member Class와 MemberRepository 생성 >Member Class >MemberRepository > Test Code
🪴 서블릿으로 회원관리 작성 >JSP 등의 사용 없이 순수 자바 코드만으로 회원관리 작성 > MemberFormServlet - 회원 등록 > MemberSaveServlet - 저장된 회원 조회 > MemberListServlet - 저장된 모든 회원 조회
앞서 회원관리 웹 애플리케이션 1, 2에서 살펴본 방식, 서블릿, JSP만으로 비즈니스 로직 구현시에 서블릿과 JSP가 너무 많은 역할을 하게 된다. 또, UI 변경과 HTML 수정시에도 하나하나 수정해야하는 번거로움이 발생한다.절대경로: / 로 시작상대경로: / 로
입구를 통제하는 컨트롤러를 만들고 생성된 컨트롤러에서 요청에 맞는 컨트롤러를 호출클라이언트 - HTTP 요청 - FrontController - 필요 Controller 호출 import javax.servlet.ServletException;import javax.s
환경세팅 MVC 원리 로그설정
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.\*;@RestControllerpublic class MappingController
자동 생성성
요청 파라미터의 값들을 데이터를 매서드의 파라미터로 넘기는 것즉 URL의 데이터 정보들을 Java 코드의 매서드 인자로 넘겨주는 것을 의미
스프링부트는 클래스 패스의 다음 경로에 있는 정적 리소스 제공'/basic' , '/static' '/public' 등정적리소스 경로 : src/main/resources/경로/파일뷰 템플릿을 통해 HTML이 생성, 뷰가 응답을 전달HTML을 동적으로 생성하는 용도스프
@RestController 어노테이션 사용하면 해당 컨트롤러에 모두 @ResponseBody가 적용된다.뷰 템플릿을 사용하는 것이 아니라 HTTP 메세지 바디에 직접 데이터를 입력, Rest API 만들때 사용
📋 th:xxx : 서버사이드에서 랜더링그 외 : html의 속성을 사용| ... |th:each${....}모델에 포함된 값이나 타임리프 변수의 값 조회 가능
ㅅㄷㄴㅅ
타임리프 메세지 표현식 : #{...}
컨트롤러의 중요한 역할은 HTTP 요청이 정상인지 검증하는 것상품 이름은 반드시 들어가야한다.가격은 1,000원 ~ 1,000,000원 사이의 값이여야 한다.수량은 9,999개를 넘을 수 없다화면 단에서 controller로 데이터 받아오기받아온 데이터에 대한 검증==
검증 오류 (HTTP 파라미터 또는 Controller 로직)가 발생할 경우에 해당 오류의 내용을 보관하는 스프링 프레임워크 객체BindingResult는 검증할 대상 바로 다음에 와야함.ex) @ModelAttribute Test test, BindingResult