springmvc也是一个用于后台开发的一个轻量级框架,springmvc是spring的一个模块,提供web层解决方案(基于mvc设计架构)


spring mvc 使用 jackson spring mvc handler_视图解析器


mvc是一个设计模式,在b/s系统的应用框图简介:

spring mvc 使用 jackson spring mvc handler_mvc_02


springmvc的架构简图:

spring mvc 使用 jackson spring mvc handler_视图解析器_03

主要运行顺序:

第一步:用户发起request请求,请求至DispatcherServlet前端控制器

第二步:DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler

               DispatcherServlet:前端控制器,相当于中央调度器,各各组件都和前端控制器进行交互,降低了各各组

件之间耦合度。

第三步:HandlerMapping处理器映射器,根据url及一些配置规则(xml配置、注解配置)查找Handler,将Handler返

回给DispatcherServlet前端控制器

第四步:DispatcherServlet前端控制器调用适配器执行Handler,有了适配器通过适配器去扩展对不同Handler执行方

式(比如:原始servlet开发,注解开发)

第五步:适配器执行Handler

                   Handler是后端控制器,当成模型。

第六步:Handler执行完成返回ModelAndView

                   ModelAndView:springmvc的一个对象,对Model和view进行封装。

第七步:适配器将ModelAndView返回给DispatcherServlet 

第八步:DispatcherServlet调用视图解析器进行视图解析,解析后生成view

                   视图解析器根据逻辑视图名解析出真正的视图。

                   View:springmvc视图封装对象,提供了很多view,jsp、freemarker、pdf、excel。。。                  

第九步:ViewResolver视图解析器给前端控制器返回view

第十步:DispatcherServlet调用view的渲染视图的方法,将模型数据填充到request域。

第十一步:DispatcherServlet向用户响应结果(jsp页面、json数据。。。。)


处理器映射器、处理器适配器、视图解析器为重点

DispatcherServlet:前端控制器,由springmvc提供

HandlerMappting:处理器映射器,由springmvc提供

HandlerAdapter:处理器适配器,由springmvc提供

Handler:处理器,需要程序员开发 

ViewResolver:视图解析器,由springmvc提供

View:真正视图页面需要由程序编写




入门程序编写:

jar包引入及工程搭建

jar包:

spring mvc 使用 jackson spring mvc handler_spring_04

工程结构:

spring mvc 使用 jackson spring mvc handler_视图解析器_05

配置文件(web.xml springmvc.xml)

spring mvc 使用 jackson spring mvc handler_spring_06

注:springmvc.xml配置文件前必须加classpath,否则会报错

class path resource [springmvc.xml] cannot be opened because it does not exist

ps:虽然本人写这个入门程序时加了classpath,但还是报这个错误,用的开发工具是JDK1.7.0_72+

eclipse-3.7-indigo+apache-tomcat-7.0.53 ,无论我怎么修改配置文件的路径都还是报同样的错误。将工程

重新在myeclipse中搭建时,运行正常,这个问题还是无法理解

pps:我是重装了eclipse运行正常了才来写这篇博客的

spring mvc 使用 jackson spring mvc handler_视图解析器_07


handler(controller)

第一个:

spring mvc 使用 jackson spring mvc handler_mvc_08

第二个:

spring mvc 使用 jackson spring mvc handler_mvc_09

第三个:

spring mvc 使用 jackson spring mvc handler_视图解析器_10



1、DispatcherServlet通过HandlerMapping查找Handler

2、DispatcherServlet通过适配器去执行Handler,得到ModelAndview

3、视图解析 视图解析完成得到一个view

4、进行视图渲染 将Model中的数据填充到request域。