`

JAVA与JS的数据交互

 
阅读更多
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中

 

  • js.zip (14.6 KB)
  • 下载次数: 82
0
1
分享到:
评论
2 楼 qiqibaba1990 2017-01-10  
       
1 楼 mida 2012-05-30  
有点文字时不时更好了。

相关推荐

    Java和JavaScript库进行交互

    4. **WebSockets**:为实时通信提供双向通信通道,Java后端可以创建WebSocket服务器,JavaScript前端通过WebSocket API与其建立连接,实现实时数据交互。 5. **GWT(Google Web Toolkit)**:GWT允许开发者使用Java...

    Java与JS交互

    最近工作中为了赶进度,在项目中使用了WebView组件,用到了html与java的数据交互,也就是javascript与java的数据交互,本文即介绍了在应用中添加WebView,以及js如何与java进行数据的交互。

    JS与Java交互,Java与JS 交互(参数)

    在Android开发中,JavaScript(JS)与Java的交互是一个常见的需求,特别是在构建混合式移动应用时。本主题将深入探讨如何实现Java与JS之间的通信,包括互相调用函数以及传递参数。以下是一份详细的指南: 1. **...

    java+js交互Demo

    Java和JavaScript交互是一种常见的技术实践,特别...总之,Java和JavaScript之间的交互涉及多个层面,包括跨域通信、实时通信和数据交换等。开发者可以根据实际需求选择合适的交互方式,以实现高效、安全的前后端协作。

    webview中java与js安全交互

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容,并实现Java与JavaScript之间的交互。这种交互能力使得我们可以利用Web技术来增强原生应用的功能,同时保持了良好的用户体验。...

    ajaxRPC java与javaScript交互

    这种技术的核心是实现客户端JavaScript与服务器端Java代码的交互,使得无需刷新整个页面就能更新部分网页内容,提高了用户体验。在本文中,我们将深入探讨AjaxRPC的工作原理、实现方式以及其在实际项目中的应用。 1...

    Android中java和js交互

    在Android应用开发中,有时我们需要实现Java代码与JavaScript的交互,以便在原生应用和Web内容之间传递数据或调用功能。这种需求在混合式应用开发中尤其常见,例如使用WebView加载H5页面并实现一些特定的原生功能。...

    Flex与Java使用Json数据交互JAR包

    本资源包“Flex与Java使用Json数据交互JAR包”提供了必要的库,使得Flex客户端可以有效地与Java服务器进行JSON(JavaScript Object Notation)数据格式的交换,这是一种轻量级的数据交换格式,易于人阅读和编写,...

    Java Ext2.0 数据交互

    总结,Java与Ext2.0的数据交互涉及到前后端的配合,Java负责处理业务逻辑和数据持久化,Ext2.0则专注于用户界面和交互。在这个过程中,JSON通常作为数据传输的媒介,而XML文件可能会作为辅助数据源。通过合理的架构...

    Android js与java交互改进最终版

    在Android开发中,JavaScript与Java交互是一个常见的需求,特别是在构建混合式移动应用时。这个"Android js与java交互改进最终版"项目旨在提供一个兼容性良好的解决方案,支持Android 4.2以下和4.2及以上版本。在这...

    JavaApplet与JavaScript交互方法的探讨.pdf

    【JavaApplet与JavaScript交互方法的探讨】 JavaApplet是一种早期的Web技术,它允许开发者在浏览器中嵌入可执行的Java代码,从而提供更丰富的交互性和动态功能。JavaApplet通常用于创建复杂的用户界面或者在Web页面...

    Java web与数据库交互实现三级联动.docx

    Ajax(Asynchronous JavaScript and XML)是一种使用 JavaScript 语言和 XML格式数据交换的技术,允许 Web 应用程序在不刷新页面的情况下与服务器进行数据交互。Ajax 技术可以实现页面的局部刷新,提高用户体验。 ...

    ECharts前台后台数据交互Demo

    本教程将深入讲解如何通过AJAX技术实现ECharts与后台MySQL数据库的数据交互,以创建动态、实时的数据展示Demo。 一、ECharts简介 ECharts是一款轻量级的图表库,支持多种图表类型,可以灵活地进行配置和定制,满足...

    WebView使用及在WebView中Java和JS交互

    **WebView使用详解** ...理解并熟练运用WebView的使用及Java与JS的交互,将极大地提升应用的功能性和用户体验。在实际开发中,我们需要根据项目需求,合理配置WebView的设置,并注重安全问题,确保应用的稳定运行。

    FLASH与JAVA的交互

    当谈到“Flash与Java的交互”,我们主要关注的是如何在Flash内容与Java应用程序之间建立通信桥梁,实现数据交换和功能调用。 1. **基础知识**: - Flash:Adobe Flash是一款创建互动内容、动画和应用程序的软件,...

    JSP中java代码与js之间的传值

    这在构建动态网页时尤其重要,因为Java代码通常用于处理服务器端逻辑,而JavaScript则负责客户端交互。这篇博客将探讨如何在JSP中实现Java与JavaScript之间的值传递。 首先,让我们了解JSP的基本结构。JSP页面本质...

    android中的webview --实现java与js交互

    本文将深入探讨如何在Android中实现Java与JavaScript的交互。 首先,我们创建一个`WebView`实例,并在布局文件中添加它。在`activity_main.xml`中,可以这样设置: ```xml android:id="@+id/webView" android:...

    java与echarts后台交互.txt

    这是java与echarts后台数据交互的代码,是用ajax交互的

    Android java 和javascript交互的四种方式

    在Android开发中,Java和JavaScript的交互是移动应用开发中的常见需求,特别是在处理与Web相关的功能时。Android提供了多种方式来实现两者之间的通信,使得原生应用能够利用Web技术的灵活性和便利性。以下是四种主要...

    android + h5 混合开发 webview 版 小实例 + 数据交互 + 界面交互+ js调用java +java 调用js

    本文将深入探讨如何使用Android与H5(HTML5)进行混合开发,特别是通过WebView实现小实例的数据交互和界面交互,以及Java与JavaScript之间的调用。 **一、Android WebView组件** WebView是Android系统提供的一种...

Global site tag (gtag.js) - Google Analytics