Spring MVC-基本概念

1、web应用开发框架

MVC能够克服所有的问题如果我们可以从Bussiness logic(通过一些可以产生数据的逻辑)分离出Presentation(UI building code)。

Spring MVC-基本概念_第1张图片

有了Spring MVC,你只需写简单的POJO代码(如图所示,用POJO实现Controller),或者实现Spring MVC给你提供的接口(比如实现Interceptor做权限判断),就能完成这些繁琐的功能。

POJOPlain Old Java Object的缩写,是软件开发大师Martin Fowler提出的一个概念,指的是一个普通Java类。也就说,你随便编写一个Java类,就可以称之为POJO。之所以要提出这样一个专门的术语,是为了与基于重量级开发框架的代码相区分。

2、MVC

M odel 用于封装与业务逻辑相关的数据与数据处理方法

V iew 数据的HTML的展现

C ontroler 负责响应请求,协调modelview

Spring MVC-基本概念_第2张图片

ModelViewController的分开,是一种典型的关注点分离的思想,不仅使得代码复用性和组织性更好,使得Web应用的配置性和灵活性更好。

MVC开发模式下,Java Web开发会遇到URL路由、模板渲染、表单绑定/提交/验证、Session封装、权限验证、国际化等一系列通用的问题,而MVC框架会将这些通用问题都封装进框架中,你在应用中根据自己的场景进行简单的配置和编码即可,MVC框架就能帮你处理好一切,可以极大地简化代码

3、The process from

Spring MVC-基本概念_第3张图片

1) DispatcherServlet receives the request.发起请求到前端控制器(DispatcherServlet

2)DispatcherServlet dispatches the task of selecting an appropriate controller to HandlerMappingHandlerMapping selects the controller which is mapped to the incoming request URL and returns the (selected Handler) and Controller to DispatcherServlet.前端控制器请求HandlerMapping查找Handler,可以根据xml配置、注解进行查找,处理器映射器HandlerMapping向前端控制器返回Handler

3)DispatcherServlet dispatches the task of executing of business logic of Controller to HandlerAdapter.前端控制器调用处理器适配器(HandlerAdapter)去执行Handler

4)HandlerAdapter calls the business logic process of Controller.处理器适配器去执行Handler

5)Controller executes the business logic, sets the processing result in Model and returns the logical name of view to HandlerAdapter. Handler执行完成后给适配器返回ModelAndView ,处理器适配器向前端控制器返回ModelAndViewModelAndViewspringMVC的一个底层对象,包括了ModelView

6)DispatcherServlet dispatches the task of resolving the View corresponding to the View name to ViewResolverViewResolver returns the View mapped to View name

7)DispatcherServlet dispatches the rendering process to returned View.前端控制器请求视图解析器(ViewResolver)进行视图解析,根据逻辑视图名解析成真正的视图(jsp

视图解析器向前端控制器返回真正的视图View

8)View renders Model data and returns the response.前端控制器请求进行视图渲染,视图渲染将模型数据(在ModelAndView)填充到request域然后响应

MVC

你可能感兴趣的:(java,互联网)