이러쿵저러쿵


스프링 MVC (Model2)

 

* Front Controller : URL매핑을 담당. (어떠한 컨트롤러가 어떤 URL을 쓸것인가에 대한 설정 파일 포함) - 설정 파일을 통해서 적절한 컨트롤러를 호출. (Front Part : Servlet (DispatcherServlet.class))

* Controller : 화면 단에서 보여줄 데이터들을 미리 만들어 놓는 것. 그 데이터는 모델(Model)이라 함.
* Model : 데이터


- Model, Controller, Front Controller, View 를 잘 구조화하는 것이 MVC 모델을 제어하고 있는 라이브러리가 할 역할.

 

[스프링 MVC의 개념도] 

 

 

[예제 코드]

 

// web.xml

<servlet>

    <servlet-name>dispatcher</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>dispatcher</servlet-name>

    <url-pattern>*.oz</url-pattern>

</server-mapping>

 

// dispatcher-servlet.xml // 어떤 URL을 어떤 클래스에 매핑할 것인가?

<bean name="customer/notice.oz" class="controllers.customer.NoticeController"></bean>

 

// NoticeController.java

package controllers.customer;

public class NoticeController implements Controller { // 스프링이 제공 (Controller)

    @Override

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)

         throws Exception  {

        ModelAndView mv = new ModelAndView("notice.jsp");

        mv.addObject("test", "hello");

        return mv;

    }

}

 

// notice.jsp

<div id="main"><h2>테스트 값 : ${test}</h2></div>

 

 

 

// 실행 및 결과

URL Call : localhost/customer/notice.oz   => 화면 출력 : hello

 

* 예지 코드는 게시판 MVC(스프링 MVC – 서블릿 DispatcherServlet)로 공지사항 리스트를 관리하고, 특정 번호의 공지사항을 열람하기 위한 공지사항 페이지를 구현. (스프링의 MVC의 개념을 설명하는데에 있어서 게시물 등록, 수정, 삭제 처리 함수는 크게 다른게 없으므로 생략.)

 

ModelAndView : Controller의 처리결과를 보여줄 View와 View에서 사용할 값을 전달하는 클래스.
ModelAndView의 mv 오브젝트는 web.xml에서 설정했었던 DispatcherServlet이 받아서 처리함.

${test} : 표현 언어 (JAVA 레벨(서버)의 변수를 Front(클라이언트)에 출력하기 위한 표현 언어)

 

 

[WEB.XML 이란?]

* Web Application 의 환경 파일(Deployment Description)

- XML 형식(XML Schema)의 파일로써, WEB-INF 폴더에 위치
- <web-app> 태그로 시작하고 종료하는 문서로써 web.xml 이 정의 된 Web Application의 동작과 관련된 다양한 환경 정보를 태그 기반으로 설정하는 파일.
- Servlet 2.3 까지 DTD 파일, 2.4 부터 XML Schema 파일 형태로 변경.

 

- WEB.XML 파일의 구성 내용
 1) ServletContext의 초기 파라미터
 2) Session의 유효시간 설정
 3) Servlet/JSP에 대한 정의
 4) Servlet/JSP 매핑
 5) Mime Type 매핑
 6) Welcome File list
 7) Error Pages 처리
 8) Listen/Filter 설정
 9) 보안

 

 

 

 

 

 

 

 

 

 

 

 

 

 

저작자 표시 비영리 변경 금지
신고


Comment +0

티스토리 툴바