快速业务通道

J2EE企业应用之Applet和Servlet的通信 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

J2EE企业应用之Applet和Servlet的通信

时间:2011-02-23

在今天的多层结构的web应用程序的设计中,我们可以同时使用Java applet和Servlet。Applet为建立功能强大的动态界面提供了便利的机制,Servlet为web服务器或者其他应用服务器处理请求提供了高效率的手段。

Sun公司的应用程序模型描述了在Java2平台下开发企业级的Java应用的最好的规范。一种被推荐的规范是:在前端使用Applet、HTML和JSP,在后端使用Enterprise JavaBeans支持的Servlet及其他成分。

这种体系结构的关键是在客户端的Applet和在服务器说?ervlet之间的通信。但是由于Applet受浏览器安全模式的限制,在一个Applet中存取数据和信息并不想看上去的那么简单。在这篇文章中,我们将解释在Applet-Servlet结构中开发者所面对的限制,并探讨几个不同的可以在Applet和Servlet之间转输数据的通信策略。

如果你已经熟悉Applet和Servlet,这肯定会对你阅读本文有帮助,如果你还不是那么熟悉,那也没关系,我们会简要地介绍它们。

APPLET和SERVLET的简介

Applet Java applets实际上是运行在web页面上的Java程序。它是一个继承于java.applet.applet的Java类,它通过引用被嵌入到HTML页面中去,就象一个图像一样。Applet和HTML的组合,可以建立功能更为强大的动态界面。

对于一些只用来滚动正文和播放动画的Applet,我们可以在一个企业级的应用程序中利用它来显示和处理来自服务器上的资源的数据。例如,一个Applet可以用来浏览和修改数据库中的记录或者控制运行在服务器上的其他应用程序。

Java applet除了可以使用它自己定义的类文件外,还可以使用其他的类,不管这些类是独立存在的还是被打包成了一个JAR文件。Applet和它的类文件通过标准的HTTP请求进行分布,所以Applet可以越过web页面数据所在的平台的防火墙进行发送。

除非是涉及到保持应用程序完整性的问题,Applet总会在每次用户重新访问web主机时自动刷新并会在客户端保留一段时间。

我们得感谢Java操作系统的平台无关性,这才使得Applet可以运行在任何拥有Java虚拟机(JVM)的浏览器上。Sun公司的Java插件甚至可以使用可以利用最新版本的JVM编制页面,而不用担心受你的用户的浏览器上的JVM的版本的限制。

因为Applet是Java平台的扩展,所以在你建立用Applet建立你的web应用程序的界面时,你可以重用已存在的Java组件。

正如我们在下面的例子中可以看到的那样,你可以在你的Applet的组件中使用复杂的Java对象来开发本来由服务器端应用程序完成的工作。事实上,你可以编写这样的Java代码,它既可以在Applet上执行,也可以在应用程序内执行。

Applet具有所有传统的Java应用程序的功能,包括使用Sun公司的JFC/Swing组件。Applets也可以用来制作图形以及应用程序中的用户界面(尽管有些辅助的窗口会被标志为“Warning, Java Applet Window”)。

但是不管他们有多么相似,在应用程序和Applet之间还是一些关键性的差别的。例如,我们不得不考虑到我们的Applet是受到安全模式的限制的。

Applet的安全约束

Applet代码来自于web主机并在最终用户的机器的浏览器中运行。有害的含有病毒的Applet可能会造成破坏性的效果,为了防止这样的Applet,Applet受到安全方面的约束,那就是Applet只可以与提供这个Applet的主机进行通信,而且Applet不能操作最终用户的机器。

它们不能读写该用户的文件系统,不能执行上面的程序,也不能检查一些敏感的环境参数。(事实上,我们有一种方法可以回避这种限制,那就是开发者可以利用数字签名的技术对Applet进行标志,这将会询问用户是否可以给予Applet某种特殊的待遇。

但是这已经超出我们这篇文章中所讨论的范围了。)此外,Applet不能建立或接受外来的socket连接。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号