1.spring mvc架构
1.1 spring mvc 介绍
springmvc和struts都属于表现层的东西框架,他是spring框架的分支,我们从spring的整体结构中可以看出
1.2 web mvc
web mvc设计模式在b/s系统下的应用:
1. 用户发起请求到contorller控制器.控制接受用户数据,委托给model处理
2. 控制器通过模型,获取数据并得到处理结果,模型常指的是业务逻辑
3. 模型返回结果到控制器
4. 控制器将模型数据在试图(view)中展示,web中无法将数据直接在视图上展示,需要通过控制器完成,如果在c/s应用模型 下可以将数据直接显示在视图中的
5.控制器将视图response响应给用户,通过视图展示给用户数据或处理结果
1.3 spring mvc 的架构解析
1.3.1 架构图
1.3.2 架构流程
1.用户请求被DispatchServlet拦截
2.DispatchServlet收到请求,调用处理器映射器(HandlerMapping)
3. 处理器映射器根据url找到具体的处理器,生成处理器对象及处理器拦截 器( 如果有的话),一起返回给DispatchServlet
4.DispatchServlet通过处理器适配器(HandlerAdapter)调用处理器
5.执行处理器(Contorller)后端控制器(自己的action类)
6.Contorller执行完成后返回ModelAndView
7.HandlerAdpter将Contorller执行结果ModelAndView返回 DispatchServlet
8.DispatchServlet将ModelAndView传给ViewReslover(视图解析器)
9.ViewReslover解析后返回具体View,给DispatchServlet
10.DispatchServlet对view进行解析,将模型数据封装到视图中
11.DispatchServlet响应给用户
1.3.3 组件说明
以下的组件通常是由框架提供的:
DispatchServlet :前端控制器
$-用户的请求到达前端控制器,它相当于mvc中的c,DispatchServlet是真个流程的控制中心,由它调用其他组件为用户提供服务,DispatchServlet降低了组件之间的耦合性
HandlerMapping:处理器映射器
$-Handlermapping根据客户的请求找到Handler即处理器,其实现方式有多种,xml,接口,注解等
Handler :处理器
$-handler相当于后端控制器,在DispatchServlet的控制下对具体的请求作出相应,由于handler设计了具体的用户的业务请求,所以一般我们来编写(相当于strus的action)
HandlerAdapter :处理器适配器
$-通过HandlerAdapter对处理器处理,这是适配器模式的使用,通过扩展适配器可以对更多的类型进行处理
ViewResolver :视图解析器
$-ViewResolver 负责处理结果生成view视图,view Resolver根据逻辑视图名解析成物理视图名即具体的页面地址,再生成view对象,最后对页面进行渲染.展示给用户,springmvc提供的许多的视图解析器,如jstljspview freemarkeview pdfview 等一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。