在使用spring mvc以前,咱们首先要理解咱们为何要使用spring mvc。关于这个问题咱们能够看一下java web的简单发展过程。前端
1. servlet 开发阶段java
上世纪90年代,随着Internet和浏览器的飞速发展,基于浏览器的B/S模式随之火爆发展起来。sun提出了Servlet体系,这个体系使得使用java程序员也能开发基于B/S架构的WEB应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各类WEB应用方案。jquery
使用Servlet的一个问题是页面的输出经过Servlet类返回,这使得开发没法方便的作到各类页面效果和丰富多彩的风格。程序员
因而sun借鉴asp推出了jspweb
2.jsp 开发阶段ajax
推出了jsp后,JAVA程序员也能象ASP的程序员那样将服务端代码添加在已经由美工设计好的静态页面上,通过一个JSP容器对JSP文件进行自动解析并转换成Servlet类来交给WEB服务器运行。jsp理解就是先设计显示页面,再将显示页面转成servlet输出。spring
使用jsp提升了开发效率,但仍是存在一些问题:首先页面中有大量的java逻辑代码,前端美工在维护是不得不考虑这些逻辑代码,而java程序员在维护java代码是不得不考虑前端的显示逻辑。后端
因而sun推出了mvc模式浏览器
3.mvc开发阶段服务器
mvc模式将程序分为三个模块:数据模块(model)、业务逻辑模块(controller),显示模块(view)。业务逻辑模块(controller)接受请求,处理业务逻辑,最终生成数据(model),显示模块(view)接受数据(model)渲染页面展现,最终返回显示内容。
spring mvc的本质也就是将业务逻辑处理和显示渲染分离开来,经过数据模块进行关联。
题外话
早期WEB应用程序页面的现实主要经过服务器返回显示页面,浏览器只负责渲染。但随着前端技术的发展尤为是js、ajax、jquery等技术的发展。这些前端技术基本上已经承担了页面显示和控制的功能,然后端只负责业务逻辑和返回显示数据,这种模式下view和controller就已经分离。spring mvc随着版本的迭代,也发送了不少变化,如今的spring mvc框架,除了本来的mvc分离目的外,相对servlet仍是提供了不少有用的功能,便于开发。