废话不多说。直接奔主题。
struts2是当前流行的基于MVC模式的一个框架。
M(MODEL)V(VIEW)C(CONTROLLER)
举个MVC的例子:
查询姓名为X的全部个人信息;
V:用户看到并与之交互的界面
查询页面,在输入框输入:X,然后点击查询,触发查询请求(eg:query.action)
C:只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据
此时接收到query.action的请求后,分配给某个模型去处理
M:业务流程/状态的处理以及业务规则的制定,拥有最多的处理任务
处理query.action请求,并返回结果:
id 1
age 28
name X
sex 男
处理结束后,返回结果由C去确定用哪个V去显示
老总安排个活,让项目经理带着干,经理分派好了具体模块,划分到个人身上。这个经理所起的作用就是相当于C。
M就是我们底层员工。最终大家做出来的结果就是V。
它的前身是struts1。但是它和1基本没有什么相似之处。与其说是1的升级版本。
不如说它是从webwork框架演绎过来的。
如果以前用过1的人再学2 。基本上等于是重新学习。
如果接触过webwork的,那么学2就so easy了。
我没用过1,所以无论书上怎么强调1与2的对比我认为还是不够深刻。
但是大致也了解了一些。
区别:
1的View层只能是JSP。2的View层不受限制。
1的action需要继承基类。而不是使用接口。2是实现接口。
1中有单线程安全的问题。2中则没有这种问题,因为生产的是一个实例。
1中依赖于jsp/servlet。
1中使用的表达式语言是JSTL。2中使用的是OGNL
马士兵老师说过,struts2的精髓是请求与指示分离。但是我们还需仔细品味这句话,才能更深刻的掌握struts2。