인프런

· Spring/mvc
view 분리 개요 모든 컨트롤러에서 뷰로 이동하는 부분이 중복이다. String viewPath = "/WEB-INF/views/members.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath); dispatcher.forward(request, response); 해결방안 중복을 해결하기 위해 별도로 뷰를 처리하는 객체를 만든다. Goal : 기존 코드를 최대한 유지하면서, 뷰를 분리해본다. View 분리 v2 구조 아키텍쳐 MyView 객체 hello/servlet/web/frontcontroller/MyView.java package hello.servlet.web.frontcontroller; import jav..
· Spring/mvc
프론트 컨트롤러 패턴 소개 공통의 관심사를 별도로 모으는 소위 문지기 역할을 하는 것을 controller앞에 도입한다. 프론트 컨트롤러 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 입구를 하나로 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨. 스프링 웹 MVC와 프론트 컨트롤러 스프링 웹MVC의 핵심도 바로 프론트컨트롤러이며 스프링 웹MVC의 DispatcherServlet이 프론트 컨트롤러 패턴으로 구현되어 있음 프론트 컨트롤러 도입 전 과 후의 아키텍쳐 Goal : 기존 코드를 최대한 유지하면서, 프론트 컨트롤러를 도입해본다. 먼저 구조를 맞추어두고 점진적으로 리팩토링을 한다. 프론트..
· Spring/mvc
MVC 패턴의 개요 너무 많은 역할 : 하나의 서블릿이나 JSP만으로 비지니스 로직과 뷰 렌더링까지 모두 처리하게 되면 유지보수가 어려워진다. 변경의 라이프 사이클 : UI와 비지니스 로직을 수정하는 일은 다르게 발생하고 서로에게 영향을 주지 않으므로 유지보수에 부적합 기능 특화 : 특히 JSP와 같은 뷰 템플릿 화면은 렌더링하는데 최적화 ModelViewController MVC 패턴이란 하나의 서블릿이나 JSP로 처리하던 것을 컨트롤러(Controller)와 뷰(View)라는 영역으로 역할을 나누는 것을 의미한다. 구분 역할 컨트롤러 HTTP 요청을 받아 파라미터를 검증하고 비지니스로직을 호출한다. 그리고 뷰에 전달할 결과 데이터를 조회하여 모델에 담는다 모델 뷰에 출력할 데이터를 담아둔다. 뷰가 필..
· Spring/mvc
JSP로 회원 관리 웹 어플리케이션을 만들어 보자 JSP 라이브러리 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' //JSP 추가 시작 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:' implementation 'javax.servlet:jstl:1.2' //JSP 추가 끝 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-..
· Spring/mvc
HTTP 응답 메세지는 주로 다음 내용을 담아서 전달한다 단순 텍스트 응답 writer.println("ok"); HTML 응답 HTTP API - MessageBody JSON 응답 HTML 응답 @WebServlet(name="responseHtmlServlet", urlPatterns = "/response-html") public class ResponseHtmlServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //Content-Type: text/html; cha..
· Spring/mvc
HttpServletResponse 역할 HTTP 응답 메세지를 생성한다 HTTP 응답코드 지정 헤더 생성 바디 생성 편의기능 제공 Content-Type, 쿠키, Redirect 직접 헤더 정보 출력해보기 @WebServlet(name="responseHeaderServlet", urlPatterns = "/response-header") public class ResponseHeaderServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //[status-line] res..
· Spring/mvc
HttpServletRequest 역할 HTTP 요청 메세지를 개발자가 편리하게 사용할 수 있도록 HTTP를 파싱한다. 그리고 그 결과를 HttpServletRequest객체에 담아서 제공한다. HTTP 요청 메세지 POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded username=rosieposie&age=22 START LINE HTTP 메소드 URL 쿼리 스트링 스키마, 프로토콜 헤더 헤더 조회 바디 form 파라미터 형식 조회 message body 데이터 직접 조회 임시 저장소 기능 해당 HTTP 요청이 시작부터 끝날 때까지 유지되는 임시 저장소 기능 저장 : request.setAttr..
· Spring/mvc
** 톰캣서버를 설치하고 서블릿 코드를 클래스 파일로 빌드해서 올리는 과정은 번거로우니 내장 톰캣이 있는 스프링부트 환경에서 진행 1. HelloServlet.java 생성 HttpServlet을 상속을 받고 @WebServlet 컴포넌트를 사용하여 name과 urlPatterns를 지정해준다. ctrl+o를 해서 protected service 메서드를 만든다. 이 서블릿이 호출이되면 서비스 메서드가 호출이 되도록 !!! 그리고 스프링 실행하자마자 에러 등장 ㅋㅋㅋㅋㅋㅋㅋ 아래는 에러 문구 Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: 내가 작성한 코드는 없었고 컴포넌트, 메서드는..
· Spring/mvc
Goal 웹 서버 (web server)에 대해 알아본다 웹 어플리케이션 서버(web application server)에 대해 알아본다 웹서버와 was를 분리해야 하는 이유 Client > Web Server > WAS > DB 구조 및 동작과정을 알아본다 웹 서버와 WAS 웹 서버 (Web Server)란? 클라이언트가 서버에 페이지 HTTP 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버이다 특징 정적 리소스 제공 (정적(파일) HTML, CSS, JS, 이미지, 영상) 클라이언트에서 요청이 올 때 가장 앞에서 요청에 대한 처리를 한다. was를 거치지 않고 자원 바로 제공 어플리케이션 로직같은 동적인 처리가 필요시에는 was에 요청을 위임하고, WAS가 처..
dev_rosieposie
'인프런' 태그의 글 목록 (2 Page)