Spring/MVC 6

스프링 MVC 2편 -10장. 스프링 타입 컨버터

스프링 MVC 2편 -10장. 스프링 타입 컨버터 (인프런 - 김영한 강사님) 타입 컨버터에 대해 배우는 단원이다. 문자를 받아서 숫자 타입으로 변경해야할 일이 있다고 하자. 매번 HttpServletRequest request를 불러서 파라미터를 받아 data에 저장하고, 문자 타입인 data를 Integer.valueOf(data)를 통해서 숫자 타입으로 변경해주기는 힘들다. -> @RequestParam 사용하기 스프링 MVC는 @RequestParam을 통해 타입을 중간에 변경해주므로 쉽게 타입을 변경할 수 있다. (@ModelAttribute, @PathVariable도 타입을 중간에 변경해준다.) 다음 코드에서 HTTP 쿼리 스트링으로 전달받는 data=10 부분에서 10은 문자 10이었으나 ..

Spring/MVC 2022.09.05

스프링 MVC 2편 -11장. 파일 업로드

스프링 MVC 2편 -11장. 파일 업로드 (인프런 - 김영한 강사님) 1) 폼 데이터 전송 방식 2) 서블릿을 이용한 파일 업로드 방식 3) 스프링을 이용한 파일 업로드 방식 순서이다. HTML 폼 전송 방식에는 두 가지가 있다. 1) application/x-www-form-urlencoded HTML 폼 데이터를 서버로 전송하는 가장 기본적인 방법이다. 전송할 항목을 HTTP Body에 문자로 username=kim&age=20 과 같이 &로 구분해서 전송한다. 문제점 : 이름, 나이, 첨부파일을 같이 전송해야 하는 경우, 이름, 나이는 문자로, 첨부파일은 바이너리로 전송해야 하므로 문자와 바이너리를 동시에 전송해햐 한다. 2) multipart/form-data Form 태그에 별도의 enctyp..

Spring/MVC 2022.09.05

스프링 MVC 2편-4장. 검증1 - Validation (김영한)

스프링 MVC 2편-4장. 검증1 - Validation (인프런 - 김영한 강사님) 타입검증 - 가격, 수량에 문자가 들어가면 검증 오류 처리 필드검증 - 상품명 : 필수, 공백 불가 - 가격 : 1000~1000000 - 수량 : 최대 9999 특정 필드 범위 넘어서는지 검증 - 가격*수량의 합 10000원 이상 사용자가 잘못 적으면 오류페이지를 보일게 아니라 그 전에 검증하고 제대로 입력할 것들을 다시 알려줘야 한다. 즉, 잘못 입력된 것이 있으면 상품등록 폼을 다시 보여주고, 제대로 입력한 값은 사용자가 입력한 값을 그대로 보여주며 잘못 입력한 값만 다시 입력하라고 해야 한다. 여기서, 제대로 입력한 값은 그대로 보여주어야 하므로 사용자가 입력한 값들을 모델에 입력하여 다시 보여줘야 한다. 컨트롤..

Spring/MVC 2022.08.29

스프링 MVC 2편-3장. 메시지, 국제화 (김영한)

스프링 MVC 2편-3장. 메시지, 국제화 (인프런 - 김영한 강사님) 메시지 '상품명' 이라는 단어를 '상품이름'으로 고쳐야 한다고 가정해보자. '상품명'이라는 메시지가 HTML 파일에 하드코딩 되어 있으면 모든 파일을 다 찾아가면서 '상품명'을 '상품이름'으로 고쳐야 한다. 이를 방지하기 위해 메시지들을 한 곳에 모아 관리하는 기능을 메시지 기능이라고 한다. messages.properties 파일에 다음과 같이 메시지들을 기록한다. 1 2 3 4 5 item=상품 item.id=상품 ID item.itemName=상품명 item.price=가격 item.quantity=수량 cs 추후에 필요할 때, 1 cs 위와 같이 th:text 로 key 값을 부르면 item.itemName 인 '상품명'을 쓸..

Spring/MVC 2022.08.29

스프링 MVC 1편 - 5장. 스프링MVC - 구조 이해 (김영한)

스프링 MVC 전체 구조 핸들러 매핑과 핸들러 어댑터 뷰 리졸버 스프링 MVC 시작하기 스프링 MVC 컨트롤러 통합 스프링 MVC 실용적인 방식 정리 FrontController -> DispatcherServlet handlerMappingMap -> HandlerMapping MyHandlerAdapter -> HandlerAdapter ModelView -> ModelAndView viewResolver -> ViewResolver MyView -> View 1. 핸들러 조회 : 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러를 조회한다. 2. 핸들러 어댑터 조회 : 핸들러를 실행할 수 있는 핸들러 어댑터를 조회한다. 3. 핸들러 어댑터 실행 : 핸들러 어댑터를 실행한다. 4. 핸들러 실행 5. M..

Spring/MVC 2022.08.22

스프링 MVC 1편 - 4장. MVC 프레임워크 만들기 (김영한)

스프링 MVC 1편 - 4장. 직접 MVC 프레임워크 만들기 스터디 (인프런 - 김영한 강사님) 이전까지 만든 MVC 패턴은 공통처리가 어렵다는 문제가 있다. 공통기능을 처리해줄 수문장 역할. 프론트 컨트롤러 패턴을 도입하자. FrontController 장점 1. 서블릿 하나로 클라이언트 요청을 받는다. 즉, 입구가 하나다. 2. 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출한다. 3. 공통 처리가 가능하다. 4. 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다. 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있음. (DispathcerServlet에 관하여. https://mangkyu.tistory.com/18 )..

Spring/MVC 2022.08.22