Java与Javascript交互(使用Protobuf协议)
来源:互联网 发布:mac如何制作铃声 编辑:程序博客网 时间:2024/04/27 20:04
1. 定义协议
.proto代码
package xmty;option java_package = "comcom.xmty.java"; //定义包option java_outer_classname = "TestTest"; //定义类名message People{ //结构化数据required string name = 1;repeated string list = 2;}
定义好.proto文件后,使用对应版本的
protoc.exe在dos下生成java文件
protoc.exe --java_out=./ protocname.proto
然后,将生成的文件引入到JAVA项目中。
调用方法如下:
System.out.println("-----------------====");People.Builder people = People.newBuilder();people.setName("zms");for (int i = 0; i < 10; i++) {people.addList("list"+i);} System.out.println(People.type.MALE.getNumber()+"_-------------");People p = people.build();System.out.println(people); PrintWriter os = resp.getWriter();resp.setContentType("application/octet-stream");String base64Result = Base64.encodeBytes(p.toByteArray());System.out.println(base64Result);os.write(base64Result);os.close();
页面的用法:
<script type="text/javascript" src="jquery-1.6.4.js"></script><script type="text/javascript" src="protobuf.js"></script><script type="text/javascript" src="pbj.js"></script><script type="text/javascript" src="people.proto.js"></script><script type="text/javascript">$(function(){ $.get("test.do",function(data){var s = new xmty.People();$("#111").append(data + "<br/>----------------<br />");s.ParseFromStream(new PROTO.Base64Stream(data));$("#111").append(s + "<br />------------------<br />");for(var i=0;i<s.list.length;i++){var l = s.list[i]; $("#111").append(l + "------------------<br />");}//$("#111").append(s.name + "<br />------------------");}); }); </script>
要在页面使中,则需要,构造一个对应的js文件。
要对应.proto文件中的代码。
people.proto.js代码
if (typeof(xmty)=="undefined") {xmty = {};} xmty.People = PROTO.Message("xmty.People",{ name: { options: {}, multiplicity: PROTO.required, type: function(){return PROTO.string;}, id: 1 },list: {options:{},multiplicity: PROTO.repeated, type: function(){return PROTO.string;}, id: 2 }});
js.zip(pbj.js和protobuf.js)文件以及protobuf-java-2.1.0.jar将会评论区给出下载链接
原文连接:http://zms198983.iteye.com/blog/1544600
0 0
- Java与Javascript交互(使用Protobuf协议)
- Protobuf笔记以及Java Javascript使用实例
- 使用protobuf进行C#与Java通信
- java 与servlet交互,java与JavaScript交互
- protobuf协议原理与应用
- 在Javascript中使用protobuf与c++进行通信
- Google protobuf 协议的使用
- iOS Protobuf和TCP与服务器交互
- java8使用nashorn与javascript直接交互
- Android WebView与JavaScript的交互使用
- Javascript与Java在浏览器中的交互
- webview中,javascript与java交互
- Android WebView Java与JavaScript的交互
- Android中Java 与 JavaScript交互
- java与javaScript交互的方法
- Android WebView----java与javaScript交互
- Android中Java代码与JavaScript交互
- protobuf安装与使用
- Linux内核基础知识
- Swift之贪婪的UIButton
- C++primer plus第六版课后编程练习答案4.4
- MySQL主从复制
- 解析rdf格式的数据
- Java与Javascript交互(使用Protobuf协议)
- Screen-Space Bent Cones (SSBC) in Unity5
- 获取本机MAC地址,创建GUID,硬盘序列号,vs2013代码通过验证
- 在同个工程中使用 Swift 和 Objective-C(Swift 2.0更新)
- iOS开发——如何做一个漂亮的引导页
- iOS Application Life Cycle 应用程序生命周期
- 将 Objective-C 代码迁移到 Swift(Swift 2.0更新)
- spring mvc写XML的时候出现过的问题
- java学习笔记--java第一课,java入门基础篇