传递参数的方法、网站应用、系统、装置以及服务后端与流程

文档序号:18451053发布日期:2019-08-17 01:16阅读:159来源:国知局
传递参数的方法、网站应用、系统、装置以及服务后端与流程

本公开涉及计算机技术领域,特别涉及一种传递参数的方法、网站应用、系统、装置、服务后端以及计算机可读存储介质。



背景技术:

在搭建网站时,网站前端和服务后端分离后,网站前端在调用服务后端时需要传入业务参数,包括:页面传入的参数、储存在用户本地终端上的数据cookie中包含的参数信息、配置文件中定义的参数。

传统的参数传递方式是,网站前端拼接好所有参数直接调用服务后端,根据各个服务后端接口不同的要求,传入对应的参数。或者,在网站前端与服务后端之间增加一层路由服务,网站前端负责传入页面参数,路由服务负责解析cookie以及获取配置文件中定义的参数,然后以键值对的方式封装成映射或者对象的方式调用服务后端。



技术实现要素:

发明人研究发现,传统的方案在实际使用过程中,具有以下缺点:

网站前端直接调用服务后端,需要网站前端处理所有参数,导致网站前端过于臃肿不够灵活且缺乏扩展性。增加一层路由服务后,虽然可以把一部分处理参数的工作放在该层,但是传递参数时会对页面传入的参数产生影响,不能使得cookie中包含的参数信息、配置文件中的参数与页面请求中的页面传入的参数相隔离,且在实际使用过程中会遇到多次设置相同参数时无法覆盖而变为以逗号分隔的字符串的情形。因此需要支持数据隔离并且可扩展性更强的方法来处理这些参数的传递。

本公开解决的一个技术问题是,如何实现不同参数在传递过程中的隔离,并增强参数传递功能的可扩展性。

根据本公开实施例的一个方面,提供了一种传递参数的方法,包括:网站应用拦截网站前端发送的页面请求,从页面请求中获取并解析储存在访问网站的用户本地终端上的数据cookie,得到页面请求对应的网站相关参数以及用户信息,并加载系统初始化时项目配置文件中的参数;网站应用将网站相关参数、用户信息以及项目配置文件中的参数设置在预定义的参数传递对象中,使得网站相关参数、用户信息以及项目配置文件中的参数与页面请求中的页面传入的参数相隔离;网站应用将参数传递对象转换成参数字符串后设置在页面请求中,并将页面请求传递至服务后端。

在一些实施例中,网站应用将参数传递对象转换成参数字符串后设置在页面请求中包括:网站应用将参数传递对象转换成json格式的参数字符串;网站应用采用加密算法对json格式的参数字符串进行加密;网站应用将加密后的json格式的参数字符串设置在页面请求中。

在一些实施例中,该方法还包括:网站应用拦截网站前端发送的页面请求之后,通过页面请求的接口地址判断页面请求是否为允许访问的页面请求;若页面请求为不允许访问的页面请求,网站应用向网站前端返回不允许访问的错误信息;若页面请求为允许访问的页面请求,网站应用执行从页面请求中获取并解析cookie等后续步骤;网站应用在解析cookie无法得到页面请求对应的网站相关参数以及用户信息时,向网站前端返回cookie值非法的错误信息。

在一些实施例中,该方法还包括:网站应用利用网站相关参数、用户信息以及项目配置文件中的参数校验参数的完整性,若网站相关参数、用户信息以及项目配置文件中的参数校验参数中缺少必要参数,则将缺少的必要参数设置为默认值;网站应用将设置为默认值的缺少的必要参数设置到cookie中,以便后续获取并解析cookie时使用。

根据本公开实施例的另一个方面,提供了一种传递参数的方法,包括:服务后端拦截网站应用发送的页面请求,从页面请求中获取参数字符串,并将参数字符串转换成封装对象;服务后端将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数设置到服务后端接口的输入参数对象中,并利用输入参数对象以及页面请求中的页面传入的参数调用服务后端接口。

在一些实施例中,从页面请求中获取参数字符串包括:服务后端从页面请求中获取经过加密的json格式的参数字符串;服务后端对经过加密的json格式的参数字符串进行解密,得到json格式的参数字符串。

在一些实施例中,服务后端通过服务后端接口对应的切面,将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数以依赖注入的方式设置到服务后端接口的输入参数对象中。

根据本公开实施例的又一个方面,提供了一种传递参数的网站应用,包括:参数获取模块,被配置为拦截网站前端发送的页面请求,从页面请求中获取并解析储存在访问网站的用户本地终端上的数据cookie,得到页面请求对应的网站相关参数以及用户信息,并加载系统初始化时项目配置文件中的参数;参数隔离模块,被配置为将网站相关参数、用户信息以及项目配置文件中的参数设置在预定义的参数传递对象中,使得网站相关参数、用户信息以及项目配置文件中的参数与页面请求中的页面传入的参数相隔离;参数传递模块,被配置为将参数传递对象转换成参数字符串后设置在页面请求中,并将页面请求传递至服务后端。

