嵌入式Web服务器应用的关键技术分析.docx

嵌入式Web服务器应用的关键技术分析.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1 PAGE 1 嵌入式Web服务器应用的关键技术分析 2cgi对表单的处理 首先研究传统的嵌入系统的cgi如何接收网页提交的数据的。假设网页如图1,做个很简洁的试验,当用户输入用户名和密码,cgi接收到并重新生成—个页面,页面显示输入的用户名和密码。这里采用的是表单技术(http://www.w3.org/pub/WWW/Protoeols/),先来看以上网页的代码。 图1登录界面 图2cgi回送的变量 这个cgi程序接收网页提交的参数放在cgivars里面,同时将生成—个新的网页并把结果送回远程客户机。由于是新生成的网页,界面和原来的不再一样。 2cgi对表单的处理 首先研究传统的嵌入系统的cgi如何接收网页提交的数据的。假设网页如图1,做个很简洁的试验,当用户输入用户名和密码,cgi接收到并重新生成—个页面,页面显示输入的用户名和密码。这里采用的是表单技术(http://www.w3.org/pub/WWW/Protoeols/),先来看以上网页的代码。 图1登录界面 图2cgi回送的变量 这个cgi程序接收网页提交的参数放在cgivars里面,同时将生成—个新的网页并把结果送回远程客户机。由于是新生成的网页,界面和原来的不再一样。 动态嵌入式web服务器使用cgi脚原来完成业务流程,但大部分嵌入式系统性能有限,为了降低嵌入式服务器的负载,探讨了采用javascript脚本和cgi协作的方式来完成业务流程,即服务器端cgi程序将参数添加在网页末尾,客户端网页内嵌的javascript脚本提取参数并显示。研究了cgi通过shell命令调用应用程序,再由应用程序调用驱动程序来掌握硬件设备的方法。 3Javascript对cgi的改进 假没有如下的新网页,需要查询嵌入式设备的IP信息,并显示在当前页面,假如采取以上方法就不可行。现在给出网页的主要代码: 图3ip地址查询 网页中有一个表单form1,其中有ipaddr,ipmask,gateway,macaddr,dnsl,dns2这些常规IP设置。 用来告知IE在显示网页前先运行init函数。表示采用javascfipt脚本,functioninit()表示函数名是init,以上表示从接收到的injs字符串数组中取出数据。injs是c矛程序从嵌入式服务器发送过来的。为直观了解以上代码的工作方式,可以把injs数据写在javascript下面来模拟服务器发来的网页,如上面代码粗体字部分。当网页被IE浏览器加载并且还没有开始显示时,先执行onLoad-“init()”,然后在init函数里渎取cgi发来的参数injs,并给表单相应的位置赋值。将以上文件,用IE在本地打开,可以看到数数据。接着研究嵌入式cgi是如何真正返回数据的。首先,cgi中读取整个网页文件发送到远程,这样,用户在IE直接输入http://192.168.12.80/ipsetting.csi就能读取对应的网页,接着在cgi程序的末尾,有如下代码行: 图4cgi回送IP 动态嵌入式web服务器使用cgi脚原来完成业务流程,但大部分嵌入式系统性能有限,为了降低嵌入式服务器的负载,探讨了采用javascript脚本和cgi协作的方式来完成业务流程,即服务器端cgi程序将参数添加在网页末尾,客户端网页内嵌的javascript脚本提取参数并显示。研究了cgi通过shell命令调用应用程序,再由应用程序调用驱动程序来掌握硬件设备的方法。 4cgi调用shell环境变量 以上的cgi是输出的是本地IP信息,但不是从系统运行的环境中获取,是任意给定的。接着需要研究如何通过Linux的shell编程来提取嵌入式设备的IP信息。 下面就需要从系统的环境中取出。这里只研究最简洁的例子,在程序中读取Linux的mac地址,并在屏幕输出。 图5灯光掌握 是从/tmp/mac_addr中取出mac地址,放在字符串mae_addr里面。修改这个程序,将其和cgivars[废量进行交互,变为可以在Webserver运行的cgi程序。但这个程序的问题是业务流程和详细的细节实现没有分开,假如涉及驱动,则程序就比较杂乱,不利于调试和维护,降低了开发效率。 5将业务流程和细节实现分别 从上面的例子可以看出,cgi业务流程和一些详细实现细节混在一起,例如:mac地址的许多字符串操作;假如有驱动的话,还有许多驱动接口函数。但设备的业务流程关心的不是这些。例如:需要做—个

文档评论(0)

185****9607 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档