(19)中华人民共和国国家知识产权局
(12)发明专利说明书 | ||
(10)申请公布号 CN 105677859 A (43)申请公布日 2016.06.15 | ||
(21)申请号 CN201610009459.7
(22)申请日 2016.01.08
(71)申请人 成都卫士通信息产业股份有限公司
地址 610041 四川省成都市高新区云华路333号
(72)发明人 曾伟
(74)专利代理机构 成都九鼎天元知识产权代理有限公司
代理人 邓世燕
(51)Int.CI
G06F17/30
权利要求说明书 说明书 幅图 |
(54)发明名称
在嵌入式设备上使用lua实现cgi的方法 | |
(57)摘要
本发明公开了一种在嵌入式设备上使用lua实现cgi的方法,首先将lua脚本代码嵌入到静态开发的html页面中,形成混合了lua语句和html语句的页面文件;然后采用html文件解析模块对混合了lua语句和html语句的页面文件进行解析,解析后交由lua解释器执行;最后通过lua?cgi接口返回html给http服务器,显示在用户浏览器端。与现有技术相比,本发明的积极效果是:使用了名为lua的解释型语言,作为实现cgi程序的方式,在修改之后无需编译即可执行,降低开发时候调试的复杂度;能够方便地开发较为复杂的业务逻辑;能够被嵌套进入静态的html页面中,作为控制html页面元素输出现实的控制单元。 | |
法律状态
法律状态公告日 | 正则匹配快代理法律状态信息 | 法律状态 |
权 利 要 求 说 明 书
1.一种在嵌入式设备上使用lua实现cgi的方法,其特征在于:首先将lua脚本代码嵌入到静态开发的html页面中,形成混合了lua语句和html语句的页面文件;然后采用html文件解析模块对混合了lua语句和html语句的页面文件进行解析,解析后交由lua解释器执行;最后通过luacgi接口返回html给http服务器,显示在用户浏览器端。
2.根据权利要求1所述的在嵌入式设备上使用lua实现cgi的方法,其特征在于:将lua脚本代码嵌入到静态开发的html页面中的方法是:把需要输出的html代码单独形成一个文件,同时在里面嵌入lua语句,用来获取动态数据和控制页面元素展示。
3.根据权利要求2所述的在嵌入式设备上使用lua实现cgi的方法,其特征在于:所述动态数据包括系统状态信息、数据库的查询。
4.根据权利要求2所述的在嵌入式设备上使用lua实现cgi的方法,其特征在于:所述页面元素是指html语言编写的页面上的展示文本、输入控件和表格。
5.根据权利要求4所述的在嵌入式设备上使用lua实现cgi的方法,其特征在于:所述控制页面元素展示的方法是:通过lua语言的条件判断和循环特性来控制文本是否展示,以及控制表格的行、列及展示内容等。
6.根据权利要求1所述的在嵌入式设备上使用lua实现cgi的方法,其特征在于:所述html文件解析模块对混合了lua语句和html语句的页面文件进行解析时,对于lua语句部分保留,html语句部分封装一层lua的标准输出,将这两部分进行合并,翻译成lua脚本。
说 明 书
<p>技术领域
本发明涉及httpweb服务领域,具体涉及一种在嵌入式设备上使用lua实现cgi的方法。
背景技术
1.在嵌入式web领域,对于提供web服务,一般是有这样几种解决方案:
(1)Cgi方案
Cgi是CommonGatewayInterface(通用网关接口)的缩写,是HTTP服务器程序和外界交互的一个接口程序,它的基本原理是将需要通过网页来展示的内容,以html语法格式进行封装,传递给HTTP服务。
Cgi的本质是一个可被执行的程序或者是脚本,能够用多种程序语言来进行编写。
(2)asp方案
asp是微软在1996年推出,目的是简化开发web程序时候的复杂性,用于取代对Web服务器进行可编程扩展的CGI方案,主要功能是将脚本语言、html、数据库访问等功能组件结合在一起,形成一个在服务器端运行的应用程序。
asp最早是应用于桌面服务器上,后来也逐渐移植到了嵌入式平台,像著名的嵌入式web服务器goahead就支持asp。
(3)php方案
php和asp的原理和实现方式类似,本身是一门语言,被嵌入到html里面。php在主流的web开发领域广泛使用,
通常配合以后台的apache服务器,对数据库的支持也非常友好。
(4)java方案
使用java作为嵌入式设备上的web解决方案,也曾经使用,但缺陷较为明显:相对来说最为复杂和笨重。需要在底层有java虚拟机的支持,功能和扩展性丰富,一般使用在大型的web系统中。
2.传统的C语言cgi方式如下:
cgi是动态网页技术最早采用的一种方式,如图1所示,它是如下的一个应用场景:有一个http服务器,用于解析http协议,从协议包含的数据域中得到控制信息和数据信息;启动一个新的进程,传入控制命令和数据,新进程做对应处理,生成用户页面展示的html语句,同时将处理得到的数据填入到html中,最后将组合得到的html语句回传给http服务;这样,用户就能通过浏览器访问动态生成的页面。
这样一个完整的解决方案称之为cgi方式,里面有几个关键点:
(1)有一个第三方的程序,处理控制命令,该程序就称为cgi程序,也叫cgi接口;
(2)http服务程序需要知道该cgi程序,并能执行它;
(3)用户在浏览器上看到的页面已经是静态的html语句组成,这些html语句全部是由cgi程序生成;
在上文中提到,cgi程序可以是一个可执行程序,也可以是一个能被执行的脚本。
传统的cgi程序由C语言来实现:使用C代码,按照web页面对于html的格式要求,依次输出格式语句(Content-type、、)和实际的页面内容。
该段C代码被编译成为一个可执行程序,在Linux上是一个elf文件,被http服务进程调用执行,Linux上的标准的做法是用fork方式在子进程中执行cgi程序。Cgi程序输出的内容要传递给http服务进程,会涉及到进程间通信,由于双方是父子进程关系,会通过管道(pipe)的方式做数据交互。而且按标准做法,会将cgi程序中的标准输出重定向到pipe中,这样,C程序通过标准输出(printf),就能够将页面html语句发送到http服务进程。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论