在一些实施例中,参数传递模块被配置为:将参数传递对象转换成json格式的参数字符串;采用加密算法对json格式的参数字符串进行加密;将加密后的json格式的参数字符串设置在页面请求中。

在一些实施例中,网站应用还包括信息响应模块,被配置为:在网站应用拦截网站前端发送的页面请求之后,通过页面请求的接口地址判断页面请求是否为允许访问的页面请求;若页面请求为不允许访问的页面请求,网站应用向网站前端返回不允许访问的错误信息;若页面请求为允许访问的页面请求,网站应用执行从页面请求中获取并解析cookie等后续步骤;以及在解析cookie无法得到页面请求对应的网站相关参数以及用户信息时,向网站前端返回cookie值非法的错误信息。

在一些实施例中,网站应用还包括参数设置模块,被配置为:利用网站相关参数、用户信息以及项目配置文件中的参数校验参数的完整性,若网站相关参数、用户信息以及项目配置文件中的参数校验参数中缺少必要参数,则将缺少的必要参数设置为默认值;将设置为默认值的缺少的必要参数设置到cookie中,以便后续获取并解析cookie时使用。

根据本公开实施例的再一个方面,提供了一种服务后端,包括:参数字符串获取模块,被配置为拦截网站应用发送的页面请求,从页面请求中获取参数字符串,并将参数字符串转换成封装对象;接口调用模块,被配置为将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数设置到服务后端接口的输入参数对象中,并利用输入参数对象以及页面请求中的页面传入的参数调用服务后端接口。

在一些实施例中,参数字符串获取模块被配置为:从页面请求中获取经过加密的json格式的参数字符串;对经过加密的json格式的参数字符串进行解密,得到json格式的参数字符串。

在一些实施例中,接口调用模块被配置为:通过服务后端接口对应的切面,将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数以依赖注入的方式设置到服务后端接口的输入参数对象中。

根据本公开实施例的另一个方面,提供了一种传递参数的系统,包括前述的网站前端、网站应用以及前述的服务后端。

根据本公开实施例的又一个方面,提供了一种传递参数的装置,其中,包括:存储器;以及耦接至存储器的处理器,处理器用于基于存储在存储器中的指令,执行前述的传递参数的方法。

根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行前述的传递参数的方法。

本公开实现了不同参数在传递过程中的隔离,增强了参数传递功能的可扩展性。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了本公开一个实施例的传递参数的方法的流程示意图。

图2示出了本公开另一个实施例的传递参数的方法的流程示意图。

图3示出了实现传递参数的方法的软件总体架构结构示意图。

图4示出了路由层封装参数以及加密传递的流程示意图。

图5示出了服务后端解密、切面注入的流程示意图。

图6示出了本公开一个实施例的传递参数的网站应用的结构示意图。

图7示出了本公开一个实施例的服务后端的结构示意图。

图8示出了本公开一个实施例的传递参数的系统的结构示意图。

图9示出了本公开一个实施例的传递参数的装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

下面结合图1介绍本公开一个实施例的传递参数的方法。

图1示出了本公开一个实施例的传递参数的方法的流程示意图。如图1所示,本实施例中的传递参数的方法包括步骤s101~步骤s110。

在步骤s101中,网站应用拦截网站前端发送的页面请求。

在步骤s104中,网站应用从页面请求中获取并解析cookie,得到页面请求对应的网站相关参数以及用户信息,其中cookie是指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据,也可以叫做浏览器缓存。

在步骤s106中,网站应用加载系统初始化时项目配置文件中的参数。

在步骤s109中,网站应用将网站相关参数、用户信息以及项目配置文件中的参数设置在预定义的参数传递对象中,使得网站相关参数、用户信息以及项目配置文件中的参数与页面请求中的页面传入的参数相隔离。

在步骤s110中,网站应用将参数传递对象转换成参数字符串后设置在页面请求中,并将页面请求传递至服务后端。

例如,网站应用可以将参数传递对象转换成json(javascript对象标记)格式的参数字符串,然后采用加密算法对json格式的参数字符串进行加密,最终将加密后的json格式的参数字符串设置在页面请求中。

json是一种轻量级的数据交换格式。它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言,它易于人阅读和编写,同时也易于机器解析和生成,能够有效地提升网络传输效率。

在步骤s111中,服务后端拦截网站应用发送的页面请求。

在步骤s112中,服务后端从页面请求中获取参数字符串。

