SpringMVC简介
SpringMVC也叫SpringWebMVC,属于展示层框架,是Spring框架的一部分。
SpringWebMVC提供了MVC架构和用于开发灵活、松耦合的Web应用程序的组件。MVC模式导致应用程序的不同方面(输入、业务、UI)分离,同时提供这些元素直接的松耦合。
SpringMVC的MVC各部分功能如下:
- 模型(model):封装了应用程序数据,通常由POJO类组成
- 视图(view) :复杂渲染模型数据,一般来说它生成客户端浏览器可以解释的HTML输出
- 控制器(controller):负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染
DispatcherServlet
Servlet的缺点
配置不灵活:每创建一个Servlet都需要到web.xml中配置一次(Servlet,ServletMap)
使用不灵活:每个Servlet只能默认调用doGet或doPost方法,有多个业务逻辑时,需要使用RRL传参数的方式进行调用,如:?opts=add
,然后在doGet或doPost中解析方法名进行调用。如果想直接通过访问WebAPI或者URL调用方法,就需要给方法再创建Servlet。
SpringMVC的DispatcherServlet
SpringMVC框架是围绕DispatcherServlet设计的,他处理的所有HTTP请求(get,post,put,delete,connect,options,patch,propfind,proppatch,mkcol,copy,move,lock,unlock,trace,head)
DispatcherServlet的工作流程
- 浏览器发出Request请求到Spring的DispatcherServlet
- DispatcherServlet将该请求转发给HandlerMapping模块,从HandlerMapping中查询到请求对应的controller后返回给DispatcherServlet
- DispatcherServlet把Request请求发送给对应的Controller
- Controller对请求进行业务处理后,返回Model(数据)或View的逻辑名称(视图)
- DispatcherServlet把View的逻辑名称传给ViewResolver(view解析器),解析器结合配置文件等解析出逻辑名称对应的实际View资源(如果jsp,静态资源等)路径,返回给DispatcherServlet
- DispatcherServlet根据实际路径找到View
- DispatcherServlet把Model数据传递给View视图生成最终视图,并把最终视图返回给浏览器显示
**说明:**HandlerMapping、Controller、ViewResolver等组件是WebApplicationContext的一部分,是普通ApplicationContext的扩展,带有Web应用程序所需的一些额外功能。