MVC用于应用程序的分层开发,而在众多的MVC中,springMVC在时代的选择下,成为当今最流行也是最优秀的MVC设计模式。下面,我们一起来看看。
MVC
MVC就是模型-视图-控制器(Model-View-Controller)的缩写。具体的解释如下:
- 模型(Model):负责封装和实现应用程序的具体功能。
- 视图 (View):这个模块负责数据的可视化展示,也就是我们看到的页面中展示的内容。
- 控制器(Controller): 控制器作用于model和view上,用来接收用户的请求,委托model来处理,将处理结果在传给view展示出来,相当于一个中间的调度者。
再来看一张图片,mvc就是这样的一种思路。
这里有两个概念要区分:mvc设计模式和mvc框架
我们上面讲的是mvc设计模型,而对于mvc框架,它强制性的将应用程序输入、处理和输出分开。如果我们要使用MVC框架,则一定要遵守该框架的规则,其实我们可以很容易知道,它所使用的三个核心部件都是来自MVC模型。
模式是框架的基础
举一个简单的简单的例子,我认为mvc设计模式就是工程设计师创作的设计图案,而mvc框架是我们根据图纸建造的建筑物,而这个最终的建筑物有可能增加功能,也有可能削弱某部分功能;总之,最后的的建筑物都是遵循工程设计师的意愿。
SpringMVC
对于Spring的mvc和Struts2都是属于表现层的框架,其mvc是Spring框架的一部分,下面是一张Spring的整体结构图。很明显的就看到mvc的表现层位置。其余的,我们之前的文章也已经有所提及。
DAO:一起来学大数据|Spring的事务管理,一分钱也不能少
AOP:一起来学大数据|Spring之AOP操作,巧夺天功的切面技术
ORM:一起来学大数据|优秀的持久层框架Mybatis,连接数据库快人一步
Core:一起来学大数据|秒懂Spring注解,艾特一下你就明白,这么妙?
Springmvc处理流程
入门程序:使用浏览器显示商品列表
第一步、创建动态web项目
第二步、导入jar包
我们使用的是开发工具是eclipse,需要我们手动导入与springmvc相关的jar包。
第三步、创建配置文件
同样的,在配置文件springmvc.xml中加入约束和配置controller扫描包。
在web.xml中配置前端控制器,在这我们会加载springmvc.xml配置文件以及项目当中以.action为后缀的文件。
第四步、创建JSP页面以及商品pojo
封装之后,我们获取get和set方法。
第五步、创建ItemController
ItemController是一个普通的java类,我们需要在类的上面加上@Controller注解,把Controller交由Spring管理;在方法上面加上@RequestMapping这样的注解,在里面我们指定请求的url。在这里的.action后缀是可以省略的。
第六步、启动服务
将项目加入tomcat并启动,在页面上输入localhost:8080/springmvc-first/itemList.action我们便可以得到一个简单表格。
以上数据只是为了测试,并没任何意义。为什么可以在屏幕上打出这样的表呢?我们需要解析一下springMVC的架构图。
springMVC的架构
- 我们向前端控制器DispatcherServlet发送请求
- DispatcherServlet在接到请求后,开始调用HandlerMapping处理器映射器。
- 处理器映射器会根据我们请求的url找到对应的处理器,生成处理器对象及处理器拦截,之后返回到DispatcherServlet中
- DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
- 执行处理器Controller后端控制器
- Controller执行完成返回ModelAndView
- HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
- DispatcherServlet将ModelAndView传给ViewReslover视图解析器
- ViewReslover解析后返回具体View
- DispatcherServlet对View进行渲染视图
- DispatcherServlet响应用户
组件说明:
在上面的图片中是springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件,就是上面的黄色标注。
而需要我们用户去开发的组件有handler、view,也就是上面的绿色标注。
这就是我们今天讲的springMVC的一些知识点,仅仅只是理论知识,明天我们来看看具体的实例,体验一把真正SpringMVC的优秀。
有帮助到大家的话,记得收藏关注一下哟~
有何不足,请多多指正,虚心请教。
感谢坚持关注的朋友~
世界很大,幸好有你~
欢迎在评论区留下你的问题或困惑,我将每天与你分享我的观点和心得。
聚焦最新科技咨讯,探寻未来智能领域,我是女陶Mario