J2EE企业应用之Applet和Servlet的通信 - 编程入门网
能。尽管这样做你必须附出复杂化和费用的代价。
通信策略 如果你使用了这样的构造:在前端使用Applet,在后端使用Servlet,那么你将需要执行Applet和Servlet的通信。因为Applet受浏览器的安全模式的限制,我们在对一个Applet存取数据和信息时并没有太多的选择。 正如我们在前面提到的,我们不能读取客户端的文件系统、不能运行客户端的程序,由于Applet不是在服务器上运行的,我们也不能访问服务器上的文件系统。我们只能建立到运行在我们的主机上的服务的网络连接。 另外,不要忘记应用程序是在一个公开的Internet上发布的,防火墙可能会限制通过HTTP到Servlet或其它web-server模块的会话。事实上,因为Applet本身就是在网络上通过HTTP发布的,所以我们必须准确把握通信的策略。 假定在客户端的Applet和服务器端的Servlet之间的网络连接是我们可以使用的唯一的通信路径,我们可以有几种方法交换信息。正如你知道的,文字流可以由服务器通过HTTP发放。 但是你可能不知道Java对象出可以用这种方式发放。我们将详细地介绍HTTP文字流和HTTP对象流的使用。另外,我们将简单地介绍通过Socket进行通信的方法。 Applet与Servlet交换信息的最简单地方法就是通过HTTP文字流。Java的URL和URLConnection类型使得从一个URL读取数据变得很容易,你可以不用担心Socket和其它有关网络工作的通常的复杂问题。我们所需要的只是一个服务器端的组件,这个组件应该可以通过URL发放信息。这就是我们在这儿使用Servlet的原因。 J2EE企业应用之Applet和Servlet的通信(3)时间:2011-02-23作为一个例子,我们想要监控服务器的JVM所能使用的内存的总数,并在一个Applet中用一个简单的仪表显示它。首先我们需要开发一个Servlet,当通过它的URL访问这个Servlet时可以返回我们所需要绘制仪表的信息。这个Servlet的源代码如清单1所示。 清单1
这个非常简单的Servlet会响应一个GET请求(直接通过浏览器或者是象我们在下面将看到的那样通过我们的Applet),并返回两行文字。第一行显示了服务器的JVM的剩余的自由空间,第二行显示了JVM可用的全部空间(包括已使用的空间)。 要建立我们的Applet中的仪表,我们只需要建立一个到这个Servlet的连接,将它的InputStream封装到一个DataInputStream中,读出这两个参数,将其转换成数字,并更新我们的仪表。 我们可以让我们的Applet执行Runnable接口并在其自己的线程中运行。每隔一秒钟,我们可以运行一个方法来更新我们的仪表。refresh()方法的代码如清单2所示。 清单2
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |