汽车功放有什么用:取代 DWR 的好东西—— PHPRPC for Java

来源:百度文库 编辑:偶看新闻 时间:2024/03/29 06:32:49
经过了近一个月的努力开发与严格测试,PHPRPC_2.1-20060810 版终于发布了!该版本最重要的更新是增加了 PHPRPC for Java 服务器和客户端 。它不但可以使用 servlet 发布服务,还可以简单的使用 JSP 来发布服务,并且可以直接发布系统内置的类的方法。它支持在 JavaScript 中以异步远程调用方式来调用服务器端到过程(就像 DWR),可以更轻松的实现 Ajax 编程,另外,PHPRPC 的 JavaScript 在无需服务器代理的情况下就可以实现跨域调用,这是 DWR 所不能及的。另外,PHPRPC 还支持在其它语言中(如 PHP、ASP、.NET 和 Java 本身)来远程调用 PHPRPC for Java 服务器上的过程。当然 PHPRPC for Java 的客户端也可以调用任何语言实现的 PHPRPC 服务器上的过程。它不但支持简单的整数、实数、字符串等基本类型,而且支持数组和所有 Java 中可以序列化的对象的传递。另外,PHPRPC for Java 最重要的一点是,它支持加密传输,让你无需部署 https 也可以安全传输数据,轻而易举的就可以实现 Ajax 安全编程了! 

安装:

安装很简单,首先当然是下载咯, http://www.coolcode.cn/?p=206 这里提供了3个下载地址,其中 CoolCode.CN 下载的始终是最新版本,Live-Share 上是特定的版本,Sf.net 上有所有发布的版本,不过只有 2.1-20060810 及其之后的版本才含有 PHPRPC for Java,所以,下载最新版本就可以了。

下载之后解压缩,你会发现所有语言的版本都有,并且按目录存放的,如果要用它作 Java 的 Ajax 编程,只需要 Java 版本和 js 版本就可以了。

首先要编译 Java 版本,这里提供了两种编译方式,一种是直接使用 JDK 编译,另一种是用 ant 编译,这两种编译方式都很简单,如果没有安装 ant,但是配置好了 JDK 的运行环境的话,直接进入 java 目录,键入 make 就可以编译完成了,不过这种方式只能在 Windows 下编译,因为没有提供 Linux 版本的 shell 脚本。如果安装了 ant 的话,就用 ant 方式编译,从命令行窗口进入 java 目录,键入 ant 就编译完成了,编译之后就会生成一个 phprpc.jar 的包,这种方式生成的 jar 包比较小,在各种系统下都可以运行,不过需要安装 ant,但我想用 Java 开发程序的同志应该都会用 ant 的吧。

OK,现在有了 phprpc.jar,我们就可以用它来做点东西了。 

先说如何建立一个 JSP 的 PHPRPC 服务器。

首先在 Tomcat(或者其它 J2EE 服务器) 的发布目录下,建立一个 WEB-INF 目录,在下面再建立一个 lib 目录,把 phprpc.jar 放在 lib 目录中就可以了。然后在发布目录下建立你要发布服务的 JSP 程序,文件名当然是任意的,这里我们就叫 server.jsp 吧:

代码


<%@ page import="java.lang.*" %>
<%@ page import="org.phprpc.*" %>
<%
PHPRPCServer phprpc_server = new PHPRPCServer(request, response, session);
phprpc_server.add("min", Math.class);
phprpc_server.add(new String[] { "sin", "cos" }, Math.class);
phprpc_server.start();
%>

就这么简单,这样就可以通过 server.jsp 来把 java.lang.Math 类的 min,sin,cos 方法发布给客户端调用了。

如果你在浏览器里键入:http://localhost:8080/server.jsp ,回车之后看到:

代码


phprpc_functions="YTozOntpOjA7czozOiJtaW4iO2k6MTtzOjM6InNpbiI7aToyO3M6MzoiY29zIjt9";

的话,就表示成功了。  

下面我们来看一下如何在 html 中用 js 调用这个服务。

首先把 js\compress\full 目录下的 phprpc_client.js 包含到你的 html 页面里来,这个压缩版本已经包含了所有的依赖程序,所以,你可以单独把它复制到任何目录下使用。

下面来建立一个 Html 页面试试吧:

代码






min(, )





OK,打开试试吧,这个就可以调用服务器端的 min 函数来进行计算了。  

DWR 使用 servlet 发布服务,配置复杂。
PHPRPC for Java 可以直接使用 JSP 发布服务器,不需要任何配置文件的修改,配置简单。

DWR 的数据是明文传输,PHPRPC 内置加密传输机制,在调用时,可以已加密方式传输数据,这对于编写安全的 Ajax 程序更方便。

DWR 只能用于浏览器到服务器的调用,PHPRPC 可以在浏览器中调用服务器上的服务,还可以在任何的 Java 程序中调用服务器端的服务。还可以在 Java 程序中调用任何其它语言编写的 PHPRPC 服务,还可以在任何其它语言的 PHPRPC 客户端中调用 PHPRPC for Java 服务器发布的服务。这一点 PHPRPC 更像 Web Service。但 PHPRPC 发布的服务程序不需要以任何特殊的方式编写,即使系统的类的方法都可以直接发布。