您的位置:首页 > 编程语言 > Java开发

SpringMVC框架入门

2016-06-01 15:06 232 查看

 Spring  mvc介绍

 

Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来:

 

 

 

 

Web MVC

 WebMVC的工作流程大概是以下几个步骤

1、  用户发起request请求至控制器(Controller)控制接收用户请求的数据,委托给模型进行处理

2、  控制器通过模型(Model)处理数据并得到处理结果模型具有业务逻辑

3、  模型处理结果返回给控制器

4、  控制器将模型数据在视图(View)中web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。

5、  控制器将视图响应给用户通过视图展示给用户要的数据或处理结果。



SpringMVC架构图



 架构流程

1、  用户发送请求至前端控制器DispatcherServlet
2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器查找Handler。

HandlerMapping可以根据xml配置、注解配置进行查询。

3、 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、  DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

处理器在实际开发中习惯称为controller(另一种说法处理器是后端控制器,最终调用service进行业务处理)。

5、  HandlerAdapter调用处理器Handler
6、  Handler执行完成返回ModelAndView

ModelAndView:是springmvc的封装对象,将模型和视图封装在一个对象中。

7、  HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet
8、  DispatcherServlet将ModelAndView传给ViewReslover视图解析器,ViewReslover根据逻辑视图名解析View

逻辑视图名:如果指定具体 的jsp完整地址不方便,将完整的地址简化为逻辑的视图名。

view:是一个接口,接口实现了很多类型的view(比如:jstlView、pdfView、freemarker、报表的view)

ViewReslover:不同的视图解析器可以解析出上边不同的view.

9、  ViewReslover返回View
10、DispatcherServlet对View进行渲染视图(即将模型数据填充至request域)。
11、DispatcherServlet响应用户

组件说明

以下组件通常使用框架提供实现:

DispatcherServlet:前端控制器

职责:接收请求、响应结果给用户。

用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

DispatcherServlet不需要程序员开发,由springmvc提供了。

HandlerMapping:处理器映射器

职责: 根据请求url查找Handler。

HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。
Handler:处理器

职责:根据业务需求开发。

Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。
最终开发Handler调用service进行业务处理,企业中开发中就称为controller。

开发Handler应用根据HandlerAdapter的要求去开发。

 HandlAdapter:处理器适配器

职责:执行Handler

通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
ViewResolver:视图解析器

职责:根据逻辑视图名生成不同的View。

View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。 springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等。
一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

View视图

是一个接口,框架提供了jstlView、pdfView等实现。

职责:提供视图渲染方法,将model数据填充到request中。

具体的组件详细解析可以参考http://blog.sina.com.cn/s/blog_667ac0360102ed6h.html

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: