`
wbj0110
  • 浏览: 1598645 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用JSON-RPC for java(AJAX)实例

阅读更多

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实例

    JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。...我们可以很方便的使用JSON-RPC-Java来开发我的们Ajax应用。

    json-rpc-java-1.0.zip

    本压缩包“json-rpc-java-1.0.zip”包含了JSON-RPC在Java平台上的实现及相关使用示例。 首先,JSON-RPC的基本原理是,客户端通过HTTP请求将一个JSON格式的请求体发送到服务器,请求体包含了要调用的方法名和参数。...

    JSON.rar_JSON_JSON-RPC.jar_jsonRPC.J

    在"jsonrpc.j"文件中,可能包含了JSON-RPC的相关代码示例或者API接口定义,这对于理解和使用JSON-RPC协议至关重要。 在学习和使用JSON时,你需要了解JSON的语法规则,例如如何定义对象和数组,字符串的表示方式,...

    JsonRpc小实例

    JSON-RPC(JavaScript Object Notation Remote ...通过理解和实践"JsonRpc小实例",开发者可以掌握如何在Web应用中利用JSON-RPC和Ajax实现高效的前后端交互,提高用户体验,同时降低服务器与客户端之间的通信成本。

    ajax jsonrpc包的使用

    1. **导入 JavaScript 和 Java 库**:首先,需要将 `jsonrpc.js` 文件放入 Web 应用的公共目录,比如 `WebRoot`,以便在 JSP 页面中引用。同时,将 `jsonrpc.jar` 添加到 `WEB-INF/lib` 目录,使其成为应用的类路径...

    超轻量压缩传输js2java rpc框架(XtZPStream v1.0)

    - **字符集要求:** 使用XtZPStream和json-rpc-for-java框架时,必须确保使用UTF-8字符集。 - **下载地址:** 该框架可以在官方GitHub项目页面下载,即[http://code.google.com/p/json-rpc-for-java/downloads/list]...

    jsonrpc.js:没有 jquery 的简单 jsonrpc 2.0

    JSONRPC.js 是一个轻量级的JavaScript库,专注于实现JSON-RPC 2.0协议,无需依赖jQuery。JSON-RPC是一种远程过程调用(RPC)的协议,它使用JSON(JavaScript Object Notation)作为数据交换格式,使得客户端可以向...

    ajax应用j2ee实例

    - **TestJsonRpc**: 这个例子可能展示了如何使用 Json-RPC(Remote Procedure Call)协议进行Ajax通信。Json-RPC是一种轻量级的远程调用协议,它允许客户端以JSON格式发送一个请求到服务器,然后服务器以JSON格式...

    web 2.0入门者 Ajax修炼之道-包含源码

    不仅教会你Ajax的技术细节,同时还带你了解各种功能强大的主流Ajax工具包(Dojo、Prototype、 Script.aculo.us、DWR、Backbase、SmartClient、Ajax.NET、SAJAX、JSON-RPC),掌握Ajax 实时查看源代码的方法以及进行...

    Ajax 修炼之道(附源码)

    不仅教会你Ajax的技术细节,同时还带你了解各种功能强大的主流Ajax工具包(Dojo、Prototype、 Script.aculo.us、DWR、Backbase、SmartClient、Ajax.NET、SAJAX、JSON-RPC),掌握Ajax 实时查看源代码的方法以及进行...

    swato教程

    SWATO使用JSON-RPC-Java机制实现客户端JavaScript远程调用服务器端Java和EJB接口的功能。客户端接收到的数据可以是JSON格式,SWATO后端直接将Java对象映射为JSON;也可以是XML格式,客户端通过SWATO客户端引擎将XML...

    JAVA上百实例源码以及开源项目源代码

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    jrpc2-ajax:jrpc2的Ajax传输

    **标题:“jrpc2-ajax:jrpc2的Ajax传输”** ...总之,`jrpc2-ajax`是JavaScript开发中一个强大且灵活的工具,它使得前端开发者可以轻松地利用Ajax实现JSON-RPC通信,从而构建出高性能、响应式的Web应用。

    Ajax讲解,dwr配置

    在实际开发中,还需要关注Ajax的一些挑战和解决方案,例如浏览器兼容性问题、跨域安全限制、Java数据序列化、JSON-RPC、DOJO、GWT、iframe、Prototype库的使用、超时与错误处理、Reverse AJAX(Comet技术)以保持...

    SD大会精品讲座:利用AJAX/Java 技术建立高流量的即时双向沟通网站

    - **简介**:GWT是一个开源的Java到JavaScript编译器,允许开发者使用Java语言编写前端代码。 - **优势**:提供了强大的开发工具和支持,有助于构建复杂的Web应用程序。 #### 五、系统化管理client/server间的...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics