Overview of the Spring MVC specification
The Spring MVC framework derives its specification from the Model-View-Controller (MVC) design pattern that separates the application into layers such as business, logic, navigation and presentation. The principle behind this design pattern is to create a de-coupled or loosely-coupled architecture, which is more flexible than the tightly-coupled frameworks.
Technically, Spring MVC works starts with a DispatcherServlet
that dispatches requests to handlers, with configurable handler mappings, view resolution, locale, time zone and theme resolution, as well as support for uploading files. The default handler is based on the @Controller
and @RequestMapping
annotations, offering a wide range of flexible handling methods. With the introduction of Spring 3.0, the @Controller
mechanism also allows you to create RESTful Web sites and applications, through the @PathVariable
annotation and other features (http://docs.spring.io/).
The following diagram depicts how DispatcherServlet
manages the whole MVC framework while, at the same time, avoiding the Fat Controller syndrome.
The org.springframework.web.servlet.DispatcherServlet
is an actual servlet in the web.xml
file of your web application, declared using the standard servlet
tags. Just like any typical servlets, it recognizes request transactions through URL mappings. This servlet serves as the front controller of the whole MVC project.
Since this PWP project is written using the Spring Framework 4.x specification, the implementations always starts by declaring the DispatcherServlet
.