본문 바로가기

Spring/스프링 MVC25

[스프링 MVC 1편] 4 - (5) 프론트 컨트롤러 - v5 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 진도 : 섹션4 - (6) ~ (7) * : 자바 클래스명, : 코드, : 단축키 1. 프론트 컨트롤러_구현 5단계 (V3 지원) Controller를 v1 ~ v4 까지 만들어보았는데 컨트롤러를 섞어서 다양하게 써보자 지금까지 우리가 개발한 프론트 컨트롤러는 한가지 방식의 컨트롤러 인터페이스만 사용할 수 있다 예로 ControllerV3 , ControllerV4 는 다른 인터페이스라 호환이 불가능하다 어댑터 패턴을 사용해서 프론트 컨트롤러가 다양한 방식의 컨트롤러를 처리하자 어댑터 패턴 서로 다른 인터페이스를 사용할 수 있도록 바꿔줌으로써 기존 코드를 재사용 핸들러란 이벤트가 발생했을 때, 해당 이벤트에 맞는 동작을 .. 2023. 11. 13.
[스프링 MVC 1편] 4 - (4) 프론트 컨트롤러 - v4 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 진도 : 섹션4 - (5) * : 자바 클래스명, : 코드, : 단축키 1. 프론트 컨트롤러_구현 4단계 ModelView 를 없애보자! Map 으로 별도 설정 1) 인터페이스 [ src - java - hello.servlet - web - frontcontroller .v4 - ControllerV4 ] public interface ControllerV4 { String process(Map paramMap,Map model); } ModelView없이 진행 서블릿과 앞부분 이름 차이 protected void service → String process Map paramMap / model 맵 2개 추가 프론트 컨.. 2023. 11. 10.
[스프링 MVC 1편] 4 - (3) 프론트 컨트롤러 - v3 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 진도 : 섹션4 - (4) * : 자바 클래스명, : 코드, : 단축키 1. 프론트 컨트롤러_구현 3단계 서블릿 종속제거 HttpServletRequest HttpServletResponse 더보기 public MyView process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 뷰 이름 중복제거 뷰 이름의 중복(/WEB-INF/views/)을 제거하고 논리 이름만 반환 더보기 return new MyView("/WEB-INF/views/new-form.js.. 2023. 11. 10.
[스프링 MVC 1편] 4 - (2) 프론트 컨트롤러 - v2 * 스프링 입문 = window, 스프링 MVC 1편 = Mac 으로 진행합니다 * 진도 : 섹션4 - (1) ~ (3) * : 자바 클래스명, : 코드, : 단축키 1. 프론트 컨트롤러_구현 2단계 (뷰 깔끔하게 처리) 매번 반복해서 사용했던 뷰 영역 코드를 간편하게 바꿔보자! 더보기 String viewPath = "/WEB-INF/views/new-form.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); 1) My View 클래스 만들자! [ src - java - hello.servlet - web - frontcont.. 2023. 11. 9.
[스프링 MVC 1편] 4 - (1) 프론트 컨트롤러 - v1 * 스프링 입문은 Window로 스프링 MVC 1편은 Mac으로 진행합니다 * 진도 : 섹션4 - (1) ~ (2) * : 자바 클래스명, : 코드, : 단축키 1. 프론트 컨트롤러 기존의 컨트롤러 공통 로직을 하나로 묶은 프론트 컨트롤러 - FrontController 패턴 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받기 (프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨) 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 2. 프론트 컨트롤러_구현 1단계 (매핑정보, 컨트롤러 호출) 1) 인터페이스를 만들자! [ src - java - hello.servlet - web - frontcontroller .v1 - ControllerV1 ] 서블릿과 비슷한 모양의 인터페.. 2023. 11. 9.
[스프링 MVC 1편] 3 - (3) MVC 패턴 * 스프링 입문은 Window로 스프링 MVC 1편은 Mac으로 진행합니다 * 진도 : 섹션3 - (4) ~ (5) 섹션3 - (3) 부분은 잘 사용하지 않는 jsp 부분이라 생략 (강의를 참고해주세요) * : 자바 클래스명, : 코드, : 단축키 1. 서블릿과 JSP Servlet JSP 코드 내 처리방법 자바 코드 속에서 HTML 태그로 문자열(””) 로 처리해야 함. HTML 속에서 자바코드를 또는 형태로 처리. (자바 소스코드로 작성된 부분은 웹 브라우저로 보내는 것이 아니라 웹 서버에서 실행됨) 한계(Servlet)와 보완(JSP) 1. 화면 인터페이스 구현에 너무 많은 코드를 필요로 하는 비효율성 2. 테스트할 때 빌드를 항상 다시해야 한다는 한계가 있음 3. HTML 변경 시 Servlet을.. 2023. 11. 8.
[스프링 MVC 1편] 3 - (2) 서블릿 회원 관리 웹 애플리케이션 * 스프링 입문은 Window로 스프링 MVC 1편은 Mac으로 진행합니다 * 진도 : 섹션3 - (2) * : 자바 클래스명, : 코드, : 단축키 1. 서블릿 회원 등록 (Form)_ [스프링 입문] 3 - (1), (3) 편 참고 [ src - java - hello - servlet - web - servlet - MemberFormServlet ] - 상속 extends HttpServlet 서블릿을 사용하기 위해 HttpServlet을 상속받는다 - 서블릿 생성 @WebServlet 해당 어노테이션에 경로를 입력하면 클라이언트에서 톰캣서버가 찾아서 실행한다 /servlet/members/new-form 입력하면 하위 메서드 실행 @WebServlet(name = "memberFormServle.. 2023. 11. 7.
[스프링 MVC 1편] 3 - (1) 웹 애플리케이션 요구사항 * 스프링 입문은 Window로 스프링 MVC 1편은 Mac으로 진행합니다 * 진도 : 섹션3 - (1) * : 자바 클래스명, : 코드, : 단축키 1. 회원 관리 웹 애플리케이션 요구사항 _ [스프링 입문] 3 - (1), (3) 편 참고 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 ▶ 웹 애플리케이션 계층 구조 1. 도메인 더보기 웹을 설계할때 도메인을 먼저 정하는게 중요하다 Domain 내가 개발하고자 하는 영역의 모델(객체) 온라인 쇼핑몰을 예를 든다면 주문 (핵심 기능), 회원, 결제, 배송, 리뷰로 도메인을 나눌 수 있다 이 도메인 중 또 하위 도메인으로 나눌 수 있다 Domain Model Entity 식별자를 가진다 식별자 이외의 데이터가 변경.. 2023. 11. 5.
[스프링 MVC 1편] 2 - (6) HTTP 응답 데이터 * 스프링 입문은 Window로 스프링 MVC 1편은 Mac으로 진행합니다 * 진도 : 섹션2 - (11) ~ (13) * : 자바 클래스명, : 코드, : 단축키 1. HTTP 응답 단순 텍스트 응답 ( writer.println("ok"); ) HTML 응답 HTTP API - MessageBody JSON 응답 2. HTTP 응답 - HTML 버전 [ src - main - java - hello.servlet - basic - response - ResponseHtmlServlet ] - public class ResponseHtmlServlet extends HttpServlet 서블릿을 사용하기 위해 HttpServlet을 상속받는다 - @WebServlet(name = "responseHtm.. 2023. 11. 4.
[스프링 MVC 1편] 2 - (5) HttpServletResponse * 스프링 입문은 Window로 스프링 MVC 1편은 Mac으로 진행합니다 * 진도 : 섹션2 - (10) * : 자바 클래스명, : 코드, : 단축키 1. HttpServletResponse 역할 HTTP 응답 메시지 생성 HTTP 응답코드 지정 헤더 생성 바디 생성 2. HttpServletResponse 사용법 [ src - main - java - hello.servlet - basic - response - ResponseHeaderServlet ] - WebServlet @WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpS.. 2023. 11. 3.