SpringMVC概述

SpringMVC概述

SpringMVC是什么

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

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

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

SpringMVC在三层架构的位置

在这里插入图片描述

SpringMVC的优势

1、清晰的角色划分:

​ 前端控制器(DispatcherServlet)

​ 请求到处理器映射(HandlerMapping)

​ 处理器配适器(HandlerAdapter)

​ 视图解析器(ViewResolver)

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

​ 验证器(Validator)

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

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

SpringMVC框架的特点是依照模块化的开发,每一个模块可以用什么什么器来表示,等发送到一个请求,会在以上的每一个模块中去执行,每执行到一个模块,这个模块都会赋予一个功能帮他完成一些事情。

SpringMVC和Struts2的优略分析

共同点:

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

它们的底层都离不开原始ServletAPI。使用request和response对象。

它们处理请求的机制都是一个核心控制器。Struts2的核心控制器是过滤器,而SpringMVC的核心控制器是Servlet。

区别:

SpringMVC的入口是Servlet,而Struts2是Filter

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

Struts2的框架是多例的,每次发送一个请求都会创建一个Struts2的框架然后执行方法处理请求。但SpringMVC是单例的,只会创建一个实例对象,等请求到来调用方法处理就行了。

SpringMVC使用更加简洁,同时还支持JSR303,处理ajax的请求更加方便。(JSR303是一套Javabean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们Javabean的属性上面,就可以在需要校验的时候进行校验了。)

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

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

3、由于命令对象就是一个POJO,无需继承框架特定的API,可以使用命令对象直接作为业务对象。

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

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

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

7、功能强大的数据验证、格式化、绑定机制。

8、利用Spring提供的Mock对象能过非常简单的进行Web层单元测试。

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值