一、背景介绍
MVC模式:
MVC 是 Model-View-Control 的简称,即模型-视图-控制器。它是一个存在于服务器表达层的模型,它将应用分开,改变应用之间的高度耦合。
MVC模式结构:
MVC 模式将应用分为模型、视图和控制器三个部分:
1. 视图:数据的展现。
2. 模型:应用对象。
3. 控制器:逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。
MVC的优点:
1.耦合性低
2.重用性高
3.部署快
4.生命周期成本低
5.可维护性高
MVC的缺点:
1.增加了系统和实现的复杂型
2.视图对数据的访问效率低
3.内部原理比较复杂
二、知识剖析
spring MVC
Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring MVC也是要简化我们日常Web开发的。
struts2
Struts2是流行和成熟的基于MVC设计模式的Web应用程序框架。 Struts2不只是Struts1下一个版本,它是一个完全重写的Struts架构。
三、常见问题以及解决方法
spring MVC和struts2的区别
1.由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。
2. 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。
3.Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高
(这是从简单的demo上简单的了解的,还有其他的区别下面这边博客里面写的很清楚)
http://blog.csdn.net/chenleixing/article/details/44570681
为什么更倾向于使用Spring MVC
1.安全:最近struts2爆出了高危的漏洞
2.效率:springMVC的开发效率和性能都高于struts2
3.个人觉得比SpringMVC麻烦
四、代码实战
五、更多讨论
q:什么情况用Struts比用springmvc好呢?
a:个人觉得什么情况下用springMVC都比struts好(见识比较短浅)
q:Struts 不能用el嵌套 把jsp里不可以写入el吗?
a:struts2的页面是用的一个叫做OGNL表达式来写的,但是我们也测试了加入jstl的jar包,在jsp中也可以用el表达式。
q:struts比起spring有什么新特性?
a:新特性的话,springMVC出的比struts2晚,不存在新特性。
q:struts2能不能用tiles框架?
a:上面提到也可以用到el表达式,也就可以用tiles框架。