如何使用 PHPRPC for Java 来编写 Ajax 程序

在最新发布的 PHPRPC 2.1-20060810 版本中,包含了 PHPRPC for Java 版本。

PHPRPC for Java 不但可以使用 Servlet 发布服务,还可以简单的使用 JSP 来发布服务,并且可以直接发布 Java 内置类的方法。它支持在 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/show-206-1.html 这里提供了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 页面试试吧:

<html>
<head>
<script type="text/javascript" src="phprpc_client.js"></script>
</head>
<body>
 
min(
<input id="a" type="text" />, <input id="b" type="text" />) <input id="minbtn" type="button" value="=" /> <input id="c" type="text" />
 
<script type="text/javascript">
var a = document.getElementById("a");
var b = document.getElementById("b");
var c = document.getElementById("c");
 
phprpc_client.create('rpc_client');
 
rpc_client.use_service("http://localhost:8080/server.jsp");
 
document.getElementById("minbtn").onclick= function() {
    if (rpc_client.ready) {
        c.value = "loading...";
        rpc_client.min(Number(a.value), Number(b.value), function (result) {
            c.value = result;
        });
    }
    else {
        alert("RPC not ready, wait a moment, please!");
    }
}
</script>
</body>
</html>

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

标签: Ajax, Java, PHPRPC

« 上一篇 | 下一篇 »

只显示10条记录相关文章

发表评论

评论 (必须):