作者: Rick Scott / 翻译:廖铮
你喜欢使用Java小程序(小程序)吗?这个问题真叫人难以回答。有很多人对小程序大声说好,也有不少的人对其嗤之以鼻。“Java恐怖症”的患者们甚至看都不想看到小程序,他们几乎无一例外地在自己的Web浏览器中禁用Java。而Java爱好者则走向了另一个极端,他们把Java小程序当作了解决各式Web问题的万能仙丹。我看,最好还是不要太偏激了??以免今后步入死胡同。
在深入Java小程序这一话题之前,我首先要表达对你加入到JavaHead专栏漫游Java之旅的热烈欢迎!就如同以前的类似专栏一样:ScriptHead 代表javascript专题,所以JavaHead专栏就是专门讨论Java的。这是一个讨论和研究Java的好地方。假如你喜欢这一新的专栏,那你不妨要求Developer网站的负责人打开JavaHead论坛来处理你所提出的有关Java的问题、评论、抱怨和各种报告等等信息。
言归正传。首先,你可以创建或者部署4种主要类型的Java程序:
小程序(小程序)? 客户端的Java程序,这种小程序从服务器那里下载到客户机之后就在客户机上的浏览器内运行。
servlets ? 服务器端类似CGI的Java程序,运行在服务器上。
应用程序(application) ? 独立于浏览器之外运行的Java程序。
JavaBean ? 可重用Java软件组件,JavaBean大大简化了Java程序的创建工作。
在以后的JavaHead 专栏里我们将对以上所有这些类型的Java程序进行深入探讨。你可能会问,为什么专栏开篇伊始所要讨论的第一个话题是Java小程序呢?原因是这样的,开辟这一专栏的Developer.com是一个针对客户端Web的站点,所以我觉得首先讲讲小程序可能好一些,究竟这可是客户端Web世界的最爱之一。
好,现在就让我们开始Java之旅!
Java小程序的优点
就象同小程序竞争的主要客户端编程工具,如JavaScript/VBScript/DHtml脚本和ActiveX控件一样,Java 小程序也是优点和缺点俱全,下面我们首先列出它的优点:
跨浏览器/平台的兼容性? Java 小程序代码在所有启用Java的浏览器上都应当按照同样的方式和形式运行,这一点和所在的平台无关而只需要这些平台上的浏览器支持编译这些小程序的Java版本即可。所有支持Java 1.1的浏览器,包括Netscape 4+、Internet EXPlorer 4+、Opera 4+等,所有运行这些浏览器的平台,比如Windows、Mac OS、UNIX和Linux等等,他们在运行遵守Java 1.1规范的小程序时都应当产生同样的结果。
不过你可得注重这里的一个要害词??“应当”。就象我们已经知道的那样,“应当”有时也意味着“本来该是这样,可事实上不是这样”。对,就这个意思,Java 小程序也没例外。所谓的“编写一次,各处皆行!”的Java口号也许在某些情况下还是……可行的。不过这已经是我们在以后的专栏文章中所要讨论的话题了。
无需安装 ? 只要装载了Web页面,页面内的Java 小程序也就同时被装载了,其来源或是服务器或是浏览器的缓冲。所以Java 小程序是从来不会象一般程序那样进行安装操作的??比方说,ActiveX控件就必须进行安装。这样就避免了建立/安装客户软件新版本所会碰到的麻烦。
功能强大 ? Java是一种成熟的、完全面向对象的编程语言,而不是类似JS、 VBScript和DHTML这类基于对象的但却有一定限制的脚本语言。Java语言在图形和网络处理上远远胜过后者。
可用性 ? 不管是商业Java 小程序还是免费的小程序,他们的种类都极其繁多,而且可以在线获得。这样你要找自己需要的小程序可实在方便极了,多半人家都给你做好了就等着你去拿呢!小程序的源代码可以让你轻松地定制已经存在的小程序,这可真是“它山之石,可以攻玉”。在今后几个月的JavaHead专栏里我们会带大家访问几个包含大量Java小程序优秀站点。
支持工具 ? Java小程序和它那可怜的堂兄弟JavaScript可不一样,你可以找到很多软件工具帮助你开发和维护自己的Java小程序。其中有些是你要掏钱的商业工具,有些则是完全免费的。今后我们会在专栏内对这些工具进行探讨。
安全性 ? Java小程序非常安全。Java小程序很难破坏运行它的系统(假如这些系统运行的是Windows Netscape、Mac IE、Linux Opera等浏览器的话)。是的,Java小程序也存在安全问题,而且总是被传媒大肆渲染其严重性,但事实上这种不安全的情况几乎很少发生,非凡是和其他Web技术而言更是如此。比方说,ActiveX控件内的安全漏洞就不知道有多少。
小程序之大显其能
从小程序的发展历程来看,Java小程序并没有定位于充作全方位的Web编程工具。假如当初就这样发展下去,那么小程序应该和JS/VBScript/DHTML等脚本装载/运行的一样快才对。可这一切发生过吗?也许吧……。
在清醒面对现实的情况下,我强烈地建议你在创建Java小程序之前务必三思而后行。你一定要坚持建立小型的、快速装载的小程序来完成它所能完成的以下任务(JS/VBScript/DHTML在完成小程序非凡擅长的工作时表现很差,有时甚至根本完成不了):
图形处理 ? Java可以实现快速、强大的像素级图形操作,比如图像褪色和转换、动画、图像放大缩小等等。
网络 ? Java的核心就是网络,这和其他编程语言是不一样的??在为程序设计稳固、易于使用的网络特性时你需要投入很大的精力。你可以创建聊天小程序、邮件小程序、搜索小程序、telnet和浏览器嗅探小程序等。
多线程 ? Java很轻易创建多个并行的执行线程。比方说,想象一个股票行情Web页:一个线程用来提取当前的股票信息,另一个线程则专职显示这些行情信息,第三个线程分析这些数据,而第四个线程则负责计算/描绘行情图??所有这一切都在同时进行。
浏览器插件/扩展接口 ? 你可以使用Java和浏览器插件(Netscape)或者浏览器扩展(IE)进行通信,这可不是JS/VBScript所总能办到的。比方说,你可以使用Java轻易地为VRML插件/扩展创建一个定制的控件面板。
DHTML风格的小器件(widget) ? 这里所说的小器件是专指那些很难或者不可能实现跨浏览器/平台(支持DHTML)支持的DHTML小器件。我就正在考虑用Java 小程序来编写诸如标签内容页、浮动窗口/框架和层叠/扩展菜单等通用工具。这些当然也可能用DHTML来编写,不过在平台兼容性上就会碰到麻烦了,这是因为,大多数浏览器都在DHTML方面存在不兼容的问题而且老是变来变去的。