SpirngMVC:为Spring提供了Web应用的MVC模块

一、什么是MVC模式?

MVC:MVC是一种设计模式。
MVC的原理图:
请添加图片描述
解释:
M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)
V-View 视图(做界面的展示 jsp,html……)
C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)

二、什么是SpringMVC?

SpringMVC是一个MVC开源框架,SpringMVC = Struct2 + Spring ,SpringMVC相当于Struts2加上Spring的整合,这里有一个疑问就是,SpringMVC和Spirng有什么关系呢?这个在百度百科上有一个很好的解释:意思就是说,SpringMVC是Spring的一个后续产品,其实就是在Spring原有的基础之上,又提供了Web应用的MVC模块,可以简单得把SpringMVC理解成为是Spring的一个子模块(类似于IOC,AOP这样的模块),网络上经常有人说SpringMVC和Spirng无缝集成,其实SpringMVC就是Spring的一个子模块,所以根本不需要同Spring进行整合。

三、SpringMVC的工作原理

我们先来看一张图
请添加图片描述
解释:
1、用户发送请求至前端控制器DispatcherServlet.
2、DispatcherServlet收到用户的请求之后调用HandlerMapping处理器映射器.
3、HandlerMapping处理器映射器根据配置或者是注解找到最终要执行的Handler处理器(这里的Handler处理器其实也就是Controller,也叫后端控制器。),并生成处理器对象及处理器拦截器(如果有则生成)一并返回给Dispatcher.
4、DispatcherServlet调用HandlerAdapter处理器适配器。
5、HandlerAdapter处理器适配器根据特定的HandlerAdapter处理器适配器要求的规则执行不同类型的Handler处理器。
6、Handler(Controller)执行完后返回一个ModelAndView给HandlerAdapter处理器适配器。
7、HandlerAdapter处理器适配器将Controller执行返回的结果ModelAndView返回给DispatcherServlet.
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、ViewReslover视图解析器根据逻辑视图名解析成物理视图名(具体的页面地址),再生成View视图对象,包括(JstlView、FreemarkerView、PdfView等),再返回给DispatcherServlet。
10、DispatcherServlet根据View将模型数据填充到视图中,既进行视图渲染。
11、DispatcherServlet响应用户

四、Spirng工作原理中各组件的作用

组件:
1、前端控制器DispatcherServlet(不需要工程师开发),由框架提供。
作用:接收请求,响应结果,相当于转发器,中央处理器。
解释:用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它 调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

2、处理器映射器HandlerMapping(不需要工程师开发),由框架提供。
作用:根据配置或者是注解找到最终要执行的Handler处理器(这里的Handler处理器其实也就是Controller,也叫后端控制器。),并生成处理器对象及处理器拦截器(如果有则生成)一并返回给Dispatcher.SpringMVC提供了不同的映射方式如,配置文件方式、注解方式、师兄接口方式等。

3、处理器适配器HandlerAdapter
作用:HandlerAdapter处理器适配器根据特定的HandlerAdapter处理器适配器要求的规则执行不同类型的Handler处理器,其中Handler(Controller)执行完后返回一个ModelAndView给HandlerAdapter处理器适配器,可以通过拓展适配器可以对更多类型的处理器进行执行。

4、处理器Handler(需要工程师开发)
解释:Handler 是继DispatcherServlet前端控制器的后端控制器, 在DispatcherServlet的控制下Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况需要工程师根据业务需求开发Handler。
这里有一个需要注意的点:编写Handler时按照HandlerAdapter的要求去做, 这样适配器才可以去正确执行Handler。

5、视图解析器View Resolver(不需要工程师开发),由框架提供。
作用:ViewReslover视图解析器根据逻辑视图名解析成物理视图名(具体的页面地址),再生成View视图对象,SpringMVC框架提供了很多的View类型中,其中包括JstlView、FreemarkerView、PdfView等,再返回给DispatcherServlet。

6、View:View是一个接口,其实现支持不同的View类型,SpringMVC框架提供了很多的View类型中,其中包括JstlView、FreemarkerView、PdfView等。

关于SpringMVC的工作原理是挺复杂的,但是也不难理解!

五、SpringMVC常用的注解有哪一些?

@RequestMapping:用于处理用户请求的URL映射的注解,该注解可用于类上,也可以用于方法上。如果在类上表示类中的所有请求的方法都是以该地址作为父路劲的。

@RequestBody:该注解用于实现接收HTTP请求的JSON数据,并将传过来的Json数据转换为Java对象。

@ResponseBody:该注解实现将Controller方法中返回的对象自动转化为Json对象响应给用户。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值