스프링 MVC (Model2)
* Front Controller : URL매핑을 담당. (어떠한 컨트롤러가 어떤 URL을 쓸것인가에 대한 설정 파일 포함) - 설정 파일을 통해서 적절한 컨트롤러를 호출. (Front Part : Servlet (DispatcherServlet.class))
* Controller : 화면 단에서 보여줄 데이터들을 미리 만들어 놓는 것. 그 데이터는 모델(Model)이라 함.
* Model : 데이터
- Model, Controller, Front Controller, View 를 잘 구조화하는 것이 MVC 모델을 제어하고 있는 라이브러리가 할 역할.
[스프링 MVC의 개념도]
[예제 코드]
<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) 보안
출처: http://ooz.co.kr/219?category=818548 [이러쿵저러쿵]
'Web Programming > spring' 카테고리의 다른 글
Spring AOP with XML (0) | 2018.08.29 |
---|---|
Spring MVC jsp jstl (0) | 2018.08.29 |
Spring 빈 후처리기 (0) | 2018.08.29 |
Spring 포인트컷 조인포인트 (0) | 2018.08.29 |
Spring Advice (0) | 2018.08.29 |