一种form表单的解析方法及装置与流程

文档序号:31722377发布日期:2022-10-04 23:38阅读:161来源:国知局
一种form表单的解析方法及装置与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种form表单的解析方法及装置。


背景技术:

2.jdk的lighthttpserver是一个轻量级http服务器,可以在很多需要嵌入式http server的情况下使用,使用lighthttpserver经常需要表单提交数据,包括文件上传等,然而,现有技术无法对form表单进行解析。


技术实现要素:

3.本技术实施例的目的在于提供一种form表单的解析方法及装置,能够解决lighthttpserver使用时无form表单解析的现状。
4.本技术实施例第一方面提供了一种form表单的解析方法,包括:
5.获取待处理的form表单;
6.获取所述form表单的边界字节数组;
7.根据所述边界字节数组获取所述form表单的数据流的表单字节数组;
8.通过滑动窗口对所述表单字节数组进行读取解析,得到表单解析数据;
9.根据所述表单解析数据确定所述form表单的参数数据。
10.在上述实现过程中,该方法可以优先获取待处理的form表单;并获取 form表单的边界字节数组;然后根据边界字节数组获取form表单的数据流的表单字节数组;再通过滑动窗口对表单字节数组进行读取解析,得到表单解析数据;最后再根据表单解析数据确定form表单的参数数据。可见,实施这种实施方式,能够让算法使用内存存储,并通过字节数组直接解析来解决lighthttpserver使用时无form表单解析的现状。并且,通过内存、字节数组进行解析的方式,在form较小内容传递时,具有极强的性能。
11.进一步地,所述获取所述form表单的边界字节数组,包括:
12.通过预设的字节码文本方式解析所述form表单的表单结构;
13.根据所述表单结构获取所述form表单的头边界数据;
14.将所述头边界数据转换为边界字节数组。
15.进一步地,所述根据所述表单结构获取所述form表单的头边界数据,包括:
16.根据所述表单结构通过预设的request算法获取form表单的头边界数据。
17.进一步地,所述根据所述边界字节数组获取所述form表单的数据流的表单字节数组,包括:
18.确定所述form表单的数据流;
19.通过content算法依据所述边界字节数组获取所述数据流的表单字节数组。
20.进一步地,所述根据所述表单解析数据确定所述form表单的参数数据,包括:
21.通过字节码匹配算法对所述表单解析数据进行处理,得到form表单的本质以及参数字符串;
22.根据所述form表单的本质以及所述参数字符串,生成参数数据。
23.本技术实施例第二方面提供了一种form表单的解析装置,所述form表单的解析装置包括:
24.第一获取单元,用于获取待处理的form表单;
25.第二获取单元,用于获取所述form表单的边界字节数组;
26.第三获取单元,用于根据所述边界字节数组获取所述form表单的数据流的表单字节数组;
27.解析单元,用于通过滑动窗口对所述表单字节数组进行读取解析,得到表单解析数据;
28.确定单元,用于根据所述表单解析数据确定所述form表单的参数数据。
29.在上述实现过程中,form表单的解析装置可以通过第一获取单元获取待处理的form表单;通过第二获取单元获取form表单的边界字节数组;通过第三获取单元来根据边界字节数组获取form表单的数据流的表单字节数组;通过解析单元来通过滑动窗口对表单字节数组进行读取解析,得到表单解析数据;通过确定单元来根据表单解析数据确定form表单的参数数据。可见,实施这种实施方式,能够让算法使用内存存储,并通过字节数组直接解析来解决lighthttpserver使用时无form表单解析的现状。并且,通过内存、字节数组进行解析的方式,在form较小内容传递时,具有极强的性能。
30.进一步地,所述第二获取单元包括:
31.解析子单元,用于通过预设的字节码文本方式解析所述form表单的表单结构;
32.获取子单元,用于根据所述表单结构获取所述form表单的头边界数据;
33.转换子单元,用于将所述头边界数据转换为边界字节数组。
34.进一步地,所述获取子单元,具体用于根据所述表单结构通过预设的 request算法获取form表单的头边界数据。
35.进一步地,所述第三获取单元包括:
36.确定子单元,用于确定所述form表单的数据流;
37.提取子单元,用于通过content算法依据所述边界字节数组获取所述数据流的表单字节数组。
38.进一步地,所述确定单元包括:
39.处理子单元,用于通过字节码匹配算法对所述表单解析数据进行处理,得到form表单的本质以及参数字符串;
40.生成子单元,用于根据所述form表单的本质以及所述参数字符串,生成参数数据。
41.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的form表单的解析方法。
42.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的form表单的解析方法。
附图说明
43.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
44.图1为本技术实施例提供的一种form表单的解析方法的流程示意图;
45.图2为本技术实施例提供的另一种form表单的解析方法的流程示意图;
46.图3为本技术实施例提供的一种form表单的解析装置的结构示意图;
47.图4为本技术实施例提供的另一种form表单的解析装置的结构示意图;
48.图5为本技术实施例提供的一种通过demo字节码文本方式分析出的 form表单的结构的示意图;
49.图6为本技术实施例提供的一种form表单的结构的结尾的示意图;
50.图7为本技术实施例提供的一种form表单字节数组和边界字节数组的逻辑示意图。
具体实施方式
51.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
52.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
53.实施例1
54.请参看图1,图1为本技术实施例提供了一种form表单的解析方法的流程示意图。其中,该form表单的解析方法包括:
55.s101、获取待处理的form表单。
56.s102、获取form表单的边界字节数组。
57.本实施例中,该方法可以通过request获取header边界,并将其转为字节数组。
58.s103、根据边界字节数组获取form表单的数据流的表单字节数组。
59.本实施例中,该方法可以通过content获取流的字节数组。
60.s104、通过滑动窗口对表单字节数组进行读取解析,得到表单解析数据。
61.本实施例中,该方法还可以通过滑动窗口对表单字节数组进行读取解析与字节码匹配。从而解析出来form的本质,参数string,参数文件。
62.s105、根据表单解析数据确定form表单的参数数据。
63.众所周知,jdk的lighthttpserver是一个轻量级http服务器,可以在很多需要嵌入式http server的情况下使用,使用lighthttpserver经常需要表单提交数据,包括文件上传等,目前无form表单的解决方案。基于此,本实施例提供了一种jdk lighthttpserver轻量级form解析器,并以此解析器来实现上述流程,从而解决了目前无form表单的问题。
64.本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
65.可见,实施本实施例所描述的form表单的解析方法,能够让算法使用内存存储,并
通过字节数组直接解析来解决lighthttpserver使用时无form 表单解析的现状。并且,通过内存、字节数组进行解析的方式,在form较小内容传递时,具有极强的性能。
66.实施例2
67.请参看图2,图2为本技术实施例提供了一种form表单的解析方法的流程示意图。其中,该form表单的解析方法包括:
68.s201、获取待处理的form表单。
69.s202、通过预设的字节码文本方式解析form表单的表单结构。
70.本实施例中,该方法可以通过子写算法解析form表单,实现 lighthttpserver的form处理逻辑,方便在嵌入式的lighthttpserver实现form 能力。
71.请参看图5,图5示出了通过demo字节码文本方式分析出的form表单的结构。
72.请参看图6,图6示出了上述form表单的结构的结尾。
73.s203、根据表单结构通过预设的request算法获取form表单的头边界数据。
74.本实施例中,通过分析可以得知分析出来form的边界是有规律的,并且结束时边界会加上“—”。其中,这个边界是在form request的header中设置,方便content使用。
75.s204、将头边界数据转换为边界字节数组。
76.本实施例中,该方法通过request获取header边界,并将获取到的header 边界转为边界字节数组。
77.请参看图7,图7示出了form表单字节数组和边界字节数组的逻辑示意图。
78.s205、确定form表单的数据流。
79.s206、通过content算法依据边界字节数组获取数据流的表单字节数组。
80.本实施例中,该方法可以通过content获取数据流的字节数组。
81.s207、通过滑动窗口对表单字节数组进行读取解析,得到表单解析数据。
82.s208、通过字节码匹配算法对表单解析数据进行处理,得到form表单的本质以及参数字符串。
83.s209、根据form表单的本质以及参数字符串,生成参数数据。
84.本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
85.可见,实施本实施例所描述的form表单的解析方法,能够让算法使用内存存储,并通过字节数组直接解析来解决lighthttpserver使用时无form 表单解析的现状。并且,通过内存、字节数组进行解析的方式,在form较小内容传递时,具有极强的性能。
86.实施例3
87.请参看图3,图3为本技术实施例提供的一种form表单的解析装置的结构示意图。如图3所示,该form表单的解析装置包括:
88.第一获取单元310,用于获取待处理的form表单;
89.第二获取单元320,用于获取form表单的边界字节数组;
90.第三获取单元330,用于根据边界字节数组获取form表单的数据流的表单字节数组;
91.解析单元340,用于通过滑动窗口对表单字节数组进行读取解析,得到表单解析数据;
92.确定单元350,用于根据表单解析数据确定form表单的参数数据。
93.本实施例中,该方法可以通过request获取header边界,并将其转为字节数组。
94.本实施例中,该方法可以通过content获取流的字节数组。
95.本实施例中,该方法还可以通过滑动窗口对表单字节数组进行读取解析与字节码匹配。从而解析出来form的本质,参数string,参数文件。
96.本实施例中,对于form表单的解析装置的解释说明可以参照实施例1 或实施例2中的描述,对此本实施例中不再多加赘述。
97.可见,实施本实施例所描述的form表单的解析装置,能够让算法使用内存存储,并通过字节数组直接解析来解决lighthttpserver使用时无form 表单解析的现状。并且,通过内存、字节数组进行解析的方式,在form较小内容传递时,具有极强的性能。
98.实施例4
99.请参看图4,图4为本技术实施例提供的一种form表单的解析装置的结构示意图。如图4所示,该form表单的解析装置包括:
100.第一获取单元310,用于获取待处理的form表单;
101.第二获取单元320,用于获取form表单的边界字节数组;
102.第三获取单元330,用于根据边界字节数组获取form表单的数据流的表单字节数组;
103.解析单元340,用于通过滑动窗口对表单字节数组进行读取解析,得到表单解析数据;
104.确定单元350,用于根据表单解析数据确定form表单的参数数据。
105.作为一种可选的实施方式,第二获取单元320包括:
106.解析子单元321,用于通过预设的字节码文本方式解析form表单的表单结构;
107.获取子单元322,用于根据表单结构获取form表单的头边界数据;
108.转换子单元323,用于将头边界数据转换为边界字节数组。
109.作为一种可选的实施方式,获取子单元322,具体用于根据表单结构通过预设的request算法获取form表单的头边界数据。
110.作为一种可选的实施方式,第三获取单元330包括:
111.确定子单元331,用于确定form表单的数据流;
112.提取子单元332,用于通过content算法依据边界字节数组获取数据流的表单字节数组。
113.作为一种可选的实施方式,确定单元350包括:
114.处理子单元351,用于通过字节码匹配算法对表单解析数据进行处理,得到form表单的本质以及参数字符串;
115.生成子单元352,用于根据form表单的本质以及参数字符串,生成参数数据。
116.本实施例中,对于form表单的解析装置的解释说明可以参照实施例1 或实施例2中的描述,对此本实施例中不再多加赘述。
117.可见,实施本实施例所描述的form表单的解析装置,能够让算法使用内存存储,并通过字节数组直接解析来解决lighthttpserver使用时无form 表单解析的现状。并且,通过内存、字节数组进行解析的方式,在form较小内容传递时,具有极强的性能。
118.本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例1或实施例2中的form表单的解析方法。
119.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例1 或实施例2中的form表单的解析方法。
120.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
121.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
122.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
123.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
124.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
125.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1