【Jsp精品源码栏目提醒】:网学会员鉴于大家对Jsp精品源码十分关注,论文会员在此为大家搜集整理了“【精品】JSON+RPC+Java - 其它资料”一文,供大家参考学习
JSON RPC Java 简单交流提纲JSON RPC 基于:1、JavaScript 直接量 JavaScript 1.1以上 2、AJAXJavaScript的直接量:1、对象直接量2、数组直接量3、字符串直接量4、基本数据类型直接量对象直接量:对象直接量是由一个列表构成,这个列表的元素是用冒号分隔的属性/值对,元素之间用逗号隔开,整个列表封闭在大括号之中。
对象直接量,假设我们定义一个人的对象:var personname:”大明”age:60sex:”男”可以用 person. name、 person.age取得对象的属性。
例子: Prototype.js中的属性和方法也是这样定义的。
嵌套:直接量里面可以嵌套直接量,可以无限级的嵌套。
var personname:”大明”age:30sex:”男”son:name:”小明”age:5sex:”男”可以这样取值: person.son.name数组直接量:一个数组直接量是零或更多表达式的列表,它包含在一对方括号内( )。
var arrvar arr“one””two”var arr123var arrname:”大明”age:30name:”小明”age:5字符串直接量:字符串直接量是零或若干封装在双括号(“)或单括号(‘)内的字符。
“大明”’小明’基础数据类型直接量:布尔: truefalse整数:123十进制0123八进制0x123十六进制浮点数:3.1415 -3.1E12 .1e12 和 2E-12简单应用:HelloWorld:1. 创建Web工程;2. 导入JSON Java包,这里我们把源代码导进来;3. 修改web.xml;4. 创建服务端对象Hello.java,注意要实现序列化方法;5. 创建hello.
jsp6. 发布,运行。
“字符串”应用:1、返回字符串:sayHello2、 传入字符串:sayHelloString name对象:1、返回对象:getPerson2、传入对象:sayHelloPerson person问题:如果相同方法名,相同参数个数,如何匹配?比如sayHelloPerson person和sayHelloPerson1 person,无法区别命中,我找到的规律是,谁排在后面,就先命中谁。
所以尽量避免这种多态,不同的参数用不同的方法名。
嵌套对象:JSON会遍历所有的成员变量,以及成员变量的成员变量,进行序列化。
1、返回嵌套对象:getPersonsex:u7537javaClass:test.Parentage:30name:u5927u660eson:sex:u7537javaClass:test.Personage:5name:u5c0fu660eid:5问题:循环嵌套问题:getFriend返回对象里包含对自己的应用,JSON返回错误:error:code:593msg:bean test.Friend circular referenceid:62、传入嵌套对象setParentParent parent3、返回通用对象getObjectString className其他数据类型和基本对象类型,同以上类似。
进阶(1):1、对象序列化器;2、创建自己的对象序列化器;3、枚举。
原来json包基于jdk1.4,不支持枚举,创建枚举的序列化器;4、异步调用。
1、对象序列化器见Json源代码2、创建自己的对象序列化器PersonSerializer3、枚举EnumSerializer4、异步调用function callbackresultexception调用的时候,把回调函数作为第一个参数,则自动异步调用。
这里跟.net不一样,.net的回调函数放在最后一个参数,为了跟.net一致,iPgisWeb里也改成最后一个参数为回调函数进阶(2):1、客户端异常处理;2、Session超时。
1、客户端异常处理;对json调用进行try…catch,根据异常的情况进行相应的处理。
2、有两种方法:1、session时发布一个时间,转到登陆页面。
2)、间隔10分钟,同服务器进行一次握手。