SpringMVC前言--三层架构

SpringMVC框架

三层架构和MVC

  1. 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序。
  2. 使用Java语言基本上都是开发B/S架构的程序,B/S架构又分成了三层架构
  3. 三层架构
    • 表现层:WEB层,用来和客户端进行数据交互的。表现层一般会采用MVC的设计模型
    • 业务层:处理公司具体的业务逻辑的
    • 持久层:用来操作数据库的
  4. MVC模型
    MVC全名是Model View Controller 模型视图控制器,每个部分各司其职。
    • Model:数据模型,JavaBean的类,用来进行数据封装。
    • View:指JSP、HTML用来展示数据给用户
    • Controller:用来接收用户的请求,整个流程的控制器。用来进行数据校验等。

SpringMVC的概述

  1. SpringMVC的概述
    是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架。

  2. Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。

  3. 使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts2等。

  4. SpringMVC在三层架构中的位置
    在这里插入图片描述

      - 表现层框架
    
  5. SpringMVC的优势

    • 清晰的角色划分:
      - 前端控制器(DispatcherServlet)
      - 请求到处理器映射(HandlerMapping)
      - 处理器适配器(HandlerAdapter)
      - 视图解析器(ViewResolver)
      - 处理器或页面控制器(Controller)
      - 验证器( Validator)
      - 命令对象(Command 请求参数绑定到的对象就叫命令对象)
      - 表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
    • 分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要。
    • 由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象。
    • 和Spring 其他框架无缝集成,是其它Web框架所不具备的。
    • 可适配,通过HandlerAdapter可以支持任意的类作为处理器。
    • 可定制性,HandlerMapping、ViewResolver等能够非常简单的定制。
    • 功能强大的数据验证、格式化、绑定机制。
    • 利用Spring提供的Mock对象能够非常简单的进行Web层单元测试。
    • 本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
    • 强大的JSP标签库,使JSP编写更容易。 ………………还有比如RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。
  6. SpringMVC和Struts2框架的对比

    • 共同点: 它们都是表现层框架,都是基于MVC模型编写的。 它们的底层都离不开原始ServletAPI。 它们处理请求的机制都是一个核心控制器。
    • 区别: Spring MVC 的入口是 Servlet, 而 Struts2 是 Filter Spring MVC 是基于方法设计的,而Struts2是基于类,Struts2每次执行都会创建一个动作类。所以Spring MVC 会稍微比 Struts2 快些。 Spring MVC 使用更加简洁,同时还支持 JSR303, 处理 ajax 的请求更方便 (JSR303 是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面,就可以在需要校验的时候进行校验了。) Struts2 的OGNL 表达式使页面的开发效率相比Spring MVC 更高些,但执行效率并没有比JSTL提升,尤其是struts2的表单标签,远没有html执行效率高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值