首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Struts,MVC 的一种开放源码实现(5)使用 Struts 前后的比较

Struts,MVC 的一种开放源码实现(5)使用 Struts 前后的比较

使用 Struts 前后的比较正如我们在图 9 中所看到的那样,复杂性和层都有显著增加。不再存在从JSP 文件到 Service 层的直接调用。
图 9. 使用 Struts 前后的比较Struts 的优点
  • JSP 标记机制的使用
    标记特性从 JSP 文件获得可重用代码和抽象 Java代码。这个特性能很好地集成到基于 JSP的开发工具中,这些工具允许用标记编写代码。
  • 标记库
    为什么要另发明一种轮子,或标记库呢?如果您在库中找不到您所要的标记,那就自己定义吧。此外,如果您正在学习JSP 标记技术,则 Struts 为您提供了一个起点。
  • 开放源码
    您可以获得开放源码的全部优点,比如可以查看代码并让使用库的每个人检查代码。许多人都可以进行很好的代码检查。
  • MVC 实现样例
    如果您希望创建您自己的 MVC 实现,则 Struts 可增加您的见识。
  • 管理问题空间
    分治是解决问题并使问题可管理的极好方法。当然,这是一把双刃剑。问题越来越复杂,并且需要越来越多的管理。
Struts 的缺点
  • 仍处于发展初期
    Struts 开发仍处于初级阶段。他们正在向着发行版本 1.0而努力,但与任何 1.0 版本一样,它不可能尽善尽美。
  • 仍在变化中
    这个框架仍在快速变化。Struts 1.0 与 Struts 0.5相比变化极大。为了避免使用不赞成使用的方法,您可能隔一天就需要下载最新的Struts。在过去的 6 个月中,我目睹 Struts 库从 90K 增大到 270K以上。由于 Struts中的变化,我不得不数次修改我的示例,但我不保证我的示例能与您下载的Struts 协同工作。
  • 正确的抽象级别
    Struts是否提供了正确的抽象级别?对于网页设计人员而言,什么是正确的抽象级别呢?这是一个用$64K的文字才能解释清楚的问题。在开发网页的过程中,我们是否应该让网页设计人员访问Java 代码?某些框架(如 Velocity)说不应该,但它提供了另一种 Web开发语言让我们学习。在 UI 开发中限制访问 Java有一定的合理性。最重要的是,如果让网页设计人员使用一点Java,他将使用大量的 Java。在 Microsoft ASP的开发中,我总是看到这样的情况。在 ASP 开发中,您应该创建 COM对象,然后编写少量的 ASP 脚本将这些 COM 对象联系起来。但是,ASP开发人员会疯狂地使用 ASP 脚本。我会听到这样的话,“既然我可以用VBScript 直接编写 COM 对象,为什么还要等 COM开发人员来创建它呢?”通过使用标记库,Struts 有助于限制 JSP文件中所需的 Java 代码的数量。Logic Tag就是这样的一种库,它对有条件地生成输出进行管理,但这并不能阻止 UI开发人员对 Java代码的狂热。无论您决定使用哪种类型的框架,您都应该了解您要在其中部署和维护该框架的环境。当然,这项任务真是说起来容易做起来难。
  • 有限的适用范围
    Struts 是一种基于 Web 的 MVC 解决方案,所以必须用 HTML、JSP 文件和servlet 来实现它。
  • J2EE 应用程序支持
    Struts 需要支持 JSP 1.1 和 Servlet 2.2 规范的 servlet容器。仅凭这一点远不能解决您的全部安装问题,除非使用 Tomcat3.2。我用 Netscape iPlanet 6.0安装这个库时遇到一大堆问题,按理说它是第一种符合 J2EE的应用程序服务器。我建议您在遇到问题时访问 Struts用户邮件列表的归档资料(请参阅 )。
  • 复杂性
    在将问题分为几个部分的同时也引入了复杂性。毫无疑问,要理解 Struts必须接受一定的培训。随着变化的不断加入,这有时会令人很沮丧。欢迎访问本网站。
  • 在何处...
    我还能指出其他问题,例如,控制器的客户端验证、可适用工作流程和动态策略模式在什么地方?但是,目前这太容易成为吹毛求疵的问题,有些问题是无关紧要的,或者说应该对1.0 发行版提这些问题。随着 Struts 小组的不断努力,到您阅读本文时Struts 说不定已经有了这些功能,或者它很快就会具有这些功能。
Struts 的前景在这个软件开发的新时代,一切都变得很快。在不到 5年的时间内,我已经目睹了从 cgi/perl 到 ISAPI/NSAPI、再到使用 VB 的ASP、一直到现在的 Java 和 J2EE 的变迁。Sun 正在尽力将新的变化反映到JSP/servlet 体系结构中,正如他们对 Java 语言和 API所作的更改一样。您可以从 Sun 的网站获得新的 JSP 1.2 和 Servlet 2.3规范的草案。此外,一个标准 JSP标记库即将出现;有关这些规范和标记库的链接,请参阅 。      
最后的注释Struts 使用标记和 MVC解决了某些重大问题。这个方法有助于提高代码的可重用性和灵活性。通过将问题划分为更小的组件,当技术空间或问题空间中出现变化时,您就有更多的机会重用代码。此外,Struts使网页设计人员和 Java开发人员能将精力集中于自己最擅长的方面。但是,在强健性增强的同时,也意味着复杂性的增加。Struts比简单的单个 JSP 网页要复杂得多,但对于更大的系统而言,Struts实际上有助于管理复杂性。另外,我并不想编写自己的 MVC实现,而只想了解一个这样的实现。不管您是否会使用 Struts,回顾这个Struts 框架(对不起,应该是库)都会使您对 JSP 文件和 servlet的特性、以及如何将它们组合起来用于您的下一个 Web项目有更好的了解。正像翼间支柱是机翼结构中不可缺少的一部分一样,Strut也可能成为您下一个 Web 项目的不可缺少的一部分。
返回列表