본문 바로가기

분류 전체보기

(68)
Command 객체 Command 객체는 Controller 메소도 매개변수로 받은 VO(Value Object) 객체라고 보면 된다. InsertBoardController 클래스의 insertBoard() 메소드를 Command 객체를 이용하여 구현한다. @Controller public class InsertBoardController { @RequestMapping(value="/insertBoard.do") public void insertBoard(BoardVO vo) { } } insertBoard() 메소드의 매개변수로 사용자가 입력한 값을 매핑할 BoardVO 클래스를 선언하면, 스프링 컨테이너가 insertBoard() 메소드를 실행할 때 Command 객체를 생성하여 넘겨준다. 그리고 이때 사용자가 입력..
Spring MVC 구조 - (하) Spring MVC 수행 흐름 strtus를 비롯한 대부분의 MVC 프레임워크는비슷한 구조를 가졌다. 따라서 하나의 프레임워크만 잘 이해한다면 다른 프레임워크도 쉽게 이해할 수 있다. 우리는 앞에서 Spring MVC 구조가 전혀 새롭지는 않을 것이다. 그림 5 - 1은 클라이언트의 요청을 시작으로 Spring MVC를 구성하는 각 요소가 어떻게 동자갛는지를 표현했으며, 각 번호에 대한 설명을 아래에 추가했다. 그림의 번호와 설명을 번갈아 가며 확인하기 바란다. 1. 클라이언트로부터 모든 ".do" 요청을 DispatcherServlet이 받는다. 2. DispatcherServlet은 HandlerMapping을 통해 요청을 처리할 Controller를 검색한다. 3. DispatcherServlet은..
JAVA - 사이트 데이터를 읽는 2가지 방법 자바에서는 사이트 데이터를 읽기 위해서 기본적으로 라이브러리들을 제공하고 있다. 대표적인 2가지 방법에 대해서 알아보자. 사이트 데이터를 읽는 다는 것은, 특정 URL(ex:www.naver.com)을 입력하였을 때, HTML(Hyper Text Markup Language), JSON(JavaScript Object Notation), XML(Extensible Markup Language), OpenAPI 등의 데이터를 읽어 들인다는 것을 의미한다. 이렇게 다른 사이트의 데이터를 읽어와서 자신만의 데이터베이스를 구축하는 경우가 많은데, 물론 이것을 서비스 하는 것은 법적으로 문제가 있을수 있게지만 이 데이터로 무언가를 분석하거나, 2차적인 아이디어를 구축하는 경우가 많다. openStream 자바에서..
IOC(Inversion of Control)컨테이너 - 서블릿 컨테이너 스프링 프레임워크를 이해하는데 가장 중요한 개념이 바로 컨테이너이다. 컨테이너의 개념은 스프링에서 처음 사용된 것은 아니며, 기존의 서블릿이나 EJB 기술에서 사용해왔다. 그리고 대부분 컨테이너는 비슷한 구조와 동작 방식을 가지고 있으므로 서블릿 컨테이너를 통해 스프링 컨테이너의 동작 방식을 유추해볼 수 있다. 다음과 같이 간단한 서블릿 클래스를 만들었다고 가정하자. HelloServlet.java public class HelloServlet extends HttpServlet { public HelloServlet() { System.out.println("===> HelloServlet 객체 생성"); } protected void doGet(HttpServletRequest request, Htt..
MVC 프레임워크 구현 - (중) Controller 인터페이스 작성 Controller를 구성하는 요소 중에서 DispatcherServlet은 클라이언트의 요청을 가장 먼저 받아들이는 Front Controller이다. 하지만 클라이언트의 요청을 처리하기 위해 DispatcherServlet이 하는 일은 거의 없으며, 실질적인 요청 처리는 각 Controller에서 담당한다. 구체적인 Controller 클래스들을 구현하기에 앞서 모든 Controller를 같은 타입으로 관리하기 위한 인터페이스를 만들어야 한다. 클라이언트의 요청을 받은 DispatcherServlet은 HandlerMapping을 통해 Controller 객체를 검색하고, 검색된 Controller를 실행한다. 이때 어떤 Controller 객체가 검색되더라도 같은..
@ModelAttribute와 커맨드 객체(2) 커맨드 객체(Command Object) 커맨드 객체(Command Object)란 HttpServletRequest를 통해 들어온 요청 파라미터들을 setter메서드를 이용하여 객체에 정의되어있는 속성에 바인딩이 되는 객체를 의미합니다. 커맨드 객체는 보통 VO 나 DTO를 의미하며, HttpServletRequest로 받아오는 요청 파라미터의 key 값과 동일한 이름의 속성들과 setter 메서드를 가지고 있어야 합니다. 어떻게 자동으로 바인딩을 시켜주냐 하면, 스프링이 내부적으로 HttpServletRequest와 커맨드 객체의 setter 메서드를 이용하여 알아서 바인딩 시켜줍니다. 마치 객체를 JSON 형식으로 변환하기 위해 Jackon2ObjectMapperBuilder가 autoDetectG..
@ModelAttribute와 커맨드 객체(1) @ModelAttribute 어놑ㅌ테이션의 기능과 커맨드 객체의 기능에 대해서 알아보겠습니다. 추가적으로 @RequestParam 어노테이션과 HttpServletRequest에 대해서도 추가적으로 다뤄보겠습니다. 순서는 HttpServletRequest > @RequestParam > 커맨드 객체 > @ModelAttribute 순서로 이해해야 세가지 개념에 대해서 확실하게 이해하실 수 있습니다. Extends the ServletRequest interface to provide request information for HTTP servlets. The servlet container create an HttpServletRequest object and passes it as an argument..
웹 애플리케이션 http://70.12.220.93 : 8080 / edu / index.jsp IP가 70.12.220.93인 컴퓨터를 찾아감 8080 포트를 사용하고 있는 서버를 찾아감 edu라는 이름의 웹 애플리케이션을 찾아감 /index.jsp 파일을 찾아감 - 서블릿을 만드는 목적은 클라이언트에 서비스하기 위해서이다. 그렇다면 서버에 서블릿이 준비되어 있어야 한다. 웹서버에 서블릿이 어떤 구조로 있어야, 클라이언트가 서블릿에 접근하는지 알아보자. * 서블릿은 웹서버에서 서비스되는 페이지이다. - 클라이언트가 URL의 컴퓨터 주소와 포트 번호를 이용해 웹 서버까지 찾았다면 다음 목적지는 웹 애플리케이션이다. 웹서버가 클라이언트에 서비스하는 단위는 웹 애플리케이션이다. (그래서 개발 할 때 먼저 웹 애플리케이션을 ..