- 浏览: 2290201 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (357)
- J2EE (49)
- JavaScript (40)
- Spring (19)
- Struts (5)
- CSS (8)
- Hibernate (16)
- Java (67)
- DWR (4)
- JSON (3)
- XFIRE (1)
- Tomcat (1)
- Ant (2)
- 设计模式 (2)
- 经典收藏 (2)
- JSP (10)
- Linux (0)
- WebLogic (11)
- myeclipse (13)
- Buffalo (4)
- 文件上传相关 (1)
- oracle (33)
- html (6)
- JSTL (3)
- SVN (2)
- GIT (1)
- 孙卫琴(Java网络编程精解) (1)
- DOM4J (2)
- Swing (1)
- AJAX (1)
- Eclipse (5)
- 日志组件 (3)
- PowerDesigner (1)
- Jquery (22)
- IT技术开发相关网址 (1)
- Nutz (1)
- 其它 (1)
- Velocity (3)
- WebService (1)
- MySql (2)
- Android (1)
- Maven (2)
- Quartz (11)
- Lucene (1)
- springsource (1)
- Junit (1)
- Activiti (0)
最新评论
-
yzlseu:
拼凑,没有营养
Activiti进阶—分配组任务 -
zhangsenhao:
非常赞!代码很清楚
SpringMVC3.0+MyIbatis3.0(分页示例) -
xiamw2000:
分页写得不对,应该是 : order by ${orderNa ...
SpringMVC3.0+MyIbatis3.0(分页示例) -
sheertewtw:
...
SpringMVC:上传与下载 -
kingtoon:
...
XSS之xssprotect
相关链接
1 json-rpc-for-java
http://code.google.com/p/json-rpc-for-java/downloads/list
2 国人的json-rpc-for-java比老外的更好用
http://blog.csdn.net/jxpath/archive/2009/11/27/4888260.aspx
使用之后发现这个框架:JSON-RPC要注意的三个地方,其它还有什么就没有试出来了呀
1 JavaBean对象要用默认的无参构造函数,必须实现 java.io.Serializable序列化接口
2 JS方面: 必须注意:你的参数是String类型请在前后加',如:{username:'张三'}, 如是空值后台也会报错!
在传递对象请确保:参数类型的正确性,如你在age年龄中输入了非数字后台将报错!
3 通过在web.xml中注册的方式不能用!
更多精彩请参见官方示例:有更强大的级联调用
一 环境:XP+Myeclipse6.6+Tomcat7+JDK1.6
二 项目目录结构如下图
1 UserJSON.java
2 User.java
3 web.xml
3 index.jsp
4 TestJSON.java未注册的使用
A TestJSON.java code
B JS调用方式
个人觉得这种方式不错吧!
工程附件说明:
JsonRpcForJava3.2_sample.rar官方示例
TestJsonRPC-project.zip 我的DEMO示例
JSON-RPC-lib.zip 所要的jar重新打包:JSON-RPC.jar文件
1 json-rpc-for-java
http://code.google.com/p/json-rpc-for-java/downloads/list
2 国人的json-rpc-for-java比老外的更好用
http://blog.csdn.net/jxpath/archive/2009/11/27/4888260.aspx
使用之后发现这个框架:JSON-RPC要注意的三个地方,其它还有什么就没有试出来了呀
1 JavaBean对象要用默认的无参构造函数,必须实现 java.io.Serializable序列化接口
2 JS方面: 必须注意:你的参数是String类型请在前后加',如:{username:'张三'}, 如是空值后台也会报错!
在传递对象请确保:参数类型的正确性,如你在age年龄中输入了非数字后台将报错!
3 通过在web.xml中注册的方式不能用!
更多精彩请参见官方示例:有更强大的级联调用
一 环境:XP+Myeclipse6.6+Tomcat7+JDK1.6
二 项目目录结构如下图
1 UserJSON.java
package jcore.jsonrpc.rpcobj; //必须是jcore.jsonrpc.rpcobj包下才可以免注册 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import jcore.jsonrpc.common.JsonRpcObject; import jcore.jsonrpc.entity.User; public class UserJSON extends JsonRpcObject implements java.io.Serializable{ private static final long serialVersionUID = 1L; /** * 直接返回普通类型 * */ public String helloJSONPRC(String userName){ //可从getAllInputParms获取页面值 //String userName = (String)this.getAllInputParms().get("userName"); return "Hello World "+userName +" !"; } /*** * 返回JavaBean类型 * */ public User getUser(){ return new User(1,"张三","123456",25); } public String saveUser(User user){ System.out.println("id: "+user.getUserId() + ",name:" + user.getUserName() + ",password: " + user.getUserPassword() + ",age: " + user.getAge()); return "保存用户成功!"; } /** * 返回List集合 * */ public List<User> getUserAll(){ List<User> users = new ArrayList<User>(); users.add(new User(1,"张三","123456",25)); users.add(new User(2,"李逵","123123",20)); return users; } /** * 返回Map集合 * */ public Map<String,User> getUserMapAll(){ Map<String,User> maps = new HashMap<String,User>(); maps.put("1",new User(1,"张三","123456",25)); maps.put("2",new User(2,"李逵","123123",20)); return maps; } }
2 User.java
package jcore.jsonrpc.entity; public class User implements java.io.Serializable{ private static final long serialVersionUID = 1L; private int userId; private String userName ; private String userPassword; private int age ; public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPassword() { return userPassword; } public void setUserPassword(String userPassword) { this.userPassword = userPassword; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public User(int userId, String userName, String userPassword, int age) { super(); this.userId = userId; this.userName = userName; this.userPassword = userPassword; this.age = age; } /** * 必须注意:JSON-RPC必须要求你的JavaBean对象要用默认的无参构造函数 * */ public User(){ } }
3 web.xml
<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>
3 index.jsp
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>JSON-RPC</title> <script type="text/javascript"> var contextPath = "<%=path%>";// 关键的地方 </script> <script type="text/javascript" charset="UTF-8" src="js/JsonRpcClient.js"></script> <script type="text/javascript"> var myrpc = rpc.UserJSON; /** 传递变通字符串 */ function helloName(){ var userName = document.getElementById("userName").value; alert(myrpc.helloJSONPRC(userName)); } /** 传递javaBean对象 */ function saveUser(){ /** 必须注意:你的参数是String类型请在前后加',如:{username:'张三'} 如是空值后台也会报错!! 在传递对象请确保:参数类型的正确性,如你在age年龄中输入了非数字后台将报错! */ var user = "{"; user += "userId:"+ document.getElementById("userId").value; user += ",userName:'"+document.getElementById("userName").value+"'"; user += ",userPassword:'"+document.getElementById("userPassword").value+"'"; user += ",age:"+document.getElementById("age").value; user += "}"; var message = myrpc.saveUser(user); alert(message); } /** 获取对象 */ function getUser(){ var user = myrpc.getUser(); document.getElementById("userId").value = user.userId; document.getElementById("userName").value = user.userName; document.getElementById("userPassword").value = user.userPassword; document.getElementById("age").value = user.age; } /** 获取集合对象 */ function listUser(){ var users = myrpc.getUserAll(); var size = users.length; var userInfo = "<table border='1'>"; userInfo += "<tr>"; userInfo += "<td>ID</td>"; userInfo += "<td>姓名</td>"; userInfo += "<td>密码</td>"; userInfo += "<td>年龄</td>"; userInfo += "</tr>"; var user = ''; for(var i =0;i<size;i++){ user = users[i]; userInfo += "<tr>"; userInfo += "<td>"+user.userId+"</td>"; userInfo += "<td>"+user.userName+"</td>"; userInfo += "<td>"+user.userPassword+"</td>"; userInfo += "<td>"+user.age+"</td>"; userInfo += "</tr>"; } userInfo += "</table>"; document.getElementById("userInfo").innerHTML = userInfo; } /** 获取Map对象 */ function mapUser(){ var users = myrpc.getUserMapAll(); var size = users.length; var userInfo = "<table border='1'>"; userInfo += "<tr>"; userInfo += "<td>ID</td>"; userInfo += "<td>姓名</td>"; userInfo += "<td>密码</td>"; userInfo += "<td>年龄</td>"; userInfo += "</tr>"; var user = ''; for(var u in users){ user = users[u]; if(user.userId == undefined){ break; } userInfo += "<tr>"; userInfo += "<td>"+user.userId+"</td>"; userInfo += "<td>"+user.userName+"</td>"; userInfo += "<td>"+user.userPassword+"</td>"; userInfo += "<td>"+user.age+"</td>"; userInfo += "</tr>"; } userInfo += "</table>"; document.getElementById("userInfo").innerHTML = userInfo; } function testRegObject(){ alert(rpc.getRpcObj("com.liuzd.json.web.action.TestJson").testHello("欢迎天涯!!")); } </script> </head> <body> ID: <input type="text" name="userId" id="userId"> <br> 姓名: <input type="text" name="userName" id="userName"> <br> 密码: <input type="text" name="userPassword" id="userPassword"> <br> 年龄:<input type="text" name="age" id="age"> <br> <input type="button" value="测试" onclick="helloName();"> <br> <input type="button" value="获取User" onclick="getUser();"> <br> <input type="button" value="保存User" onclick="saveUser();"> <br> <input type="button" value="List显示" onclick="listUser();"> <br> <input type="button" value="map显示" onclick="mapUser();"> <br> <input type="button" value="测试未注册的对象" onclick="testRegObject();"> <br> <div id="userInfo"> </div> </body> </html>
4 TestJSON.java未注册的使用
A TestJSON.java code
package com.liuzd.json.web.action; // 不是jcore.jsonrpc.rpcobj包下要进行注册 public class TestJson implements java.io.Serializable{ private static final long serialVersionUID = 1L; public String testHello(String hello){ return hello; } }
B JS调用方式
function testRegObject(){ alert(rpc.getRpcObj("com.liuzd.json.web.action.TestJson").testHello("欢迎天涯!!")); }
个人觉得这种方式不错吧!
工程附件说明:
JsonRpcForJava3.2_sample.rar官方示例
TestJsonRPC-project.zip 我的DEMO示例
JSON-RPC-lib.zip 所要的jar重新打包:JSON-RPC.jar文件
- JSON-RPC-lib.zip (112.8 KB)
- 下载次数: 38
- TestJsonRPC-project.zip (125.9 KB)
- 下载次数: 39
- JsonRpcForJava3.2_sample.rar (833.9 KB)
- 下载次数: 28
发表评论
-
java json-lib & jQuery & jsonp
2016-06-30 11:31 832参考链接: 1、http://hanqunfeng.iteye ... -
JavaScript异步编程学习
2016-06-19 14:59 796一 JavaScript学习资源 1、Reg Braithwa ... -
jQuery图表(jqPlot,Highcharts)
2012-05-18 00:48 23567jQuery图表在http://www.oschina.net ... -
JavaScript中的arguments,callee,caller,call,appy [备忘]
2012-05-08 23:13 1627转载:JavaScript中的argume ... -
IE,FF获取文件绝对路径方法
2012-03-25 23:30 4995参考资料 1 解决Firefox3,IE7,IE8上传图片预览 ... -
My97DatePicker常用练习
2011-09-15 17:03 5155参考官网资料:http://www.m ... -
jQuery之实战(checkbox,table)
2011-08-19 16:22 3828实现功能如下:参考图片 1 页面加载时效果 2 全选效果 ... -
jQuery之checkbox(复选框)
2011-08-18 17:06 2109业务需求:经常在用户登记中有这样的东西,只选择其中一项或者多项 ... -
jQuery之radio(单选)
2011-08-18 15:41 2465页面代码如下: <inpu ... -
jQuery之DOM
2011-08-17 14:45 1484参考资料 1 跳蚤的小窝:)jQuery对象和DOM对象【jQ ... -
jQuery之入门(ready)
2011-08-17 11:46 2125参考资料 1 jquery $(document).ready ... -
IE下调试JS的小工具-CompanionJS
2011-08-02 13:12 1917参考资料 1 推荐一个IE下调试JS的小工具-Companio ... -
Frameset导致Cookies和Session丢失的原因及解决办法
2011-07-25 12:28 4376参考资料 1 Frameset导致Cookies和Sessio ... -
js获取html元素宽度的思考
2011-04-13 17:17 2506转载: js获取html元素宽度的思考 http://blog ... -
iframe自适应,跨域,JS的document.domain
2011-04-13 17:10 4764转载:iframe自适应,跨域 ... -
MIME帮助手册
2011-04-13 17:06 1394转载:MIME帮助手册 http://www.cnblogs ... -
Javascript:通用不间断滚动&省、市、地区联动选择JS封装类
2011-04-13 12:40 3599通用不间断滚动JS封装类&省、市、地区联动选择JS封装 ... -
JS:表格排序
2011-03-24 15:09 2827参考资料 js的table排序,支持多浏览器,多列同时排序,自 ... -
JavaScript CSS Style属性对照表
2011-03-14 16:41 1456转载:JavaScript CSS Style属 ... -
HTML A标记事件写法
2011-01-05 17:24 2921HTML A标记事件写法 出现状况:点击A标记事件后,整个框 ...
相关推荐
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,常用于客户端-服务器通信,特别是在Web应用中。它利用JSON作为数据交换格式,因为JSON易于阅读、编写,并且对机器...
"android-json-rpc"正是这样一款专为Android平台设计的JSON-RPC库,它简化了开发者在Android应用程序中执行JSON-RPC服务调用的过程。 该库的核心特性包括: 1. **简单易用的API**:android-json-rpc提供了一个直观...
赠送jar包:json-smart-2.3.jar; 赠送原API文档:json-smart-2.3-javadoc.jar; 赠送源代码:json-smart-2.3-sources.jar; 赠送Maven依赖信息文件:json-smart-2.3.pom; 包含翻译后的API文档:json-smart-2.3-...
赠送jar包:json-smart-2.4.7.jar; 赠送原API文档:json-smart-2.4.7-javadoc.jar; 赠送源代码:json-smart-2.4.7-sources.jar; 赠送Maven依赖信息文件:json-smart-2.4.7.pom; 包含翻译后的API文档:json-smart...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Java中实现JSON-RPC,可以帮助开发者构建分布式系统,...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Java环境中实现JSON-RPC,可以帮助开发者构建分布式系统...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。JSON-RPC 1.0是该协议的一个早期版本,它允许客户端和...
<groupId>net.sf.json-lib</groupId> <artifactId>json-lib <version>2.4 <classifier>jdk15 或者直接下载这个包
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Python中,json-rpc-python库提供了一种方便的方式...
### JSON-RPC 2.0 规范解析 #### 概述 JSON-RPC 2.0 是一种无状态、轻量级的远程过程调用(RPC)协议,旨在简化跨网络的应用通信流程。该规范定义了一系列数据结构及处理规则,以支持不同消息传输环境(如基于 ...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Web服务和分布式系统中,JSON-RPC提供了一种简单的方式...
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在Java环境中,JSON-RPC允许应用程序通过网络调用其他...
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架. 利用它内置的一个轻级量JSON-RPC JavaScripIt客户端,可以让你透明地在JavaScript中调用Java代码。JSON-RPC-Java可运行在Servlet容器中如Tomcat也可以运行在...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,常用于客户端-服务器通信,特别是在分布式系统中。它利用JSON(JavaScript Object Notation)作为数据交换格式,...
JSON-RPC是一种轻量级的远程过程调用(RPC)协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。在C++中实现JSON-RPC可以为软件开发带来诸多便利,例如跨语言通信、简化接口设计等。你提供的"JsonRpc...
JSON-RPC(JavaScript Object Notation Remote Procedure Call)是一种轻量级的远程过程调用协议,常用于客户端和服务器之间的通信。这个"json-rpc-1.0.zip"压缩包包含了一个Java实现的JSON-RPC 1.0版本的库,主要...
本压缩包“java开发常用jar包之json-rpc.rar”包含了与JSON-RPC相关的Java库,便于开发者集成到他们的项目中。 一、JSON-RPC协议 1. JSON-RPC简介:JSON-RPC是一种基于JSON的RPC协议,它定义了如何通过HTTP或其他...