[Spring] FrontController 도입하기 V1
·
Spring/MVC
[Spring] 서블릿과 JSP로 MVC 흉내내기 , 그리고 한계점서블릿과 JSP를 통해 MVC를 구현 해볼 예정이다. 구현은 다음과 같다.서블릿 : 컨트롤러JSP : 뷰HttpServletRequest 가 제공하는 내부 저장소 (Attribute) : 모델/WEB-INF 경로참고 사항으로, /WEB-INF 라는 폴더를bdisappointed.tistory.com해당 글 에서 만들었던 서블릿 + JSP 로 MVC 구현하기를 프론트 컨트롤러 패턴을 적용하여 리팩토링 해보겠다. FrontController 패턴 개요FrontController 패턴의 개요는 다음 포스팅을 참고하자 [Spring] Front Controller 패턴 - 개요Front Controller 패턴프론트 컨트롤러 패턴은 말 그대로 프..
[Spring] Front Controller 패턴 - 개요
·
Spring/MVC
Front Controller 패턴프론트 컨트롤러 패턴은 말 그대로 프론트에서 컨트롤한다는 의미이다.위 사진처럼 컨트롤러에서 공통되는 로직들을 먼저 1차로 Front Controller로 처리 한뒤, 나머지 로직들을 해당 컨트롤러에서 실행하는 형태를 의미한다.대표적으로 Front Controller 를 사용하게 되면 Front Controller를 제외한 나머지 컨트롤러에는 서블릿을 굳이 사용하지 않아도 된다는 장점이 있다(@WebServlet 애노테이션 작성 X, HttpServlet 인터페이스 상속 X).나머지 컨트롤러는 먼저 공통 기능을 묶은 인터페이스를 먼저 구현하고, 이를 구현한 컨트롤러로 작성하면 된다.import jakarta.servlet.ServletException;import jaka..
[Spring] 서블릿과 JSP로 MVC 흉내내기 , 그리고 한계점
·
Spring/MVC
서블릿과 JSP를 통해 MVC를 구현 해볼 예정이다. 구현은 다음과 같다.서블릿 : 컨트롤러JSP : 뷰HttpServletRequest 가 제공하는 내부 저장소 (Attribute) : 모델/WEB-INF 경로참고 사항으로, /WEB-INF 라는 폴더를 만들고 그 안에 JSP 코드를 작성하면, 외부에서 호출이 불가능한 JSP 코드가 작성 된다. 즉 우리는 항상 컨트롤러로 JSP를 호출 할 수 있도록 해야한다. 회원 등록 폼회원등록 폼 - 컨트롤러import jakarta.servlet.RequestDispatcher;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servl..
[Spring] MVC 패턴의 개요 - JSP는 만능이지만 만능이 아님
·
Spring/MVC
JSP 코드의 한계사실 JSP로 모든 비즈니스 로직과 뷰 로직을 해결할 수 있는 건 맞다.하지만 이전 포스팅에서 말했다시피, JSP에 비즈니스 로직과 뷰 로직을 함께 두게 되면 JSP코드에 대한 부담이 커지게 되고, 비즈니스 로직 수정이나 뷰 로직 수정시 모든 코드를 확인 해야한다는 미친 단점이 존재한다. [Spring] 회원 관리 웹 애플리케이션 JSP 리팩토링[Spring] 회원관리 웹 애플리케이션 요구 사항 및 Servlet 구현 (A.K.A 타자연습)이번에는 회원 관리 웹 애플리케이션을 간단하게 구현 해볼 것이다.서블릿, JSP , MVC 패턴으로 차차 리팩토링 할 예정인bdisappointed.tistory.com변경 주기 분리하기비즈니스 로직 (자바 코드) 와 뷰 (HTML) 코드는 서로 라..
[Spring] 회원 관리 웹 애플리케이션 JSP 리팩토링
·
Spring/MVC
[Spring] 회원관리 웹 애플리케이션 요구 사항 및 Servlet 구현 (A.K.A 타자연습)이번에는 회원 관리 웹 애플리케이션을 간단하게 구현 해볼 것이다.서블릿, JSP , MVC 패턴으로 차차 리팩토링 할 예정인데, 이번 포스팅에선 먼저 웹 애플리케이션 요구 사항에 대한 코드를 작성bdisappointed.tistory.com이전 글에서 작성했던 서블릿 형태를 JSP로 리팩토링 해보겠다.먼저 JSP 라이브러리를 Gradle에 추가해야한다.이후 JSP 문서는 항상 시작할 때 다음과 같은 문장을 넣어야 한다.회원 등록 폼 JSP//파일명 : new-form.jsp username: age: 전송기존에 만들었던 HTML과 거의 똑같다. JSP는 내부에서 서블릿으로 변환 되기 때문에 기존 코드..
[Spring] 회원관리 웹 애플리케이션 요구 사항 및 Servlet 구현 (A.K.A 타자연습)
·
Spring/MVC
이번에는 회원 관리 웹 애플리케이션을 간단하게 구현 해볼 것이다.서블릿, JSP , MVC 패턴으로 차차 리팩토링 할 예정인데, 이번 포스팅에선 먼저 웹 애플리케이션 요구 사항에 대한 코드를 작성하고 서블릿까지만 먼저 구현해본다.회원관리 웹 애플리케이션 요구사항회원 정보 -> 이름(username), 나이(age)기능 요구 사항 -> 회원 저장, 회원 목록 조회회원 도메인 모델 작성Member 클래스import lombok.Getter;import lombok.Setter;@Getter @Setterpublic class Member { private Long id; private String username; private int age; public Member() { } ..
[Spring] HTTP Response 데이터 처리하기
·
Spring/MVC
HTTP Response 메시지는 주로 다음 내용들을 담아 응답한다.- 단순 텍스트 응답 -> writer.println("ok")- HTML 응답 - HTTP API 응답 -> 바디에 JSON 응답HTML 응답import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;@WebSe..
[Spring] HttpServletResponse와 제공 메서드
·
Spring/MVC
HttpServletResponse의 역할기능을 알아보기 전에, 해당 객체가 어떤 역할을 하는지부터 알아야한다.- HTTP 응답 메시지 생성 -> 응답 코드, 헤더, 바디 생성- 편의 기능 제공 -> Cookie 나 RedirectionHttpServletResponse 가 제공하는 기능import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.Cookie;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.Ht..
[Spring] HTTP Request 데이터를 처리하는 3가지 방법
·
Spring/MVC
HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법은 크게 3가지로 나누어진다- GET : 쿼리 파라미터- POST : HTML From- HTTP message body에 직접 데이터를 담아 요청하나씩 차근차근 알아보자.GET : 쿼리 파라미터메시지 바디 없이 URL의 쿼리 파라미터를 통해 데이터를 전달하는 방식이다.URL 요청 예시 : http://localhost:8080/request-param?username=xuv2&age=26다음과 같은 코드로 쿼리 파라미터를 조회할 수 있다.import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.h..