问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Struts优缺点剖析 开源是把双刃剑?

发布网友 发布时间:2023-07-16 16:57

我来回答

1个回答

热心网友 时间:2023-08-17 05:12

  Struts优缺点跟Tomcat Turbine等诸多Apache项目一样 是开源软件 这是它的一大优点 使开发者能更深入的了解其内部实现机制

  Struts开放源码框架的创建是为了使开发者在构建基于Java Servlet和JavaServer Pages(JSP)技术的Web应用时更加容易 Struts框架为开放者提供了一个统一的标准框架 通过使用Struts作为基础 开发者能够更专注于应用程序的商业逻辑 Struts框架本身是使用Java Servlet和JavaServer Pages技术的一种Model View Controller(MVC)实现 具体来讲

  Struts优点有

   实现MVC模式 结构清晰 使开发者只关注业务逻辑的实现

   有丰富的tag可以用 Struts的标记库(Taglib) 如能灵活动用 则能大大提高开发效率 另外 就目前国内的JSP开发者而言 除了使用JSP自带的常用标记外 很少开发自己的标记 或许Struts是一个很好的起点

   页面导航 页面导航将是今后的一个发展方向 事实上 这样做 使系统的脉络更加清晰 通过一个配置文件 即可把握整个系统各部分之间的联系 这对于后期的维护有着莫大的好处 尤其是当另一批开发者接手这个项目时 这种优势体现得更加明显

   提供Exception处理机制

   数据库链接池管理

   支持I N

  Struts缺点

  一 转到展示层时 需要配置forward 每一次转到展示层 相信大多数都是直接转到jsp 而涉及到转向 需要配置forward 如果有十个展示层的jsp 需要配置十次struts 而且还不包括有时候目录 文件变更 需要重新修改forward 注意 每次修改配置之后 要求重新部署整个项目 而tomcate这样的服务器 还必须重新启动服务器 如果业务变更复杂频繁的系统 这样的操作简单不可想象 现在就是这样 几十上百个人同时在线使用我们的系统 大家可以想象一下 我的烦恼有多大

  二 Struts 的Action必需是thread-safe方式 它仅仅允许一个实例去处理所有的请求 所以action用到的所有的资源都必需统一同步 这个就引起了线程安全的问题

  三 测试不方便 Struts的每个Action都同Web层耦合在一起 这样它的测试依赖于Web容器 单元测试也很难实现 不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试

  四 类型的转换 Struts的FormBean把所有的数据都作为String类型 它可以使用工具Commons Beanutils进行类型转化 但它的转化都是在Class级别 而且转化的类型是不可配置的 类型转化时的错误信息返回给用户也是非常困难的

  五 对Servlet的依赖性过强 Struts处理Action时必需要依赖ServletRequest 和ServletResponse 所有它摆脱不了Servlet容器

  六 前端表达式语言方面 Struts集成了JSTL 所以它主要使用JSTL的表达式语言来获取数据 可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱

  七 对Action执行的控制困难 Struts创建一个Action 如果想控制它的执行顺序将会非常困难 甚至你要重新去写Servlet来实现你的这个功能需求

  八 对Action 执行前和后的处理 Struts处理Action的时候是基于class的hierarchies 很难在action处理前和后进行操作

  九 对事件支持不够 在struts中 实际是一个表单Form对应一个Action类(或DispatchAction) 换一句话说 在Struts中实际是一个表单只能对应一个事件 struts这种事件方式称为application event application event和ponent event相比是一种粗粒度的事件 Struts重要的表单对象ActionForm是一种对象 它代表了一种应用 这个对象中至少包含几个字段 这些字段是Jsp页面表单中的input字段 因为一个表单对应一个事件 所以 当我们需要将事件粒度细化到表单中这些字段时 也就是说 一个字段对应一个事件时 单纯使用Struts就不太可能 当然通过结合JavaScript也是可以转弯实现的

lishixin/Article/program/Java/ky/201311/27961
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你见过最古老的东西是什么,有多少年历史 WORD中怎么输出稿纸模式word中怎么输出稿纸模式 女性尿检阴性是什么意思 阴性尿检是什么意思 尿检阴性是什么 win10如何查看电脑配置参数 win10怎样查看电脑配置参数 多地对公职人员提接种要求 亚马逊订单可以退回任何Kohl's商店,7月份生效 亚马逊提供免费退货,珠宝退货卖家要承担运费吗 新的亚马逊退货政策惹争议!官方解答来了 一套整体橱柜多少钱,品牌整体橱柜多少钱 当年那个在相亲节目中说,“宁可坐在宝马哭”的女嘉宾,现在怎样?_百度知... 澳大利亚国立大学在哪座城市 澳洲大学排名有哪些? 加拿大国立大学在哪个城市 马来西亚国立大学在吉隆坡吗 马来西亚国立大学在哪个城市 青蛙对人类有多大贡献 win8系统下如何为微软拼音输入法设置模糊音 Win10微软拼音输入法模糊拼音设置在哪|Win10微软拼音输入法启用模糊拼音... 辅修和第二学位的区别在哪? 作文《虽不能至,心向往之-读孔子》 心之所向作文300字求作文 这个白酒多少钱一瓶?茅台 长月烬明永生花是什么? 那一定是特别特别的缘分,一路走来变成一家人!我想知道歌名是神马? ...给一个女孩唱张宇的那首给你们,就只唱那一句一定是特别的缘分... 有谁知道以下号码是信阳哪个单位的电话号码吗?03766680581 037666806... 下列诊断支气管哮喘的依据,错误的是 抽样检验如何计算合格率 新鲜形容空气的句子 新大二什么时候出的 大一大二大三哪个时间考研好 我女儿是985的大一新生,她很想当兵。是大二还是大三去当兵或考军校好... 考研备战,大一大二大三大四各应该做什么? 小绵羊是温柔可爱的,我又不温柔不可爱女朋友发这个信息些怎么回?_百 ... 太阳能热水器电磁阀坏了有什么表现 ...籽骨,骨骺线部分存在,骨龄约相当17岁,还能长多少 ...身高160.骨化腕骨八块,形态较成熟。还能长多高?谢谢! 为什么有人喜欢看悬疑推理恐怖小说,看这种小说有什么好处和坏处? 《真实之死亡游戏》txt下载在线阅读全文,求百度网盘云资源 看恐怖小说对人有好处吗? 为什么验孕棒的颜色一直不加深,都是一浅一深 戛洒社区邮编是多少 贷款买房收入证明上的金额不够怎么办 为啥国产手机不能集成eSIM呢? 直径5毫米钻石大概几克拉? 我需要一个无声MP3音频文件有人帮我弄么?要3个小时的 高原红歌词 马王堆当时出土了几件素纱衣