中常见技术: 介绍以下四种 JAVA 中常见技术:XML 在 中的应用, jsp, applet, java 中的应用, , jsp applet, javascript
脚本语言能够为 Java 应用带来前所未有的能力。然而,在 Java 应用中支持脚本语言也必然 会面临相应的风险和代价。 选择一种合适的脚本语言能够将这些风险和代价降低到最低程度。 脚本解释器概述 在一些 Java 应用的需求中,集成某种脚本语言的支持能够带来很大的方便。例如,用 户可能想要编写脚本程序驱动应用、扩展应用,或为了简化操 作而编写循环和其他流程控 制逻辑。在这些情况下,一种理想的解决
方案是在 Java 应用中提供对脚本语言解释器的支 持,让脚本语言解释器读取用户编写的脚本 并在应用提供的类上运行这些脚本。为了实现 这个目标,你可以在 Java 应用所运行的 JVM 中,运行一个基于 Java 的脚本语言解释器。 一些支持库,例如 IBM 的 Bean Scripting Framework,能够帮助你把不同的脚本语言集 成到 Java 程序。这些支持框架能够让你的 Java 应用在不作大量修改的情况下,运行 Tcl、 Python 和其他语言编写的脚本。 在 Java 应用中集成了脚本解释器之后,用户编写的脚本能够直接引用 Java 应用的类, 就如这些脚本属于 Java 程序的一部分一样。这种思路 既有优点也有缺点。其优点在于,如 果你想要用脚本驱动的方式对应用进行回归测试,或者想要通过脚本对应用进行低级调用, 它能够带来很大的方便;其缺点在 于,如果用户的脚本直接操作 Java 程序的内部结构而不 是经过认可的 API,它可能影响 Java 程序的完整性和应用的安全。因此,应当仔细地规划 那些允许 用户针对其编写脚本的 API,并声明程序的其余部分不允许用脚本操作。另外, 你还可以对那些不想让用户针对其进行脚本编程的类和方法名称进行模糊处理,只 留出那 些允许脚本编程的 API 类和方法名字。这样,你就能够有效地降低喜欢冒险的用户直接用 脚本操作受保护的类和方法的可能性。 在 Java 程序中支持多种脚本语言有着非同寻常的意义,但如果你正在编写的是一个商 业应用,则应当慎重考虑——尽管你为用户提供了最完善的功 能,但同时也带来了最多的 出错机会。 必须考虑到配置和管理问题, 因为至少有一部分的脚本解释器在定期地进行升级 和更新, 这样你就必须花很大的力气管理各个 解释器的哪些版本适合于 Java 应用的哪些版 本。如果用户为了解决旧脚本解释器中存在的 BUG,对其中某个脚本解释器进行了升级, 你的 Java 应用就会运 行在一种未经完全测试的配置下。数天或数星期之后,用户也许会发 现由于脚本引擎升级而产生的
问题, 但他们很可能不会把脚本引擎升级的事情告诉你, 这时 你就 很难再次重复试验出用户
报告的错误了。 另外,用户很可能坚持认为你必须为 Java 应用支持的脚本解释器提供补丁。一些脚本 解释器按照源代码开放的模式及时进行维护和更新;对于这些 脚本解释器,可能有专家帮 助你解决问题、修补解释器,或在新的发行版中引入补丁。这是很重要的,因为脚本解释器 是一个很复杂的工具,包含大量的代码,如果 没有专家的支持,对于自己修改脚本解释器 这一令人烦恼的任务,你很可能束手无策。 为了避免出现这种问题,你应该对于每一种准备在 Java 应用中提供支持的脚本解释器 进行全面的测试。对于每一种解释器,确保它能够顺利地处理 绝大多数常见的使用情形, 确保它即使在极端苛刻的条件下运行大量的脚本也不会出现大的内存漏洞, 确保当你对 Java 程序和脚本解释器进行严格的 Beta 测 试时不会出现任何意外的情况。当然,这种前期测试
需要投入时间和其他资源;但不管怎样,测试投入总是物有所值的。 保持系统简洁 如果你必须在 Java 应用中提供脚本支持,首先必须选择一个最符合应用要求和用户基 础的脚