您的位置:首页 > 编程语言 > Java开发

Struts2(一) 学习兴趣、框架简介、框架优缺点

2016-12-20 08:22 232 查看
         首先学习这个框架可能是因为自己太自私吧,因为我在智联网站上研究过互联网公司的招聘,只要是涉及到后台开发的都需要这么框架,在说之前虽然对这框架有过了解,但是没有用到实际的项目中去,现在做的项目使用到的是SpringMVC就可以搞定目前的需求了。最近在想如果现在自己不研究点别的框架或者是技术,万一以后跳槽了拿什么资本去跟面试官吹牛呢,想到这个自己也没有什么借口了,来吧;干撒。

        学习一门新的技术,无非就是自己去学习和思考,当然学习总要有争取的方向和动力。毫无疑问我选择了以为在开发者比较牛的老师--马士兵先生,选择这位先生主要是因为他的威望很高,同事他也是全国最有名的大学毕业的,有从事计算机开发和传道授业多年,精髓所在,最重要的一点就是他能带我走起Struts2世界之门,师傅领进门、修行看个人,加油吧 。

一、Struts2 简介

        Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在
struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

二、优缺点介绍

Struts2框架以前用过一阵子,最近一直在用SpringMVC,今天突然想结合自己以前的一点经验总结一下Struts2的优缺点,参考部分网友的帖子结合自己的想法,总结如下:

优点:

        (1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。

        (2)  丰富的标签库,大大提高了开发的效率。

        (3) Struts2提供丰富的拦截器实现。

        (4) 通过配置文件,就可以掌握整个系统各个部分之间的关系。

        (5) 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理。

        (6) Struts2的可扩展性高。Struts2的核心jar包中由一个struts-default.xml文件,在该文件中设置了一些默认的bean,resultType类型,默认拦截器栈等,所有这些默认设置,用户都可以利用配置文件更改,可以更改为自己开发的bean,resulttype等。因此用户开发了插件的话只要很简单的配置就可以很容易的和Struts2框架融合,这实现了框架对插件的可插拔的特性。

        (7) 面向切面编程的思想在Strut2中也有了很好的体现。最重要的体现就是拦截器的使用,拦截器就是一个一个的小功能单位,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个、Action中就可以。

 

缺点:

        (1) Struts2中Action中取得从jsp中传过来的参数时还是有点麻烦。可以为Struts2的Action中的属性配置上Getter和Setter方法,通过默认拦截器,就可以将请求参数设置到这些属性中。如果用这种方式,当请求参数很多时,Action类就会被这些表单属性弄的很臃肿,让人感觉会很乱。还有Action中的属性不但可以用来获得请求参数还可以输出到Jsp中,这样就会更乱。假设从JSP1中获得了参数money=100000,但是这个Action还要输出到JSP2中,但是输出的格式却不同,money=100,000,这样这个Action中的money中的值就变了。

       (2) 校验还是感觉比较繁琐,感觉太烦乱,也太细化了,如果校验出错的只能给用户提示一些信息。如果有多个字段,每个字段出错时返回到不同的画面,这个功能在Strut2框架下借助框架提供的校验逻辑就不容易实现。

       (3) 安全性有待提高。Struts2曝出2个高危安全漏洞,一个是使用缩写的导航参数前缀时的远程代码执行漏洞,另一个是使用缩写的重定向参数前缀时的开放式重定向漏洞。这些漏洞可使黑客取得网站服务器的“最高权限”,从而使企业服务器变成黑客手中的“肉鸡”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: