1、首先配置web.xml加入JSON-RPC的servlet监听:
<servlet> <servlet-name>JSONRPCServlet</servlet-name> <servlet-class> jcore.jsonrpc.servlet.JSONRPCServlet </servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JSONRPCServlet</servlet-name> <url-pattern>/JRPC</url-pattern> </servlet-mapping>
注:如果项目中使用了Sturts2,则需要令配置一个filter来让servlet生效
2、将JSON-RPC.jar加入项目中
3、创建需要使用JSON-RPC远程调用的java类
package jcore.jsonrpc.rpcobj;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import jcore.jsonrpc.common.JsonRpcObject;
public class MyTestJsonRPC extends JsonRpcObject implements Serializable {
//注:需要继承JsonRpcObject类,且实现序列化接口
private List myList = new ArrayList();
private Map map = new HashMap();
public MyTestJsonRPC()
{
myList.add("good");
//myList.add(new TestDomain());
// map中也可以放入复合对象
map.put("first", "第一条值");
map.put("p2", new Date());
//map.put("domain", myList.get(1));
}
/***
* 返回Map对象
* @return
*/
public Map getMap()
{
return map;
}
/***
* 获取一个普通对象
* @return
*/
public Object getStr()
{
return myList.get(0);
}
/***
* 获取一个复合对象
* @return
*/
public Object getMyObj()
{
return myList.get(1);
}
/***
* 获取List对象
* @return
*/
public List getList()
{
return myList;
}
}
4、将JsonRpcClient.js文件加入项目中(WEB页面需要引入该JS)
5、前台页面使用JSON-RPC远程调用Java对象
在需要远程调用的前台页面代码中增加如下内容:
5.1 jsp中注册需要远程调用的java对象
<% jcore.jsonrpc.common.JsonRpcRegister.registerObject(request, "myTestJsonRPC", jcore.jsonrpc.rpcobj.MyTestJsonRPC.class); %>
5.2引入JSON-RPC客户端JS并设置项目的路径变量
<script charset="UTF-8" type="text/JavaScript" > var contextPath="<%=path%>";// 关键的地方 </script> <script charset="UTF-8" type="text/javascript" src="<%=basePath%>JsonRpcClient.js"> </script>
注:path变量是jsp页面头定义的变量
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
5.3远程调用
<script charset="UTF-8" type="text/JavaScript" > //fnGetRpc("MyTestJsonRPC"); var myrpc = rpc.myTestJsonRPC; var obj=myrpc.getStr(); alert(obj); </script>
相关推荐
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。...我们可以很方便的使用JSON-RPC-Java来开发我的们Ajax应用。
本压缩包“json-rpc-java-1.0.zip”包含了JSON-RPC在Java平台上的实现及相关使用示例。 首先,JSON-RPC的基本原理是,客户端通过HTTP请求将一个JSON格式的请求体发送到服务器,请求体包含了要调用的方法名和参数。...
在"jsonrpc.j"文件中,可能包含了JSON-RPC的相关代码示例或者API接口定义,这对于理解和使用JSON-RPC协议至关重要。 在学习和使用JSON时,你需要了解JSON的语法规则,例如如何定义对象和数组,字符串的表示方式,...
JSON-RPC(JavaScript Object Notation Remote ...通过理解和实践"JsonRpc小实例",开发者可以掌握如何在Web应用中利用JSON-RPC和Ajax实现高效的前后端交互,提高用户体验,同时降低服务器与客户端之间的通信成本。
1. **导入 JavaScript 和 Java 库**:首先,需要将 `jsonrpc.js` 文件放入 Web 应用的公共目录,比如 `WebRoot`,以便在 JSP 页面中引用。同时,将 `jsonrpc.jar` 添加到 `WEB-INF/lib` 目录,使其成为应用的类路径...
- **字符集要求:** 使用XtZPStream和json-rpc-for-java框架时,必须确保使用UTF-8字符集。 - **下载地址:** 该框架可以在官方GitHub项目页面下载,即[http://code.google.com/p/json-rpc-for-java/downloads/list]...
JSONRPC.js 是一个轻量级的JavaScript库,专注于实现JSON-RPC 2.0协议,无需依赖jQuery。JSON-RPC是一种远程过程调用(RPC)的协议,它使用JSON(JavaScript Object Notation)作为数据交换格式,使得客户端可以向...
- **TestJsonRpc**: 这个例子可能展示了如何使用 Json-RPC(Remote Procedure Call)协议进行Ajax通信。Json-RPC是一种轻量级的远程调用协议,它允许客户端以JSON格式发送一个请求到服务器,然后服务器以JSON格式...
不仅教会你Ajax的技术细节,同时还带你了解各种功能强大的主流Ajax工具包(Dojo、Prototype、 Script.aculo.us、DWR、Backbase、SmartClient、Ajax.NET、SAJAX、JSON-RPC),掌握Ajax 实时查看源代码的方法以及进行...
不仅教会你Ajax的技术细节,同时还带你了解各种功能强大的主流Ajax工具包(Dojo、Prototype、 Script.aculo.us、DWR、Backbase、SmartClient、Ajax.NET、SAJAX、JSON-RPC),掌握Ajax 实时查看源代码的方法以及进行...
SWATO使用JSON-RPC-Java机制实现客户端JavaScript远程调用服务器端Java和EJB接口的功能。客户端接收到的数据可以是JSON格式,SWATO后端直接将Java对象映射为JSON;也可以是XML格式,客户端通过SWATO客户端引擎将XML...
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...
**标题:“jrpc2-ajax:jrpc2的Ajax传输”** ...总之,`jrpc2-ajax`是JavaScript开发中一个强大且灵活的工具,它使得前端开发者可以轻松地利用Ajax实现JSON-RPC通信,从而构建出高性能、响应式的Web应用。
在实际开发中,还需要关注Ajax的一些挑战和解决方案,例如浏览器兼容性问题、跨域安全限制、Java数据序列化、JSON-RPC、DOJO、GWT、iframe、Prototype库的使用、超时与错误处理、Reverse AJAX(Comet技术)以保持...
- **简介**:GWT是一个开源的Java到JavaScript编译器,允许开发者使用Java语言编写前端代码。 - **优势**:提供了强大的开发工具和支持,有助于构建复杂的Web应用程序。 #### 五、系统化管理client/server间的...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...