mvc设计模式
什么是设计模式
设计模式(Design Pattern)是一套反复使用,多数人知晓的,经过分类的,代码设计经验的总结。
使用设计模式的目的:为了提高代码的可重用性,让代码更容易被他人理解,保证代码可靠性。
设计模式使代码编写真正工程化;
设计模式是软件工程的基石脉络,如同大厦的结构一样。
设计模式就是一种模子,经过多年实践锤炼形成一套行之有效的完成某个特定任务的步骤和方式。
MVC设计模式
MVC设计模式是一种通用的软件编程思想。
在MVC设计模式中认为,任何软件都可以分为三部分组成;
(1)控制程序流转的控制器(Controller)
(2)封装数据处理数据的模型(Model)
(3)负责展示数据的视图(view)
并且在MVC设计思想中要求一个符合MVC设计思想的软件应该保证上面这三个部分相互独立,互不干扰,每一个部分只负责自己擅长的部分。
如果某一个模块发生变化,应该尽量做到不影响其他两个模块,这样做的好处是使软件的结构变得更加的清晰,可读性强,有利于后期的卡扩展和维护,并且代码可以实现复用。
初始SpringMVC
Servlet的缺点
1.通常情况下,一个Servlet类只负责处理一个请求,若项目中有成千上万个请求需要处理,就需要成千上万个Servlet类,这样会使得项目中的Servlet类的个数暴增;
2.在Servlet3.0版本之前,每一个Servlet都需要在web.xml文件中至少做八行配置信息,配置内容多且繁琐。当Servlet特别多时,web.xml配置量太多,不利于团队开发;
3.当通过客户端提交参数到服务器,通过Servlet进行接收时,无论数据本身是什么格式,在Seevlet中一律按照字符串接收,后期需要进行类型转换,复杂类型还需要特殊处理,特别麻烦!
String value = request.getParameter(String name);
4.Servlet具有容器依赖性,必须放在服务器中运行,不利于单元测试。
SpringMVC简介
SpringMVC是Spring框架的一个模块,Spring和SpringMVC无需中间整合层整合
SpringMVC是一个基于MVC的web框架
Spring执行原理
(1)用户发送请求到前端控制器(DIspatcherServlet);
DispatcherServlet的作用:接收请求,调用其他组件处理要求,相应结果,相当于转发器,中央处理器,是整个流程控制的中心。
(2)前端控制器(DispatcherServlet)收到请求后调用处理器映射器(HandlerMapping)找到具体的Controller(可以根据xml配置,注解进行查找),并将Controller返回给DispatcherServlet。
(3)前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。处理器适配器经过适配调用具体的Controller(Controller–>service–>Dao–>数据库),Controller执行完成后返回ModelAndView。
Model(模型数据,即Controller处理的结果,Map) View(逻辑视图名,及负责展示结果的JSP页面的名字)。
处理器适配器(HandlerAdapter)将controller执行的结果(ModelAndView)返回给前端控制器(DispatcherServlet)。
(4)前端控制器(DispatcherServlet)将执行的结果(ModelAndView)传给视图解析器(ViewReslover)。
视图解析器(ViewReslover)根据View(逻辑视图名)解析后返回具体的JSP页面
(5)前端控制器(DispatcherServlet)根据Model对View进行渲染(即将模型数据填充到视图中)。
前端控制器(DispatcherServlet)将填充了数据的页面响应给用户。
整个过程中需要开发人员编写的部分有Controller,Service,Dao,View。