三大框架之Struts2——第一节(struts2的起源)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/han_chuang/article/details/82155111

什么是Struts2,以及什么是MVC?


Struts最早实现了MVC模式,所以他是一个轻量级的MVC框架(是框架,不是架构,框架是一种简化开发的模式,注重的是一种可高度重用的统一的编程模式;架构则更多的是对技术的选型,需要结合实际产品以及需求来决定框架甚至编程语言,更多的是一种取舍),主要解决的是请求分发的问题,重心在控制层和表现层,他侵入性低,与业务代码解耦,他提供了一系列api,采用模块化的方式开发。
MVC则是模型model,视图view,控制器controller的简称。模型指的就是:jdbc所使用的javabean,技术有hibernate,mybatis,ibatis等,负责跟数据库交互,DAO,service层都是model层。视图指的则是:用户直观看到的页面元素,比如使用jsp写的前台页面,可以结合HTML,jsp,el,jstl表达式。控制器指的是:servlet技术负责模型与视图之间的转发。View层是视图,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。比方说,有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model就可以了,控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息。


Struts2与servlet对比


优点:业务代码解耦,适合团队开发,请求分发给不同的处理类,降低耦合度,便于维护。提升开发效率,提供了一系列api,如使用拦截器自动给请求参数转型。(最近给公司添加了一个控制器,用于拦截所有url以及参数的SQL注入漏洞以及xss网站跨域攻击漏洞)
缺点:执行效率低,需要使用反射,解析xml。结构复杂,需要学习API使用步骤。
Struts2大的缺点:(为什么SpringMVC使用比较多)
action不能是单例的,即每个请求都需要创建一个新的对象,那么效率就很低。
有安全漏洞,最近公司的一个划小系统总是需要根据Struts2的补丁来不停的更新系统,很是麻烦。


起源


Struts1最先实现了MVC模式,所以占有很多的市场使用率。然后webwork推出,技术上更先进,但是影响力不如Struts1,所以最终Apache收购了webwork,然后以其为核心结合struts1的一些特性,推出了sturts2,所以他应该算是webwork的升级版。

猜你喜欢

转载自blog.csdn.net/han_chuang/article/details/82155111