MVC介绍
MVC是什么
mvc是一种使用MVC(Model View Controller) 设计创建Web应用程序的模式
Model(模型) 表示程序核心计算
View(视图) 展示数据
Controller (控制器) 处理输入
常用的MVC框架
比较常用的MVC框架有Struts 和 Spring MVC
Struts是java Web MVC框架中不争的王者。经过长达九年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。但是Struts某些技术特性上已经落后于新兴的MVC框架。面对spring MVC 、webwork2 这些设计更精密,拓展性更强的框架,struts收到了前所未有的挑战。
Spring MVC 通过一套MVC注解,让POJO成为处理请求的控制器,无须实现任何接口,同时,Spring MVC 还支持REST风格的URL请求,注解驱动和REST风格的Spring MVC 是spring3.0最出彩的功能之一。此外,spring MVC 在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现。它在框架设计、扩展性、灵活性等方面全面超越了Struts、Webwork等MVC框架,从原来的追赶着一跃成为MVC的领跑者。
MVC模式的优缺点
优点:
耦合性低
重用性高
生命周期成本低
部署快
可维护高
有利软件工程化管理
缺点:
没有明确的定义
不适合小型,中等规模的应用程序
增加系统结构和实现的复杂度
视图与控制器的连接过于紧密
视图对模型数据的访问效率低
一般高级的界面工具或构造器不支持模式
SpringMVC简介
和众多的MVC框架一样,它基于MVC设计理念,此外,它采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。
spring MVC 在数据绑定、视图解析、本地化处理及静态资源处理上有许多不俗的表现。
spring MVC 框架围绕DispatcherServlet 这个核心类展开,DispatcherServlet是spring MVC的总导演、总策划,它负责截获请求并将其分配给指定的处理器处理。
SpringMVC体系结构
spring MVC是基于model2实现的技术框架
DispatcherServlet类
配置DispatcherServlet
要使用SpringMVC,必须在web.xml中配置DispatcherServlet类
图5
DispatcherServlet有一些配置参数,默认情况下我们不用指定,如果需要可通过<servlet>的<init-param>指定:
namespace
contextConfigLocation
publishContext
publishEvents
图6
DispatcherServlet的体系结构
DispatcherServlet类的运行体系:
DispatcherServlei的核心本质:是一个Servlet
init方法在整个系统启动时运行,且只运行一次
service方法在系统运行的过程中处于监听模式,监听并处理所有的Web请求
图7
DispatcherServlet类的继承体系:
依次继承FrameworkServlet和HttpServLetBean
HttpServletBean是Spring对于Servlet最低层次的抽象
FrameworkServlet则是在HttpServletBean的基础之上的进一步抽象。通过FrameworkServlet真正初始化了一个Spring的容器(WebApplicationContext),并引入到Servlet对象之中
DispatcherServlet通过initStrategies方法查找并装备Spring容器中用户定义的组件Bean