例如,服务后端从页面请求中获取经过加密的json格式的参数字符串,然后对经过加密的json格式的参数字符串进行解密,得到json格式的参数字符串。对参数字符串进行加密可以提升参数传递过程中的安全性。

在步骤s113中,服务后端将参数字符串转换成封装对象。

在步骤s114中,服务后端将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数设置到服务后端接口的输入参数对象中。

例如,服务后端可以通过服务后端接口对应的切面,将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数以依赖注入的方式设置到服务后端接口的输入参数对象中。通过在服务后端增加拦截器以及切面注入,不仅能够减少重复代码,还能够增加接口的可扩展性,以便在业务发生变化时只需要更改输入参数对象以及切面注入。

在步骤s115中,服务后端利用输入参数对象以及页面请求中的页面传入的参数调用服务后端接口。

上述实施例通过在路由层将cookie中包含的参数信息以及项目配置文件中定义的参数封装成对象并设置到网页请求中,使得网站相关参数、用户信息以及项目配置文件中的参数与页面请求中的页面传入的参数相隔离,避免了传递参数之间互相干扰,从而实现了不同参数在传递过程中的隔离,并增强了参数传递功能的可扩展性以及安全性。

下面结合图2介绍本公开另一个实施例的传递参数的方法。

图2示出了本公开另一个实施例的传递参数的方法的流程示意图。

如图2所示,在图1所示实施例的基础上,可选的,本公开传递参数的方法还包括步骤s202~步骤s203。

在步骤s202中,网站应用通过页面请求的接口地址判断页面请求是否为允许访问的页面请求。若页面请求为不允许访问的页面请求,则执行步骤s203,网站应用向网站前端返回不允许访问的错误信息;若页面请求为允许访问的页面请求,则执行步骤s104。

可选的,本公开传递参数的方法还包括步骤s205。

在步骤s205中,网站应用在解析cookie无法得到页面请求对应的网站相关参数以及用户信息时,向网站前端返回cookie值非法的错误信息。

可选的,本公开传递参数的还包括步骤s207~步骤s208。

在步骤s207中,网站应用利用网站相关参数、用户信息以及项目配置文件中的参数校验参数的完整性,若网站相关参数、用户信息以及项目配置文件中的参数校验参数中缺少必要参数,则将缺少的必要参数设置为默认值。在步骤s208中,网站应用将设置为默认值的缺少的必要参数设置到cookie中,以便后续获取并解析cookie时使用。

下面介绍本公开传递参数的方法的一个应用例。

本应用例通过软件方式实现本公开传递参数的方法。图3示出了实现传递参数的方法的软件总体架构结构示意图,其中路由层可以网站应用的方式实现。从图3可以看出,通过增加路由层,可以让网站前端更专注于页面展现,服务后端更专注于业务,而把参数通过封装、加密、解密、切面注入后,可以直接调用服务接口,从而主要解决路由层和服务后端交互时参数的传递。

图4示出了路由层封装参数以及加密传递的流程示意图。从图4可以看出,在路由层只需要关注cookie中的参数以及配置文件中的参数,具体流程包括:

(1)首先会对请求的接口地址进行拦截,对于不允许访问的请求将直接返回错误信息给网站前端;拦截的步骤可以通过拦截器实现,拦截器是动态拦截请求的对象,它提供了一种机制使开发者可以定义在一个请求响应的前后执行的代码,也可以在一个请求响应前阻止请求的执行,同时也提供了一种可以提取业务逻辑中可重用部分的方式;

(2)获取到当前请求中的cookie值,并校验合法性,对于非法的cookie值将直接返回错误信息给网站前端,只有合法的cookie才能解析出正确值,从中可以得到网站相关的参数以及用户信息,如果是未登录用户,此时用户信息是可以没有或者是虚拟的;

(3)获取配置文件中的参数,这些参数是在系统初始化时加载配置文件后设置到对应的对象中,属于公共的参数,无需放到cookie且对于所有请求都是相同的

(4)校验参数的完整性,对于必须设置的参数如果在cookie和配置文件中都没有,则需要给予默认值,如果有必要,该参数可以设置到cookie中,供下次请求使用

(5)定义参数传递对象,把获取到的参数设置到该对象中;

(6)把对象转成json格式的字符串以便加密时可以使用,之所以使用json格式的字符串,是因为目前该格式的字符串转换效率很高,且可读性好,方便调试、打印日志;

(7)对字符串进行加密,例如可以使用aes(advancedencryptionstandard,高级加密标准)加解密算法,其属于可逆算法,通过使用约定好的密钥,可以对字符串进行加密、解密;

(8)把加密后的数据设置到请求中,然后转发该请求到服务后端。

