公开/公告号CN116414583A
专利类型发明专利
公开/公告日2023-07-11
原文格式PDF
申请/专利权人 金蝶软件(中国)有限公司;
申请/专利号CN202310401890.6
申请日2023-04-11
分类号G06F9/54(2006.01);
代理机构深圳市深佳知识产权代理事务所(普通合伙) 44285;
代理人王曙聘
地址 518057 广东省深圳市南山区科技园科技南十二路2号金蝶软件园A座1-8层
入库时间 2024-01-17 01:15:20
法律状态公告日
法律状态信息
法律状态
2023-07-28
实质审查的生效 IPC(主分类):G06F 9/54 专利申请号:2023104018906 申请日:20230411
实质审查的生效
2023-07-11
公开
发明专利申请公布
技术领域
本申请涉及计算机技术领域,特别涉及一种Web应用与Java平台的交互方法、装置、设备。
背景技术
目前,B/S结构为企业级应用常用的结构,其运行在特定的容器上,具体运行在浏览器上。参见图1所示,图1为使用B/S结构时通过浏览器远程访问Web服务器进行交互的示意图。以客户1和客户2为示例。
B/S结构中往往由前端的Web应用和后端的Java应用组成,如果Web应用需要扩展某一方面的功能需要远程调用服务器上相应的功能代码,Web应用如果需要调用本地的资源如打印机、输入设备等则难以实现,也即,存在Web应用扩展性不好的问题。
发明内容
有鉴于此,本申请的目的在于提供一种Web应用与Java平台的交互方法、装置、设备,能够保障Web应用能直接调用Java方法,降低Web应用与Java平台异构系统对接成本,展示效果好并兼备易扩展特性。其具体方案如下:
第一方面,本申请公开了一种Web应用与Java平台的交互方法,包括:
当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据;其中,所述第一Java方法为所述Java平台中的方法;
将所述第一调用结果数据转换为JavaScript类型数据;
将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示。
可选的,所述基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法之前,还包括:
将第一Java方法映射为第一JavaScript函数,以建立所述预设映射关系。
可选的,所述将所述第一调用结果数据转换为JavaScript类型数据,包括:
基于预设序列化方式将所述第一调用结果数据转换为JavaScript类型数据。
可选的,所述基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,包括:
将第一JavaScript函数的参数转换为Java类型参数;
基于预设映射关系并利用所述Java类型参数,调用所述第一JavaScript函数对应的第一Java方法。
可选的,所述当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据,包括:
当Web应用调用页面就绪JavaScript函数,则基于预设映射关系调用所述页面就绪JavaScript函数对应的图表数据获取Java方法,以得到相应的图表数据;
相应的,所述将所述第一调用结果数据转换为JavaScript类型数据;将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示,包括:
将所述图表数据转换为JavaScript类型图表数据,并传递给所述Web应用,以便所述Web应用进行图表展示。
可选的,还包括:
当Java客户端调用第二Java方法,将所述第二Java方法转换为第二JavaScript函数;
执行所述第二JavaScript函数,以得到第二调用结果数据;
将所述第二调用结果数据转换为Java类型数据,并向所述Java客户端返回所述Java类型数据。
可选的,所述将所述第二调用结果数据转换为Java类型数据,包括:
基于预设序列化方式将所述第二调用结果数据转换为Java类型数据。
第二方面,本申请公开了一种Web应用与Java平台的交互装置,包括:
第一调用结果数据获取模块,用于当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据;其中,所述第一Java方法为所述Java平台中的方法;
第一调用结果数据转换模块,用于将所述第一调用结果数据转换为JavaScript类型数据;
JavaScript类型数据返回模块,用于将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示。
第三方面,本申请公开了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述的Web应用与Java平台的交互方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的Web应用与Java平台的交互方法。
第五方面,本申请公开了一种计算机程序产品,所述计算机程序产品被执行时实现前述的Web应用与Java平台的交互方法。
可见,本申请当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据;其中,所述第一Java方法为所述Java平台中的方法;将所述第一调用结果数据转换为JavaScript类型数据;将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示。也即,本申请中预设第一JavaScript函数对应的第一Java方法之间的映射关系,当Web应用调用第一JavaScript函数,则基于预设映射关系调用该JavaScript函数对应的Java方法,以得到对应的调用结果数据,然后将该调用结果数据转换为JavaScript类型,传递给Web应用,以便Web应用进行展示,这样,将Web应用和Java平台融合,能够保障Web应用能直接调用Java方法,降低Web应用和Java平台异构系统对接成本,展示效果好并兼备易扩展特性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为使用B/S结构时通过浏览器远程访问Web服务器进行交互的示意图;
图2为本申请公开的一种Web应用与Java平台的交互方法流程图;
图3为本申请公开的一种具体的基于Java平台上展示Web应用的整体架构示意图;
图4为本申请公开的一种具体的Web应用与Java平台的交互方法示意图;
图5为本申请公开的一种具体的Web应用与Java平台的交互时序图;
图6为本申请公开的一种Web应用与Java平台的交互装置结构示意图;
图7为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,B/S结构中往往由前端的Web应用和后端的Java应用组成如果Web应用需要扩展某一方面的功能需要远程调用服务器上相应的功能代码,Web应用如果需要调用本地的资源如打印机、输入设备等则难以实现。为此,本申请提供了一种Web应用与Java平台的交互方案,能够保障Web应用能直接调用Java方法,降低Web应用和Java平台异构系统对接成本,展示效果好并兼备易扩展特性。
其中,B/S结构:Browser/Server结构,简称B/S结构,与C/S结构不同,其客户端不需要安装专门的软件,只需要浏览器即可,浏览器与Web服务器交互,Web服务器与后端数据库进行交互,可以方便地在不同平台下工作。Java:是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Swing:是一个为Java设计的GUI工具包,属于Java基础类的一部分。Swing包括了图形用户界面(GUI)功能,其组件包含:文本框、文本域、按钮、表格、列表……等等。
参见图2所示,本申请实施例公开了一种Web应用与Java平台的交互方法,包括:
步骤S11:当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据;其中,所述第一Java方法为所述Java平台中的方法。
其中,JavaScript(通常缩写为JS):是一门基于原型和头等函数的多范式高级解释型编程语言。
本申请实施例可以将第一Java方法映射为第一JavaScript函数,以建立所述预设映射关系。本申请实施例可以预先将Java方法映射成JavaScript函数,具体指将JavaScript的函数名与Java的方法相对应。其中,本申请实施例调用Java方法所采用的调用方式为回调方式。
并且,本申请实施例将第一JavaScript函数的参数转换为Java类型参数;基于预设映射关系并利用所述Java类型参数,调用所述第一JavaScript函数对应的第一Java方法。也即,本申请实施例将JavaScript类型的参数转换为Java类型的参数。进行Java方法调用。
步骤S12:将所述第一调用结果数据转换为JavaScript类型数据。
在具体的实施方式中,可以基于预设序列化方式将所述第一调用结果数据转换为JavaScript类型数据。可以理解的是,调用Java方法的得到的调用结果数据为Java类型的数据,本申请基于预设序列化方式将Java类型的数据转换为JavaScript类型的数据。
步骤S13:将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示。
在一种具体的实施方式中,本申请实施例当Web应用调用页面就绪JavaScript函数,则基于预设映射关系调用所述页面就绪JavaScript函数对应的图表数据获取Java方法,以得到相应的图表数据;将所述图表数据转换为JavaScript类型图表数据,并传递给所述Web应用,以便所述Web应用进行图表展示。也即,本申请实施例可以通过Java方法获取图表数据,并在Web应用上展示。
另外,本申请实施例可以当Java客户端调用第二Java方法,将所述第二Java方法转换为第二JavaScript函数;执行所述第二JavaScript函数,以得到第二调用结果数据;将所述第二调用结果数据转换为Java类型数据,并向所述Java客户端返回所述Java类型数据。也即,Java平台也可以调用Web资源。
进一步的,本申请实施例提供的Web应用与Java平台的交互方法,应用于预设转换层,该转换层为基于Java开发的组件,以便Java平台与浏览器进行更好的交互,需要指出的是,将Web资源与Java平台进行融合需要在Java平台上运行浏览器,Web应用运行于浏览器之上,本申请实施例提供的转换层,负责Web应用与Java代码的互相调用,将Java方法映射成JavaScript函数,并提供统一的数据序列化方式让数据可以在Java和JavaScript语言之间传递。能够将浏览器事件转换成Java接口,通过执行JavaScript脚本控制浏览器行为。例如,参见图3所示,图3为本申请实施例提供一种具体的基于Java平台上展示Web应用的整体架构示意图,在Java平台的业务层中加入转换层,业务代码可以通过转换层调用Web资源。其中,JS执行器用于执行JavaScript函数。需要在Java上运行浏览器组件,不同组件需要适配,本申请实施例中,通过转换层完成了JavaFX的WebView组件适配。JavaFX技术主要应用于创建网络应用程序。WebView:是JavaFX技术里面的一个浏览组件功能为显示web页面。
Web应用和Java平台之间使用的数据结构是不一样的,本发明通过序列化技术对两者使用的数据结构进行了转换和统一。
相比于B/S中Web应用以远程方式调用Java代码,本申请实施例提供的融合结构拥有更灵活的调用方式,并且拥有Web端良好的展示效果。当用户进行操作时是在浏览器上交互与平时使用浏览器无区别,可以进行点击预览等相应的操作,产生的操作请求是根据具体的业务需来判断走那种调用方式,可以为①通过浏览器远程调用后台服务或是②Web应用或是前端脚本调用转换层再调用Java平台来调用本地资源如打印机、摄像头等外部设备或是其他服务。其调用的最终结果又会在浏览器上进行展示,例如,参见图4所示,图4为本申请实施例提供的一种具体的Web应用与Java平台的交互方法示意图。
下面以图表展示应用场景为例,进一步阐述本申请提供的Web应用与Java平台的交互方法。图表使用报表的数据作为输入其位于Java平台的业务层,输出结果使用浏览器的JavaScript图表框架进行绘制,协调两者之间调用的是转换层。参见图5所示,图5为本申请实施例提供的一种具体的Web应用与Java平台的交互时序图。具备包括以下步骤:
1.在图表打开时由业务层代码向转换层注册浏览器页面就绪事件监听。
2.业务层代码启动浏览器。
3.浏览器启动后发出页面就绪事件。
4.业务层接收到事件后从报表中获取数据向转换层执行设置图表数据。
5.转换层转换成对应的JavaScript脚本在浏览器中执行。
6.浏览器中运行的图表框架处理数据展示结果。
需要指出的是,从开发角度,这种灵活调用方式可以节约开发时间从而提高效率。现阶段开发Web应用时如果服务厂商只提供Java实现那么在调用时需要通过Web服务器远程调用,而对于后端开发人员来说控制Web端的展示效果都需要再写一些Web端的代码来完成,开发较为复杂。这种融合结构可以减少在做异构系统对接的时间,借助融合结构的JavaScript和Java代码互相调用逻辑进行快速开发。对于现有基于C/S结构的企业应用能够利用转换层快速对接Web资源。并且Web应用难以实现的功能可以借助转换层通过Java平台来实现。在对接系统时如果两者采用的结构不一致时可以使用本方式进行对接降低开发成本。并且由于使用了统一的浏览器组件减少了前端适配的成本。
可见,本申请实施例当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据;其中,所述第一Java方法为所述Java平台中的方法;将所述第一调用结果数据转换为JavaScript类型数据;将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示。也即,本申请中预设第一JavaScript函数对应的第一Java方法之间的映射关系,当Web应用调用第一JavaScript函数,则基于预设映射关系调用该JavaScript函数对应的Java方法,以得到对应的调用结果数据,然后将该调用结果数据转换为JavaScript类型,传递给Web应用,以便Web应用进行展示,这样,将Web应用和Java平台融合,能够保障Web应用能直接调用Java方法,降低Web应用和Java平台异构系统对接成本,展示效果好并兼备易扩展特性。
参见图6所示,本申请实施例提供了一种Web应用与Java平台的交互装置,包括:
第一调用结果数据获取模块11,用于当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据;其中,所述第一Java方法为所述Java平台中的方法;
第一调用结果数据转换模块12,用于将所述第一调用结果数据转换为JavaScript类型数据;
JavaScript类型数据返回模块13,用于将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示。
可见,本申请实施例当Web应用调用第一JavaScript函数,则基于预设映射关系调用所述第一JavaScript函数对应的第一Java方法,以得到所述第一Java方法对应的第一调用结果数据;其中,所述第一Java方法为所述Java平台中的方法;将所述第一调用结果数据转换为JavaScript类型数据;将所述JavaScript类型数据传递给所述Web应用,以便所述Web应用进行展示。也即,本申请中预设第一JavaScript函数对应的第一Java方法之间的映射关系,当Web应用调用第一JavaScript函数,则基于预设映射关系调用该JavaScript函数对应的Java方法,以得到对应的调用结果数据,然后将该调用结果数据转换为JavaScript类型,传递给Web应用,以便Web应用进行展示,这样,将Web应用和Java平台融合,能够保障Web应用能直接调用Java方法,降低Web应用和Java平台异构系统对接成本,展示效果好并兼备易扩展特性。
所述装置还包括:映射模块,用于将第一Java方法映射为第一JavaScript函数,以建立所述预设映射关系。
其中,第一调用结果数据转换模块12,具体用于基于预设序列化方式将所述第一调用结果数据转换为JavaScript类型数据。
在具体的实施方式中,第一调用结果数据获取模块11,具体用于将第一JavaScript函数的参数转换为Java类型参数;基于预设映射关系并利用所述Java类型参数,调用所述第一JavaScript函数对应的第一Java方法。
在一种实施方式中,第一调用结果数据获取模块11,具体用于当Web应用调用页面就绪JavaScript函数,则基于预设映射关系调用所述页面就绪JavaScript函数对应的图表数据获取Java方法,以得到相应的图表数据;
相应的,第一调用结果数据转换模块12,具体用于将所述图表数据转换为JavaScript类型图表数据;JavaScript类型数据返回模块13,具体用于将JavaScript类型图表数据传递给所述Web应用,以便所述Web应用进行图表展示。
进一步的,所述装置还包括:
Java方法转换模块,用于当Java客户端调用第二Java方法,将所述第二Java方法转换为第二JavaScript函数;
第二调用结果数据获取模块,用于执行所述第二JavaScript函数,以得到第二调用结果数据;
第二调用结果数据转换模块,将所述第二调用结果数据转换为Java类型数据;
Java类型数据返回模块,用于向所述Java客户端返回所述Java类型数据。
其中,第二调用结果数据转换模块,具体用于基于预设序列化方式将所述第二调用结果数据转换为Java类型数据。
参见图7所示,本申请实施例公开了一种电子设备20,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,前述实施例公开的Web应用与Java平台的交互方法。
关于上述Web应用与Java平台的交互方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。
另外,所述电子设备20还包括电源23、通信接口24、输入输出接口25和通信总线26;其中,所述电源23用于为所述电子设备20上的各硬件设备提供工作电压;所述通信接口24能够为所述电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的Web应用与Java平台的交互方法。
关于上述Web应用与Java平台的交互方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请实施例还公开了一种计算机程序产品,计算机程序产品被执行时实现前述实施例公开的Web应用与Java平台的交互方法。
关于上述Web应用与Java平台的交互方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种Web应用与Java平台的交互方法、装置、设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
机译: 使用以交互模式标记的文档来复制AV数据的设备用于控制临时存储存储器的设备,该设备临时存储用于以交互模式复制AV数据的约会文档用于记录和/或复制AV的设备用于在交互式模式下使用标记文档的数据。用于使用文档标记在交互式模式下复制AV数据的方法,用于在交互式模式下复制AV数据的文档标记的管理方法。用于以交互模式再现AV数据的方法,一种用于以交互模式再现AV数据的方法。计算机的读取,计算机系统中用于以交互模式处理AV数据的方法一个文件标记,并存储数据
机译: 使用Java 2平台企业版(J2EE)进行基于Java脚本和XML(AJAX)表单的认证的设备,系统和方法
机译: 用于与Web应用程序和Web应用程序数据进行交互的方法和装置