第1章 SpringMVC的基本概念

1 关于三层架构和MVC

(1)三层架构

(2)MVC设计模型

   M Model模型(JavaBean的一个对象)

              通常指的就是我们的数据模型。作用一般情况下用于封装数据。

   V  View视图(JSP)

              通常指的是我们的jsp或者html。作用一般就是展示数据的。

  C Controller控制器(Servlet能够接受请求)

              是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。

2. SpringMVC概述

(1)SpringMVC是什么

SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于Spring FrameWork的后续产品,已经融合在Spring Web Flow里面。Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC 框架或集成其他MVC开发框架,如Strust1(现在一般不用了),Strusts2等。

SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Strusts2,成为最优秀的MVC框架。

它有一套注解让一个简单的Java类成为处理请求的控制器,而无须实现任何接口,同时它还支持RESTful编程风格。

(2)SpringMVC的优势

<1>清晰的角色划分

              前端控制器(DispatcherServlet)

              请求到处理器映射(HandlerMapping)

              处理器适配器(HandlerAdapter)

              视图解析器(ViewResolver)

              处理器或页面控制器(Controller)

              验证器(Validator)

              命令对象(Command 请求参数绑定到的对象就叫命令对象)

              表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)

<2>. 分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要。

<3>. 由于命令对象就是一个POJO,无需集成框架特定API,可以使用命令对象直接作为业务对象。

<4>. 和Spring其他框架无缝集成,是其它Web框架所不具备的。

<5>. 可适配,通过HandlerAdapter可以支持任意的类作为处理器。

<6>. 可定制性,HandlerMapping,ViewResolver等能够非常简单的定制。

<7>. 功能强大的数据验证,格式化,绑定机制。

<8>. 利用Spring提供的Mock对象能够非常简单的进行Web层单元测试。

<9>. 本地化,主题的解析的支持,使我们更容易进行国际化和主题的切换。

<10>. 强大的JSP标签库,使JSP编写更容易。

-------------还有比如RESTful风格的支持,简单的文件上传,约定大于配置的契约式编程支持,基于注解的零配置支持等等。

(3) SpringMVC和Struts2的优劣分析

共同点:

              它们都是表现层框架,都是基于MVC模型编写的。

              它们的底层都离不开原始的ServletAPI。

              它们处理请求的机制都是一个核心控制器。

区别:

              SpringMVC的入口是Servlet,而Struts2是Filter

              SpringMVC是基于方法设计的,而Struts2是基于类,Struts2每次执行都会创建一个动作类。所以SpringMVC会稍微比Struts2快些。

              SpringMVC使用更加简洁,同时还支持JSR303,处理ajax的请求更方便。

              Struts2的GNL表达式使页面的开发效率相比SpringMVC更高些,但执行效率并没有比JSTL提升,尤其是struts2的表单标签,远没有html执行效率高。

发布了98 篇原创文章 · 获赞 18 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/chpllp/article/details/104658547