返回介绍

15.5 一个 Web 应用

发布于 2024-10-15 23:56:33 字数 1488 浏览 0 评论 0 收藏 0

现在让我们想想如何创建一个应用,令其在真实的 Web 环境中运行,它将把 Java 的优势表现得淋漓尽致。这个应用的一部分是在 Web 服务器上运行的一个 Java 程序,另一部分则是一个“程序片”或“小应用程序”(Applet),从服务器下载至浏览器(即“客户”)。这个程序片从用户那里收集信息,并将其传回 Web 服务器上运行的应用程序。程序的任务非常简单:程序片会询问用户的 E-mail 地址,并在验证这个地址合格后(没有包含空格,而且有一个 @符号),将该 E-mail 发送给 Web 服务器。服务器上运行的程序则会捕获传回的数据,检查一个包含了所有 E-mail 地址的数据文件。如果那个地址已包含在文件里,则向浏览器反馈一条消息,说明这一情况。该消息由程序片负责显示。若是一个新地址,则将其置入列表,并通知程序片已成功添加了电子函件地址。

若采用传统方式来解决这个问题,我们要创建一个包含了文本字段及一个“提交”(Submit)按钮的 HTML 页。用户可在文本字段里键入自己喜欢的任何内容,并毫无阻碍地提交给服务器(在客户端不进行任何检查)。提交数据的同时,Web 页也会告诉服务器应对数据采取什么样的操作——知会“通用网关接口”(CGI)程序,收到这些数据后立即运行服务器。这种 CGI 程序通常是用 Perl 或 C 写的(有时也用 C++,但要求服务器支持),而且必须能控制一切可能出现的情况。它首先会检查数据,判断是否采用了正确的格式。若答案是否定的,则 CGI 程序必须创建一个 HTML 页,对遇到的问题进行描述。这个页会转交给服务器,再由服务器反馈回用户。用户看到出错提示后,必须再试一遍提交,直到通过为止。若数据正确,CGI 程序会打开数据文件,要么把电子函件地址加入文件,要么指出该地址已在数据文件里了。无论哪种情况,都必须格式化一个恰当的 HTML 页,以便服务器返回给用户。

作为 Java 程序员,上述解决问题的方法显得非常笨拙。而且很自然地,我们希望一切工作都用 Java 完成。首先,我们会用一个 Java 程序片负责客户端的数据有效性校验,避免数据在服务器和客户之间传来传去,浪费时间和带宽,同时减轻服务器额外构建 HTML 页的负担。然后跳过 Perl CGI 脚本,换成在服务器上运行一个 Java 应用。事实上,我们在这儿已完全跳过了 Web 服务器,仅仅需要从程序片到服务器上运行的 Java 应用之间建立一个连接即可。

正如大家不久就会体验到的那样,尽管看起来非常简单,但实际上有一些意想不到的问题使局面显得稍微有些复杂。用 Java 1.1 写程序片是最理想的,但实际上却经常行不通。到本书写作的时候,拥有 Java 1.1 能力的浏览器仍为数不多,而且即使这类浏览器现在非常流行,仍需考虑照顾一下那些升级缓慢的人。所以从安全的角度看,程序片代码最好只用 Java 1.0 编写。基于这一前提,我们不能用 JAR 文件来合并(压缩)程序片中的.class 文件。所以,我们应尽可能减少.class 文件的使用数量,以缩短下载时间。

好了,再来说说我用的 Web 服务器(写这个示范程序时用的就是它)。它确实支持 Java,但仅限于 Java 1.0!所以服务器应用也必须用 Java 1.0 编写。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文