一种Web应用程序中的脚本插入方法及装置的制造方法

文档序号:9471153阅读:887来源:国知局
一种Web应用程序中的脚本插入方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据处理技术领域,具体涉及一种Web应用程序中的脚本插入方法及
目.ο
【背景技术】
[0002]Web应用程序是一种可以通过Web访问的应用程序。Web应用程序的一个最大好处是用户很容易访问的应用程序。用户只需要安装浏览器即可,不需要再安装其他软件。脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。脚本通常可以由Web应用程序调用并执行,各类脚本能够在被调用时分别实现各种功能。在实现Web应用程序对脚本的调用之前,首先完成Web应用程序中的脚本插入。
[0003]目前,Web应用程序中的脚本插入需要在Web应用程序被部署之前,预先将脚本直接写入Web应用程序中。也就是说,现有的脚本插入方式不能实现将脚本直接插入到已经完成部署的Web应用程序中。

【发明内容】

[0004]有鉴于此,本发明提供了一种Web应用程序中的脚本插入方法及装置,能够将脚本插入到已经完成部署的Web应用程序中。
[0005]本发明提供了一种Web应用程序中的脚本插入方法,所述方法包括:
[0006]在接收到客户端发送的web请求后,判断所述web请求中是否携带静态文件标识;
[0007]如果所述web请求中未携带静态文件标识,则确定针对所述web请求返回的流数据;
[0008]在所述流数据中,搜索预设的关键字;
[0009]通过所述关键字,在所述流数据中定位脚本插入位置;
[0010]将脚本插入到所述流数据中的所述脚本插入位置,并将插入所述脚本的流数据返回至所述客户端。
[0011]优选地,所述在所述流数据中,搜索预设的关键字,包括:
[0012]判断所述流数据的流类型;
[0013]当所述流数据为字符流时,在所述流数据中,按字符搜索预设的关键字;
[0014]当所述流数据为字节流时,在所述流数据中,按字节搜索预设的关键字。
[0015]优选地,所述通过所述关键字,在所述流数据中定位脚本插入位置,包括:
[0016]在所述流数据中,确定所述关键字所在的位置;
[0017]将与所述关键字所在的位置相邻的前一个位置确定为脚本插入位置。
[0018]优选地,所述方法还包括:
[0019]根据所述插入脚本的流数据的长度,调整所述流数据中的长度参数。
[0020]优选地,所述脚本为javaScript脚本。
[0021]本发明还提供了一种Web应用程序中的脚本插入装置,所述装置包括:
[0022]接收模块,用于接收到客户端发送的web请求;
[0023]判断模块,用于判断所述web请求中是否携带静态文件标识;
[0024]确定模块,用于在所述判断模块的结果为否时,确定针对所述web请求返回的流数据;
[0025]搜索模块,用于在所述流数据中,搜索预设的关键字;
[0026]定位模块,用于通过所述关键字,在所述流数据中定位脚本插入位置;
[0027]插入模块,用于将所述脚本插入到所述流数据中的所述脚本插入位置;
[0028]返回模块,用于将插入脚本的流数据返回至所述客户端。
[0029]优选地,所述搜索模块包括:
[0030]判断子模块,用于判断所述流数据的流类型;
[0031]第一搜索子模块,用于当所述流数据为字符流时,在所述流数据中,按字符搜索预设的关键字;
[0032]第二搜索子模块,用于当所述流数据为字节流时,在所述流数据中,按字节搜索预设的关键字。
[0033]优选地,所述定位模块包括:
[0034]第一确定子模块,用于在所述流数据中,确定所述关键字所在的位置;
[0035]第二确定子模块,用于将与所述关键字所在的位置相邻的前一个位置确定为脚本插入位置。
[0036]优选地,所述装置还包括:
[0037]调整模块,用于根据所述插入脚本的流数据的长度,调整所述流数据中的长度参数。
[0038]优选地,所述脚本为javaScript脚本。
[0039]本发明提供的Web应用程序中的脚本插入方法,在接收到客户端发送的web请求后,判断所述web请求中是否携带静态文件标识。如果所述web请求中未携带静态文件标识,则确定针对所述web请求返回的流数据。在所述流数据中,搜索预设的关键字,并通过所述关键字,在所述流数据中定位脚本插入位置。最后,将脚本插入到所述流数据中的所述脚本插入位置,并将插入所述脚本的流数据返回至所述客户端。与现有技术相比,本发明基于流数据的方式实现将脚本插入到已经完成部署的Web应用程序中。
【附图说明】
[0040]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0041]图1为本发明实施例提供的一种Web应用程序中的脚本插入方法流程图;
[0042]图2为本发明实施例提供的一种Web应用程序中的脚本插入装置结构示意图;
[0043]图3为本发明实施例提供的搜索模块204结构示意图;
[0044]图4为本发明实施例提供的定位模块205的结构示意图;
[0045]图5为本发明实施例提供一种web应用服务器结构示意图。
【具体实施方式】
[0046]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0047]本发明实施例提供了一种Web应用程序中的脚本插入方法,如图1所示,图1为本发明实施例提供的一种Web应用程序中的脚本插入方法流程图,所述方法包括:
[0048]SlOl:在接收到客户端发送的web请求后,判断所述web请求中是否携带静态文件标识O
[0049]S102:如果所述web请求中未携带静态文件标识,则确定针对所述web请求返回的流数据。
[0050]S103:在所述流数据中,搜索预设的关键字。
[0051]S104:通过所述关键字,在所述流数据中定位脚本插入位置。
[0052]S105:将所述脚本插入到所述流数据中的所述脚本插入位置,并将插入脚本的流数据返回至所述客户端。
[0053]在SlOl中,用户通过安装有浏览器的客户端向web应用服务器发送web请求,其中,所述web请求中携带URL (Uniform Resource Locator,统一资源定位符)。当所述web应用服务器接收到所述web请求后,判断所述web请求中是否携带静态文件标识。具体的,当所述web请求中携带URL是以例如为.js,.css,.jpg,.jpeg,.gif,.png或者.bmp结尾时,所述web应用服务器确定该web请求中携带有静态文件标识。
[0054]本实施例中,针对携带静态文件标识的web请求,不执行脚本的插入。
[0055]S102中,如果所述web应用服务器确定所述web请求中未携带静态文件标识,则针对所述web请求,确定与其对应的流数据。具体的,所述web应用服务器根据所述web请求中携带的URL定位用户请求的网页资源,并将其以流数据的形式返回至客户端。
[0056]S103中,当所述web应用服务器确定针对所述web请求返回的流数据之后,所述web应用服务器在该流数据中搜索预设的关键字。例如,当要插入的脚本为JavaScript脚本时,预设的关键字则为〈/HEAD〉或者〈/head〉,〈/BODY〉或者〈/body〉。具体的,在确定的流数据中搜索上述确定的关键字即可。
[0057]另外,在实际操作中,针对不同流类型的流数据存在不同的读取方式。所以,本实施例在对流数据进行关键字的搜索之前,首先判断所述流数据的流类型。具体的,当所述流数据为字符流时,在所述流数据中,按字符搜索预设的关键字。当所述流数据为字节流时,在所述流数据中,按字节搜索预设的关键字。
[0058]S104中,所述web应用服务器在确定预设关键字在所述流数据中的位置后,根据所述关键字的位置,确定所述流数据中的脚本插入位置。一种实现方式中,如果脚本为JavaScript脚本,则所述web应用服务器在所述流数据中,确定所述关键字所在的位置后,将与所述关键字所在的位置相邻的前一个位置确定为脚本插入位置。也就是说,所述web应用服务器将关键字之前的一个位置确定为javaScript脚本的插入位置。
[0059]S105中,当所述web应用服务器确定所述流数据中的脚本插入位置后,将预先编写的能够实现特定功能的脚本插入到所述流数据中的所述脚本插入位置,并将插入所述脚本的流数据返回至所述客户端。其中,常见的脚本编写语言包括Scala、JavaScript,VBScript, Act1nScript, MAX Script, ASP,JSP,PHP, SQL,Perl, Shell,python, Ruby,JavaFX,Lua, AutoIt等。另外,通过编写脚本能够实现特定的功能,如利用JavaScript编写能够实现抓取用户浏览页面数据,发现页面访问瓶颈的功能。
[0060]实际应用中,由于插入脚本的流数据的总长度增加,所以,在将插入脚本的流数据返回至客户端之前,调整该数据流中的长度参数,以真实记录该数据流的长度。
[0061]本发明实施例提供了一种在完成部署的Web应用程序中进行脚本插入的方法,该方法是基于流数据的方式进行脚本插入的。由于web应用服务器在加载用户页面资源时,是采用数据流的方式与客户端进行数据传输。所以,本发明实施例对web应用服务器向客户端发送的流数据进行拦截,在该流数据中插入脚本。当客户端接收到插入脚本的流数据后,通过web容器进行页面渲染,就可以将带有插入脚本的页面显示出来。页面中插入的脚本对用户来说是不可见的,即用户无法感觉页面中插入了脚本,所以本发明提供的脚本插入方法对于用户浏览页面的影响很小。
[0062]本发明实施例还提供了另一种Web应用程序中的脚本插入方法,所述方法被封装为java探针。实际应用中,该java探针被预先安装于各个web应用服务器上,并能够根据各个web应用服务器的型号确定具体的流数据处理方法。
[0063]实际应用中,由于java探针中封装有能够实现Web应用程序中的脚本插入的方法,所以,对于想要实现
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1