- 只要是项目的开发,那么一定离不开MVC设计模式,所以现在的所有技术也是围绕着此功能完善而提出的.
传统MVC开发的不足
- 如果使用传统的mvc进行开发,那么使用到的技术:
- 前台页面:HTML,css,JavaScript,jaax,DOM
- 控制层:Servlet
- 模型层:纯粹的java程序类(一定不要于WEB容器产生关系)
- 但是现在所有的开发之中,觉得难以控制的部分:控制层,对于控制层的功能有:
- 可以接受参数,由于整个vo结构的发展,所以控制层接受的数据往往需要转换为vo类
- request.getParameterNames(),有一些列的Class,Method,Field类的综合调用.
- 可以接受参数,由于整个vo结构的发展,所以控制层接受的数据往往需要转换为vo类
- 数据的验证处理:对于程序而言,数据的验证必须在服务器端和客户端一起进行.
- 用户需要自己来实现资源文件的定义包括国际化的实现:
- session处理时需要依靠Cookie的机制,如果客户点将Cookie禁用了怎么办?控制层必须保证cookie禁用的时候依然能够正常使用session(传递一个JSESSIONID数据即可)
- Servlet程序只能够实例化一次,而不同的用户的处理可能是多次,那么需要更加合理的安排vo类定义
- 很多时候的开发我们可能并不需要知道request于response
- 文件的上传处理应该更加简单一些.
- 虽然有经验的开发者可以去解决以上的问题,但从实质上来讲,这样的解决太费时间了.
struts2.x
- 现在能够看到的是struts2.x版本,严格来讲struts1和struts2没有什么关系.
- 如果要下载Struts开发包,可以进入官网 https://struts.apache.org/index.html
-
在2006年的时候,只要从事java开发,那么就没有不会Struts1.x(Struts1.x已经称为java开发行业的标准).但是经过长时间的使用发现Strtus1.x有许多的问题:
- Struts1.x为了实现数据的验证功能,引入了一个ActionForm的概念.也就是说每一个Action类都要捆绑ActionForm类.
- Strtus1.x中针对于上传的处理操作不明确:
- Strtus1.x设计的时候没有过的考虑到其他开发框架的整合处理.
-
于是在Struts1.x发展的同时,一个神奇的具备有奇异功能的论坛诞生了—JIVE论坛,这个论坛掀起了java行业的开源软件风潮.在这个论坛中使用了一个设计非常合理的----WebWork开发框架.后来由于SSH整合开发技术的兴起,慢慢对于Struts1.x的问题也就越来越明显.同时WebWork由于天生的设计合理,可以与任何第三方开发框架进行无缝整合,所以后来人们发现WebWork很好用.于是在2005年底的时候.apach收购了WebWork项目,并且在2007的时候Struts2.x开始出现了.后来经过不断的发展.Struts2.x已经几乎是脱离了WebWork身影了.
MVC与Struts的关系
- MVC就是一个设计模式,而Struts就是一个实现MVC的开发框架,
- MVC就相当于是一个标准,而Struts是这个标准的具体实现