当前位置: 首页 > 图灵资讯 > 技术篇> 利用 Web 对象通道使 Java 对象穿越防火墙

利用 Web 对象通道使 Java 对象穿越防火墙

来源:图灵教育
时间:2024-03-03 10:36:54

  如果在 Web 服务器和 Applet 小程序(或任何) Java Web 在客户端程序之间创建一个条) HTTP 对象通道,那将是非常有用的。这样,动态数据就可以通过防火墙串行直接发送到 Web 客户端。这些数据可以是服务器端 JavaBean 实例、ORB 对象引用、移动代理等--对此没有限制!那么,RMI (调用远程方法)怎么样?如果您使用 JDK 1.1.x 中的标准 RMI,你可能会遇到一些问题或限制。这项技能将通过举例说明和分析技术细节向您解释一个简单易用的方法 HTTP 如何实现对象通道?(1,500 字) 为了在服务器端显示, JavaBeans 我开发了一个形式存储的动态数据 Applet 小程序。

  我的 Web 在这一开发过程中,对象通道功能逐步完善。如何检测这些数据的变化,以及如何下载这些数据? beans。 我决定设计一个允许的传输层 Applet 小程序可以串行直接向服务器请求 JavaBeans。另外,由于 Applet 小程序会在公司的防火墙外运行,所以我决定使用它 HTTP 构建传输层。 当代理服务器运行时,标准 RMI 解决方案需要额外的层,这将导致 Applet 小程序运行速度减慢。同时,我将不得不把现有的东西放在一边 Servlet 在注册之前,将其修改为可远程调用的对象 RMI。RMI 其他常见的解决方案问题还包括: 尽管 Netscape 浏览器(包括 JDK 1.1 的 Netscape 4.03 所有版本后的版本)都有支持 RMI 但它们正在实现 Applet 小程序和服务器之间的通信能力有限。例如,一些安全管理程序不允许创建服务器套接字 ServerSocket。取而代之的是,RMI 复用已建立的套接字,使通信能够保持虚拟的双向性。但由于管理协议的额外层,通信速度会减慢。

  微软声称在 MSIE 中“支持 Java”。但尽管 RMI 已经是 JDK 1.1 微软浏览器是版本技术规范的一部分(Internet Explorer 4.0 和 5.0)默认情况下仍不支持 RMI。用户必须安装一个 RMI 补丁(如微软或 IBM 只有在他们的网站下载)才能在他们身上下载 MS 在浏览器中运行 RMI Applet 小程序。详情请参考资源。 基本上,直接 RMI 解决方案太慢,需要太多的额外代码。 利用我的 Web 对象通道,我只需要将现有的服务器端小程序扩展到一个新的基类,然后重载一种方法。 模型简介 Web 在一系列类别中实现对象通道,使客户端和服务器端能够建立 Java 对象通道。因为这种实现是基于的 HTTP (请求、响应协议),所以客户需要先建立渠道。客户对象包括: HttpObjectChannel,客户端通道--与服务器端通道通信的接入点。它使任何给定 Web 服务器 URL 地址(HttpObjectChannelServlet)发送 HTTP 请求(HttpObjectRequest)都是可能的。 HttpObjectRequest,代表一个 HTTP 请求。它处理与 Web 服务器之间 HTTP 通信数据交换。它向 Web 服务器发送 POST 请求(带指定参数),然后等待返回 Java 对象。 HttpObjectVarg,装载变量参数的容器。请求(HttpObjectRequest)应在此对象中设置所需的任何参数。