SpringMVC学习笔记:SpringMVC概述

SpringMVC

1、SpringMVC是SpringWebMVC的简称
SpringMVC就是Spring框架提供的一个模块,通过实现MVC模式来很好地将数据、业务与展现进行分离,SpringMVC框架的目的是要简化我们日常的Web开发。

SpringMVC框架跟其他的WebMVC框架一样,都是请求驱动,并且设计围绕一个能够分发请求到控制器以及提供其他加快web应用开发功能的核心Servlet(叫做DispatcherServlet,即前端控制器)。
Spring的DispatcherServlet实现比其他框架中还要多的功能。它和spring的ioc容器完全整合,并且允许使用spring中其他的所有功能。

SpringMVC框架设计的一个核心的原则就是"开闭原则",对扩展开放,对修改关闭.所以SpringMVC框架中很多方法都是final的,不允许用户随意覆盖,
但是却提供给用户很多可扩展的机制(springmvc提供了很多接口)。SpringMVC目前已经成为非常流行的web应用的框架。

1)MVC模型(Model-View-Controller)
是一种架构型的模式,本身不引入新功能,只是帮助我们将开发的代码结构,组织的更加合理。

Model(模型)
数据模型,提供要展示的数据,因此包含数据和行为,行为是用来处理这些数据的。不过现在一般都分离开来:Value Object(数据) 和 服务层(行为)。
也就是数据由实体类或者javabean来提供,行为由service层来提供.

View(视图)
负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器)
接收用户请求,委托给模型进行处理,处理完毕后把返回的模型数据交给给视图。也就是说控制器在中间起到一个调度的作用。

注意:在标准的MVC中,模型能主动推数据给视图进行更新(可以采用观察者设计模式实现,在模型上注册视图,当模型更新时自动更新视图),
但在Web开发中模型是无法主动推给视图,即无法主动更新用户界面,因为在Web的访问是请求-响应的模式。必须由客户端主动发出请求后,服务器才能把数据返回。

2)WebMVC概念
Web中MVC里面的模型-视图-控制器的概念和标准MVC概念一样,但是在Web MVC模式下,模型无法【主动】推数据给视图,如果用户想要视图更新,需要再发送一次请求(即请求-响应模型)。

在我们之前的学习中,其实就是把Servlet作为Controller(控制器),把jsp作为View(视图),把javabean作为Model(模型)中的数据,service层作为Model(模型)中的行为.

注意:MVC和三层架构的区别

2、SpringMVC框架的获取
由于SpringMVC是Spring框架中的一个模块,所以我们下载Spring框架即可,因为里面包含了Spring框架的各个模块的相关东西,当然也包含了SpringMVC的.(jar包、API文档、源代码)

可以去官网上下载相关jar包

		spring-aop-4.3.7.RELEASE.jar
		spring-aspects-4.3.7.RELEASE.jar
		spring-beans-4.3.7.RELEASE.jar
		spring-context-4.3.7.RELEASE.jar
		spring-context-support-4.3.7.RELEASE.jar
		spring-core-4.3.7.RELEASE.jar
		spring-expression-4.3.7.RELEASE.jar
		spring-instrument-4.3.7.RELEASE.jar
		spring-instrument-tomcat-4.3.7.RELEASE.jar
		spring-jdbc-4.3.7.RELEASE.jar
		spring-jms-4.3.7.RELEASE.jar
		spring-orm-4.3.7.RELEASE.jar
		spring-oxm-4.3.7.RELEASE.jar
		spring-struts-4.3.7.RELEASE.jar
		spring-test-4.3.7.RELEASE.jar
		spring-tx-4.3.7.RELEASE.jar
		spring-web-4.3.7.RELEASE.jar
		spring-webmvc-4.3.7.RELEASE.jar
		spring-webmvc-portlet-4.3.7.RELEASE.jar

3、SpringMVC框架的核心组件
1)DispatcherServlet: 前端控制器,用来过滤客户端发送过来,想要进行逻辑处理的请求。

2)Controller/Headler: 控制器/处理器。开发人员自定义,用来处理用户请求的,并且处理完成之后返回给用户指定视图的对象。

3)HandlerMapping: 处理器映射器。DispatcherServlet接收到客户端请求的URL之后,根据一定的匹配规则,再把请求转发给对应的Handler,这个匹配规则由HandlerMapping决定。

4)HandlerAdaptor:处理器适配器。处理器适配器用来适配每一个要执行的Handler对象。通过HandlerAdapter可以支持任意的类作为处理器

5)ViewResolver:视图解析器。Handler返回的是逻辑视图名,需要有一个解析器能够将逻辑视图名转换成实际的物理视图。而且Spring的可扩展性决定了视图可以由很多种,所以需要不同的视图解析器,解析不同的视图。但是一般由jsp充当视图的情况居多

SpringMVC框架提供一个核心的Servlet对象(DispatcherServlet,前端控制器)来对服务器接收到的请求进行解析,
当这个请求被DispatcherServlet获取到之后,DispatherServlet需要根据HandlerMapping对象的映射关系,将这个请求转交给真正能够处理客户端请求的Controller控制器(我们要写的就是这个东西,相当于之前的servlet)来处理。
Controller处理完成后返回ModelAndView对象,也就是模型和视图的结合体。
ViewResolver视图解析器根据ModelAndView中的逻辑视图名找到真正的物理视图,同时使用ModelAndView中模型里面的数据对视图进行渲染。
最后把准备好的视图展现给用户

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值