Spring MVC framework is a robust Model view controller framework which helps us to develop a loosely coupled web application. It separates different aspects of web applications with the help of MVC architecture.
Model: Model carries application data. It generally includes POJO in the form of business objects
View: View is used to render User interface (UI). It will render application data on UI. For example JSP
Controller: Controller takes care of processing user request and calling back end services.
This Spring MVC tutorial is made for beginners as well as for experienced programmer.
Spring MVC workflow
Following steps are involved in Spring MVC workflow.
- The request will be received by Front Controller i.e. DispatcherServlet.
- DispatcherServlet will pass this request to HandlerMapping. HandlerMapping will find suitable Controller for the request
- HandlerMapping will send the details of the controller to DispatcherServlet.
- DispatcherServlet will call the Controller identified by HandlerMapping. The Controller will process the request by calling appropriate method and prepare the data. It may call some business logic or directly retrieve data from the database.
- The Controller will send ModelAndView(Model data and view name) to DispatcherServlet.
- Once DispatcherServlet receives ModelAndView object, it will pass it to ViewResolver to find appropriate View.
- ViewResolver will identify the view and send it back to DispatcherServlet.
- DispatcherServlet will call appropriate View identified by ViewResolver.
- The View will create Response in form of HTML and send it to DispatcherServlet.
- DispatcherServlet will send the response to the browser. The browser will render the html code and display it to end user.
Below diagram will make it clearer.
I hope you will have a good understanding of How Spring MVC handles the request and send the response back.
I have written some good examples on Spring MVC. Let me list them down here.
Spring MVC basics
Spring MVC hello world example will help you create your first Spring MVC application. It also covers some basic annotations such as @RequestMapping and @Controller.
There is three most important annotation in Spring i.e. @Component, @Service and @Repository. These annotations are used declare appropriate bean based on its nature.
Spring MVC @RequestMapping provides details about an important Spring MVC annotation called @RequestMapping.@RequestMapping annotation is used to map incoming request to appropriate method of controller class.
Spring MVC @RestController annotation is used declare Controller in Spring MVC. It was introduced in Spring 4. When you use @RestController, you don’t need to define @ResponseBody.
Spring MVC @ModelAttribute is used to bind request parameters to model objects.
Spring MVC ModelMap is used to pass multiple values from controller to the view such as JSP.
Spring MVC supports multipart file upload. This example will help you to create simple file upload functionality.
If you want to preprocess or postprocess on incoming request, then you can use Spring MVC interceptor to do it.
Spring MVC Integration
This example will help you to integrate Hibernate with Spring MVC. It shows complete example with the help of CRUD operation.
This example will help you to intergrate angularJS with Spring MVC.
Spring MVC Web services
This example will help you to create a very simple Spring Restful web service.
This example will help you to create Spring Rest web service which produces JSON response.
This example will explain to you how to create Spring rest web services which support CRUD operations.
Spring MVC Exception Handling
There are multiple ways to handle the exception in Spring MVC.
@ExceptionHandler can be used to handle exception which occurs in that controller.
If you want to handle exception globally, then you can use @ControllerAdvice.
That’s all about Spring MVC tutorial.