SpringMVC的工作原理

简介:

一、spring简介  

  springMVC是spring框架的一个模块,springMVC和spring无需通过中间整合层进行开发。

      springMVC是一个基于mvc的web框架。

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

 

 

二、MVC在B/S系统中的应用

 

1.用户发起request请求至控制器(Controller)

  控制接收用户请求的数据,委托给模型进行处理

2.控制器通过模型(Model)处理数据并得到处理结果

  模型通常是指业务逻辑

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

4.控制器将模型数据在视图(View)中展示

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

5.控制器将视图response响应给用户

      通过视图展示给用户要的数据或处理结果。

 

三、spring工作原理

 

(1).发起请求到前端控制器(DispatcherServlet);

(2).前端控制器请求HandlerMapping查找Handler,可以根据xml配置、注解进行查找;

(3).处理器映射器HandlerMapping向前端控制器返回Handler;

(4).前端控制器调用处理器适配器去执行Handler;

(5).处理器适配器去执行Handler;

(6).Handler执行完成给适配器返回ModelAndView;

(7).处理器适配器向前端控制器返回ModelAndView(是springmvc框架的一个底层对象,包括Model和View);

(8).前端控制器请求视图解析器去进行视图解析,根据逻辑视图名称解析真正的视图(jsp...);

(9).视图解析器向前端控制器返回View;

(10).前端控制器进行视图渲染,视图渲染就是将模型数据(在ModelAndView对象中)填充到request域中。

(11).前端控制器向用户响应结果。

  

 

四、组件介绍

1、前端控制器DispatcherServlet(不需要攻城狮开发),由框架提供

  作用:接收请求,响应结果,相当于转发器,中央处理器。有了dispatcherServlet减少了其它组件之间的耦合度。

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

2、处理器映射器HandlerMapping(不需要攻城狮开发),由框架提供

  作用:根据请求的url查找Handler

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

3、处理器适配器HandlerAdapter

  作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

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

4、处理器Handler(需要攻城狮开发)

  注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

     Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。

     由于Handler涉及到具体的用户业务请求,所以一般情况需要攻城狮根据业务需求开发Handler。

5、视图解析器View resolver(不需要攻城狮开发),由框架提供

  作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

  View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。 springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等。

  一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由攻城狮根据业务需求开发具体的页面。

6、视图View(需要攻城狮开发jsp...)

  View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)



本文转自lzwxx 51CTO博客,原文链接:http://blog.51cto.com/13064681/1944364

相关文章
|
3月前
|
前端开发 Java 应用服务中间件
SpringMvc拦截器和手写模拟SpringMvc工作流程源码详解
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。 M: Model,模型层,指工程中的JavaBean,作用是处理数据。 JavaBean分为两类: 1.实体类Bean:专门存储业务数据的,如Student User等 2.业务处理Bean:指Service或Dao对象,专门用于处理业务逻辑和数据访问。
|
4月前
|
设计模式 开发框架 前端开发
SpringMVC原理分析 | Hello程序
SpringMVC原理分析 | Hello程序
21 0
|
10月前
|
设计模式 XML JSON
springMVC 工作原理和流程
springMVC 工作原理和流程
73 0
springMVC 工作原理和流程
|
存储 搜索推荐 前端开发
SpringMVC工作原理详解
SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层实现的是Servlet接口。
215 0
SpringMVC工作原理详解
|
存储 前端开发 Java
springMvc简要总结
springMvc简要总结
96 0
|
XML 设计模式 前端开发
springMvc43-springMVC运行原理
springMvc43-springMVC运行原理
83 0
springMvc43-springMVC运行原理
|
设计模式 XML 前端开发
Springmvc:框架原理
Springmvc:框架原理
89 0
Springmvc:框架原理
|
设计模式 JSON 前端开发
springmvc(一) springmvc框架原理分析和简单入门程序
springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~
335 0
springmvc(一) springmvc框架原理分析和简单入门程序
|
前端开发
SpingMVC的工作原理,就是这么简单
用了这么久的SpingMVC,她的工作流程还是要搞清楚。 一、springmvc流程先上一张手绘流程图吧, SpingMVC的工作原理,就是这么简单1、客户端发起请求到前端控制器(DispatcherServlet); 2、前端控制器请求处理器映射器(HandlerMappering)通过xml配...
1330 0