springMVC-springMVC架构

什么是SpringMVC?

其实SpringMVC是于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts2等。

SpringMVC有什么优点?

  1. 1.清晰的角色划分:控制器(controller)、验证器(validator)、命令对象(command obect)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、试图解析器(view resoler)等等。每一个角色都可以由一个专门的对象来实现。

  2. 2.强大而直接的配置方式:将框架类和应用程序累都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器validator)的引用。

  3. 3.可适配、非侵入:可以根据不同的应用场景,选择何事的控制器子类(simple型、command型、from型、wizard型、multi-action型或者自定义),而不是一个单一控制器(比如Action/ActionForm)继承。

  4. 4.可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。

  5. 5.可定制的绑定(binding)和验证(validation):比如将类型不匹配作为应用级的验证错误,这可以保证错误的值。再比如本地化的日期和数字绑定等等。在其他某些框架中,你只能使用字符串表单对象,需要手动解析它并转换到业务对象。

  6. 6.可定制的handler mapping和view resolution:Spring提供从最简单的URL映射,到复杂的、专用的定制策略。与某些web MVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活。

  7. 7.灵活的model转换:在Springweb框架中,使用基于Map的键/值对来达到轻易的与各种视图技术集成。

  8. 8.可定制的本地化和主题(theme)解析:支持在JSP中可选择地使用Spring标签库、支持JSTL、支持Velocity(不需要额外的中间层)等等。

  9. 9.简单而强大的JSP标签库(Spring Tag Library):支持包括诸如数据绑定和主题(theme)之类的许多功能。他提供在标记方面的最大灵活性。

  10. 10.JSP表单标签库:在Spring2.0中引入的表单标签库,使用在JSP编写表单更加容易。

  11. 11.Spring Bean的生命周期可以被限制在当前的HTTp Request或者HTTp Session。准确的说,这并非Spring MVC框架本身特性,而应归属于Spring MVC使用的WebApplicationContext容器。

首先了解下MVC在b/s系统中的应用

第一步:用户发起request请求至控制器(Controller)

第二步:控制器接受用户请求数据给模型进行处理

第三步:控制器通过模型(Model)处理数据并得到处理结果

第四步:模型处理结果返回给控制器

第五步:控制器将模型数据在视图上展示

第六步:控制器将试图响应给用户

注意:

b/s系统中模型无法将数据推送到视图。

SpringMVC架构

架构运作流程:

第一步:发起请求到前端控制器(DispatcherServlet) 

第二步:前端控制器请求HandlerMapping查找 Handler,可以根据xml配置、注解进行查找 

第三步:处理器映射器HandlerMapping向前端控制器返回Handler 

第四步:前端控制器调用处理器适配器去执行Handler 

第五步:处理器适配器去执行Handler 

第六步:Handler执行完成给适配器返回ModelAndView 

第七步:处理器适配器向前端控制器返回ModelAndView 

第八步:前端控制器请求视图解析器去进行视图解析

第九步:视图解析器向前端控制器返回View 

第十步:前端控制器进行视图渲染 

第十一步:前端控制器向用户响应结果

组件说明:

  1. 1.前端控制器DispatcherServlet(不需要程序员开发) 
    作用接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。
  2. 2.处理器映射器HandlerMapping(不需要程序员开发) 
    作用:根据请求的url查找Handler
  3. 3.处理器适配器HandlerAdapter 
    作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
  4. 4.处理器Handler(需要程序员开发) 
    注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
  5. 5.视图解析器View resolver(不需要程序员开发) 
    作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
  6. 6.视图View(需要程序员开发jsp) 
    View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf、Excel…)


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值