图5示出了服务后端解密、切面注入的流程示意图。从图5可以看出,服务后端通过拦截器和切面注入,把参数设置和业务逻辑进行了分离,这样不仅简化了业务处理时的代码逻辑,同时还有很好的扩展性,当业务参数增加时,只需要更改入参对象以及切面注入即可,具体流程包括:

(1)拦截请求,得到路由层设置的加密参数;

(2)使用aes算法以及约定好的密钥,对参数进行解密,得到json格式的字符串;

(3)把json格式的字符串转换成封装对象,该对象对于本次请求来说,是全局对象,即本次请求过程中随时可以使用,而无需再次定义、赋值;

(4)服务后端接口通过aop(aspectorientedprogramming,面向切面编程)的方式来实现,在调用接口前,通过接口对应的切面把封装对象中的属性通过依赖注入的方式设置到接口入参对象中,其中aop是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术;

(5)调用接口。

下面结合图6介绍本公开一个实施例的传递参数的网站应用。

图6示出了本公开一个实施例的传递参数的网站应用的结构示意图。如图6所示,本实施例的传递参数的网站应用60包括参数获取模块602、参数隔离模块605以及参数传递模块606。

参数获取模块602,被配置为拦截网站前端发送的页面请求,从页面请求中获取并解析储存在访问网站的用户本地终端上的数据cookie,得到页面请求对应的网站相关参数以及用户信息,并加载系统初始化时项目配置文件中的参数。

参数隔离模块605,被配置为将网站相关参数、用户信息以及项目配置文件中的参数设置在预定义的参数传递对象中,使得网站相关参数、用户信息以及项目配置文件中的参数与页面请求中的页面传入的参数相隔离。

参数传递模块606,被配置为将参数传递对象转换成参数字符串后设置在页面请求中,并将页面请求传递至服务后端。

在一些实施例中,参数传递模块606被配置为:将参数传递对象转换成json格式的参数字符串;采用加密算法对json格式的参数字符串进行加密;将加密后的json格式的参数字符串设置在页面请求中。

在一些实施例中,网站应用还包括信息响应模块603,被配置为:在网站应用拦截网站前端发送的页面请求之后,通过页面请求的接口地址判断页面请求是否为允许访问的页面请求;若页面请求为不允许访问的页面请求,网站应用向网站前端返回不允许访问的错误信息;若页面请求为允许访问的页面请求,网站应用执行从页面请求中获取并解析cookie等后续步骤;以及在解析cookie无法得到页面请求对应的网站相关参数以及用户信息时,向网站前端返回cookie值非法的错误信息。

在一些实施例中,网站应用还包括参数设置模块604,被配置为:利用网站相关参数、用户信息以及项目配置文件中的参数校验参数的完整性,若网站相关参数、用户信息以及项目配置文件中的参数校验参数中缺少必要参数,则将缺少的必要参数设置为默认值;将设置为默认值的缺少的必要参数设置到cookie中,以便后续获取并解析cookie时使用。

下面结合图7介绍本公开一个实施例的服务后端。

图7示出了本公开一个实施例的服务后端的结构示意图。如图7所示,本实施例的服务后端70包括参数字符串获取模块702、接口调用模块704。

参数字符串获取模块702,被配置为拦截网站应用发送的页面请求,从页面请求中获取参数字符串,并将参数字符串转换成封装对象;

接口调用模块704,被配置为将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数设置到服务后端接口的输入参数对象中,并利用输入参数对象以及页面请求中的页面传入的参数调用服务后端接口。

在一些实施例中,参数字符串获取模块702被配置为:从页面请求中获取经过加密的json格式的参数字符串;对经过加密的json格式的参数字符串进行解密,得到json格式的参数字符串。

在一些实施例中,接口调用模块704被配置为:通过服务后端接口对应的切面,将封装对象中的网站相关参数、用户信息以及项目配置文件中的参数以依赖注入的方式设置到服务后端接口的输入参数对象中。

下面结合图8介绍本公开一个实施例的传递参数的系统。

图8示出了本公开一个实施例的传递参数的系统的结构示意图。如图8所示,本实施例的传递参数的系统80包括网站前端802、网站应用60以及服务后端70。

图9示出了本公开一个实施例的传递参数的装置的结构示意图。如图9所示,该实施例的传递参数的装置90包括:存储器910以及耦接至该存储器910的处理器920,处理器920被配置为基于存储在存储器910中的指令,执行前述任意一个实施例中的传递参数的方法。

其中,存储器910例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。

传递参数的装置90还可以包括输入输出接口930、网络接口940、存储接口970等。这些接口930,940,950以及存储器910和处理器920之间例如可以通过总线960连接。其中,输入输出接口930为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口940为各种联网设备提供连接接口。存储接口940为sd卡、u盘等外置存储设备提供连接接口。

本公开还包括一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一个实施例中的传递参数的方法。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1