Spring
-
Spring @Valid와 BindingResult 파라미터Spring 2021. 12. 21. 20:20
@Valid 필드 값을 기본 값으로 가져가고 싶을 때, Controller에 @Valid 어노테이션을 선언할 수 있다. //@Valid 예시 @PostMapping("/members/new") public String create(@Valid MemberForm form){ Address address = new Address(form.getCity(), form.getStreet(), form.getZipcode()); Member member = new Member(); member.setName(form.getName()); member.setAddress(address); memberService.join(member); return "redirect:/"; } //NotEmpty Valid @N..
-
Spring Controller Model modelSpring 2021. 12. 21. 19:06
Spring Model 객체 Controller의 메서드는 Model이라는 타입의 객체를 파라미터로 받을 수 있다. 순수 JSP Servlet은 request.setAttribute()로 선언한 것을 Spring에서는 model.addAttribute로 대체할 수 있다. //JSP Servlet 방식 request.setAttribute("member", member ); //Model에 데이터를 보관한다. String viewPath = "/WEB-INF/views/save-result.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request. response); //Spri..
-
스프링 구조의 이해Spring 2021. 11. 30. 19:31
핸들러 매핑, 핸들러 어댑터 과거에는 컨트롤러 interface를 통해 핸들러를 매핑하거나 어댑터했다. 현재는 어노테이션 RequestMapping을 이용해 매핑 및 어댑터를 함께 수행가능하다. Spring MVC 제공기능 뷰리졸버 핸들러 어댑터를 통해 논리뷰 이름을 획득 -> ViewResolver 호출 -> 랜더링(JSP 실행) Controller 스프링 MVC를 사용할 수 있도록하는 어노테이션 Component를 포함(자동 빈 등록) @RequestMapping 핸들러와 어댑터를 지원 요청 정보를 매핑 해당 URL 호출 메서드 형식의 컨트롤러(핸들러)를 한곳에 통합할 수 있다.(관리가 수월) 중복되는 URL을 클래스 위에 RequestMapping("URL")로 선언할 수 있다. ModelAndVi..
-
MVC 프레임워크 생성Spring 2021. 11. 28. 19:47
FrontController 패턴 생성 FrontController를 생성함으로써 더이상 컨트롤러에 서블릿을 사용하지 않아도 된다. 프론트 컨트롤러만 서블릿으로 설정해두고 요청에 맞는 컨트롤러를 찾아서 호출해주는 방식이다. 공통처리가 가능하다. View 분리 getRequestDispatcher 처럼 모든 컨트롤러에서 뷰로 이동하는 부분에 중복이 발생하므로 별도로 뷰를 처리하는 객체를 만든다.(MyView) 서블릿 종속성 제거, 뷰 이름 중복 제거(논리 뷰, 물리 뷰) 컨트롤러는 서블릿이 필요없다. Map을 이용해 파라미터 정보를 넘기면 되기 때문이다. 뷰의 논리 이름만 입력하면 자동으로 물리 뷰를 생성하도록 설정해줄 수 있다.(viewResolver) 서블릿 종속성을 제거하기 위해 뷰를 렌더링 할 때 ..
-
HTTPServletRequest, Response, HTTP-APISpring 2021. 11. 25. 20:34
HTTPServletRequest GET 쿼리 파라미터 request.getParameter()는 GET URL 쿼리 파라미터 형식이나 POST HTML Form 형식을 지원한다. (postman 이용 가능) POST HTML Form 방식은 Content-Type이 application/x-www-form-urlencoded이다 GET URL 방식은 검색, 필터, 페이징 등에서 많이 사용 POST HTML Form 방식은 회원 가입, 상품 주문, HTML Form을 사용 JSON 형식은 데이터 형식을 전달할 때 주로 사용 request.getParameter()는 하나의 파라미터 이름에 대해 단 하나의 값만 있을 때 사용해야한다. 값이 중복일 때는 request.getParameterValues()를 ..
-
Web 기본 동작 방식(in spring)Spring 2021. 11. 22. 17:21
웹 서버, WAS(Web Application Server) 웹 서버, WAS 모두 HTTP 기반으로 동작 웹 서버는 정적 리소스(파일) WAS는 서버 기능 + 정적 리소스 동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링MVC 애플리케이션 코드를 실행하는데 더 특화 Servlet HTTP 요청 및 응답 정보를 평리하게 사용하거나 제공할 수 있다. 즉, 개발자는 HTTP 스펙을 매우 편리하게 사용가능하다. 서블릿 컨테이너 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 함 서블릿 생성, 호출, 관리해줌 서블릿 객체는 싱글톤으로 관리 요청마다 새로운 객체 생성은 비효율적. 주의) 공유 변수 사용 주의(지역변수, 파라미터, ThreadLocal 등을 사용해야함) 멀티 쓰레드 처리 ..