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文件中的代码。
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
}
});
需要的pbj.js与protobuf.js在附件的js.zip中
分享到:
相关推荐
4. **WebSockets**:为实时通信提供双向通信通道,Java后端可以创建WebSocket服务器,JavaScript前端通过WebSocket API与其建立连接,实现实时数据交互。 5. **GWT(Google Web Toolkit)**:GWT允许开发者使用Java...
最近工作中为了赶进度,在项目中使用了WebView组件,用到了html与java的数据交互,也就是javascript与java的数据交互,本文即介绍了在应用中添加WebView,以及js如何与java进行数据的交互。
在Android开发中,JavaScript(JS)与Java的交互是一个常见的需求,特别是在构建混合式移动应用时。本主题将深入探讨如何实现Java与JS之间的通信,包括互相调用函数以及传递参数。以下是一份详细的指南: 1. **...
Java和JavaScript交互是一种常见的技术实践,特别...总之,Java和JavaScript之间的交互涉及多个层面,包括跨域通信、实时通信和数据交换等。开发者可以根据实际需求选择合适的交互方式,以实现高效、安全的前后端协作。
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容,并实现Java与JavaScript之间的交互。这种交互能力使得我们可以利用Web技术来增强原生应用的功能,同时保持了良好的用户体验。...
这种技术的核心是实现客户端JavaScript与服务器端Java代码的交互,使得无需刷新整个页面就能更新部分网页内容,提高了用户体验。在本文中,我们将深入探讨AjaxRPC的工作原理、实现方式以及其在实际项目中的应用。 1...
在Android应用开发中,有时我们需要实现Java代码与JavaScript的交互,以便在原生应用和Web内容之间传递数据或调用功能。这种需求在混合式应用开发中尤其常见,例如使用WebView加载H5页面并实现一些特定的原生功能。...
本资源包“Flex与Java使用Json数据交互JAR包”提供了必要的库,使得Flex客户端可以有效地与Java服务器进行JSON(JavaScript Object Notation)数据格式的交换,这是一种轻量级的数据交换格式,易于人阅读和编写,...
总结,Java与Ext2.0的数据交互涉及到前后端的配合,Java负责处理业务逻辑和数据持久化,Ext2.0则专注于用户界面和交互。在这个过程中,JSON通常作为数据传输的媒介,而XML文件可能会作为辅助数据源。通过合理的架构...
在Android开发中,JavaScript与Java交互是一个常见的需求,特别是在构建混合式移动应用时。这个"Android js与java交互改进最终版"项目旨在提供一个兼容性良好的解决方案,支持Android 4.2以下和4.2及以上版本。在这...
【JavaApplet与JavaScript交互方法的探讨】 JavaApplet是一种早期的Web技术,它允许开发者在浏览器中嵌入可执行的Java代码,从而提供更丰富的交互性和动态功能。JavaApplet通常用于创建复杂的用户界面或者在Web页面...
Ajax(Asynchronous JavaScript and XML)是一种使用 JavaScript 语言和 XML格式数据交换的技术,允许 Web 应用程序在不刷新页面的情况下与服务器进行数据交互。Ajax 技术可以实现页面的局部刷新,提高用户体验。 ...
本教程将深入讲解如何通过AJAX技术实现ECharts与后台MySQL数据库的数据交互,以创建动态、实时的数据展示Demo。 一、ECharts简介 ECharts是一款轻量级的图表库,支持多种图表类型,可以灵活地进行配置和定制,满足...
**WebView使用详解** ...理解并熟练运用WebView的使用及Java与JS的交互,将极大地提升应用的功能性和用户体验。在实际开发中,我们需要根据项目需求,合理配置WebView的设置,并注重安全问题,确保应用的稳定运行。
当谈到“Flash与Java的交互”,我们主要关注的是如何在Flash内容与Java应用程序之间建立通信桥梁,实现数据交换和功能调用。 1. **基础知识**: - Flash:Adobe Flash是一款创建互动内容、动画和应用程序的软件,...
这在构建动态网页时尤其重要,因为Java代码通常用于处理服务器端逻辑,而JavaScript则负责客户端交互。这篇博客将探讨如何在JSP中实现Java与JavaScript之间的值传递。 首先,让我们了解JSP的基本结构。JSP页面本质...
本文将深入探讨如何在Android中实现Java与JavaScript的交互。 首先,我们创建一个`WebView`实例,并在布局文件中添加它。在`activity_main.xml`中,可以这样设置: ```xml android:id="@+id/webView" android:...
这是java与echarts后台数据交互的代码,是用ajax交互的
在Android开发中,Java和JavaScript的交互是移动应用开发中的常见需求,特别是在处理与Web相关的功能时。Android提供了多种方式来实现两者之间的通信,使得原生应用能够利用Web技术的灵活性和便利性。以下是四种主要...
本文将深入探讨如何使用Android与H5(HTML5)进行混合开发,特别是通过WebView实现小实例的数据交互和界面交互,以及Java与JavaScript之间的调用。 **一、Android WebView组件** WebView是Android系统提供的一种...