일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 참조변수
- 코딩테스트
- 티스토리챌린지
- 스프링
- 코드트리조별과제
- equals()
- 김영한
- 프로그래머스
- DI
- 싱글톤
- 추상클래스
- java
- objecterror
- HttpServletResponse
- 스프링컨테이너
- html form
- fielderror
- 백준
- 프록시
- 코드트리
- 테스트코드
- 서블릿
- 예외와 트랜잭션 커밋
- 인터페이스
- 오블완
- 의존관계
- http 메시지 컨버터
- 다익스트라
- 오버라이딩
- @configuration
- Today
- Total
목록TIL/김영한의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (34)
minOS

Model 추가 - ver3서블릿 종속성 제거 컨트롤러 입장에서 HttpServletRequest, HttpServletResponse이 꼭 필요할까? 1) 요청 파라미터 정보를 자바의 Map으로 대신 넘기도록 하면 지금 구조에서는 컨트롤러가 서블릿 기술을 몰라도 동작할 수 있다. 2) request 객체를 Model로 사용하는 대신에 별도의 Model 객체를 만들어서 반환하면 된다. 우리가 구현하는 컨트롤러가 서블릿 기술을 전혀 사용하지 않도록 변경해보자. 이렇게 하면 구현 코드도 매우 단순해지고, 테스트 코드 작성이 쉽다.뷰 이름 중복 제거컨트롤러에서 지정하는 뷰 이름에 중복이 있는 것을 확인할 수 있다.컨트롤러는 뷰의 논리 이름 을 반환하고, 실제 물리 위치의 이름은 프론트 컨트롤러에서 처리하도록 ..

View 분리 - Ver 2String viewPath = "/WEB-INF/views/new-form.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);dispatcher.forward(request, response);모든 컨트롤러에 view로 이동하는 부분에 중복이 있다.이 부분을 분리하기 위해 별도의 view를 처리하는 객체를 만들어야 한다.VER 2 구조MyView이 코드를 보고 어떻게 사용할지 감이 안온다 -> 해당 코드가 없다고 생각하고 왜 이렇게 만들었을지 생각해보자 !!public class MyView { String viewPath; public MyView(String urlPath..

프론트 컨트롤러 Ver 1VER 1 구조 서블릿과 비슷한 모양의 컨트롤러 인터페이스를 도입한다. 각 컨트롤러들은 이 인터페이스를 구현하면 된다. 프론트 컨 트롤러는 이 인터페이스를 호출해서 구현과 관계없이 로직의 일관성을 가져갈 수 있다. public interface ControllerV1 { void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; }이 인터페이스를 구현하여 컨트롤러를 만든다.MemberFormControllerV1 - 회원 등록 컨트롤러public class MemberFormControllerV1 implements Controller..

프론트 컨트롤러 도입프론트 컨트롤러에 각 컨트롤러에 공통된 부분을 뺀다. (아래 그림 처럼)프론트 컨트롤러의 특징 !- 프론트 컨트롤러 서브릿 하나로 클라이어트의 요청을 받음- 프론트 컨트롤러가 요청에 맞는 컨트롤러를 호출 - 공통 처리 가능- 프론트 컨트롤러를 제외한 나머지 서블릿을 사용하지 않아도 됨스프링 웹 MVC와 프론트 컨트롤러 - 스프링 웹 MVC의 핵심도 FrontController- 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴으로 구현되어 있음

MVC 패턴 - 개요하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무 많은 역할을 하게되고, 결과적 으로 유지보수가 어려워진다. 변경의 라이프 사이클진짜 문제는 둘 사이에 변경의 라이프 사이클이 다르다는 점이다. 예를 들어서 UI를 일부 수정 하는 일과 비즈니스 로직을 수정하는 일은 각각 다르게 발생할 가능성이 매우 높고 대부분 서로에게 영향을 주지 않는 다. 이렇게 변경의 라이프 사이클이 다른 부분을 하나의 코드로 관리하는 것은 유지보수하기 좋지 않다.Model View Controller 패턴MVC 패턴은 지금까지 학습한 것 처럼 하나의 서블릿이나, JSP로 처리하던 것을 컨트롤러(Controller)와 뷰(View)라 는 영역으로 서로 역할을 나눈 것을 말한다...

JSP로 회원 관리 웹 애플리케이션 만들기서블릿 처럼 입력,저장,회원 목록 순으로 사진을 보여주겠다 . URL을 신경써서 보자입력저장회원 목록 회원 저장 jsp 성공 id= username= age=메인JSP는 자바 코드를 그대로 다 사용할 수 있다.- ㄴ 자바의 import 문과 같다. `- ` ㄴ이 부분에는 자바 코드를 입력할 수 있다. `- ` ㄴ이 부분에는 자바 코드를 출력할 수 있다.회원 저장 JSP를 보면, 회원 저장 서블릿 코드와 같다. 다른 점이 있다면, HTML을 중심으로 하고, 자바 코드를 부분부 분 입력해주었다. `` 를 사용해서 HTML 중간에 자바 코드를 출력하고 있다. 서블릿과 JSP의 한계서블릿으로 개발할 때는 뷰(View)화면을 ..