嵌入式WEB服务器编写方法

来源:互联网 发布:有可靠的网络兼职吗 编辑:程序博客网 时间:2024/05/18 03:22

(1)编写网页文件

(2)生成一个*.c源文件,例如lwip,uip 均是通过fsdata生成,该*.c文件里面内容主要是很多数组,每个数组对应一个网页或图片,并通过链表结构把数组链接起来。

(3)确定入口缺省网页

  

 (4)网页输出--即将嵌入式模块的信息显示到WEB上  (SSI)

方法:收到"GET"命令后,在接受的数据中查找显示信息对应的标签,并用自己的“信息”替换即可

例如WEB源码中有温度标签"TAG:TMP1"
<TD width=166 height=25 align=\"center\">TAG:TMP1℃</TD>
类似代码
itoa(cpu_temperature%100, text+i, 10);
replace_tag(outbuf + 54, "TAG:TMP1", text);

 

 (5)网页输入--即将页面的信息输入到嵌入式模块中 (CGI)

方法:收到"POST"命令后,在接受的数据查找"name=", 再对=后字符串进行解析

例如WEB源码中有"name=switch"
"&nbsp; <INPUT type=radio CHECKED value=1 name=switch>灭 <INPUT type=radio"

类似代码

ptr = strstr(tcp_data, "switch=");
if (*ptr == '1') {CONTROL_LED=0x0;}   
else if (*ptr == '0') {CONTROL_LED=0x1;}

 
SSI简介:

SSI(Server Side Include),通常称为服务器端嵌入,是一种类似于ASP的基于服务器的网页制作技术。大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server等均支持SSI命令。

在一个通常以.shtml为扩展名的SSI文件中,标准的HTML编码会被直接送到浏览器上,而内嵌Perl语言形式的SSI命令则先被网络服务器解释执行,如果是标准输出的话,输出信息也将作为标准的HTML而被送至浏览器。

SSI简单应用实例:

〈html〉

〈head〉〈title〉my first SSI page〈/title〉〈/head〉

〈body〉

欢迎您(于〈!--# echo var="date_local" --〉)访问本网站。

〈/html〉

标记在上面文档中的“〈!--# --〉”结构表明了SSI命令会被服务器翻译执行,而不是直接送到客户端。我们可以在浏览器中用“查看→源文件"观察源代码:

〈html〉

〈head〉〈title〉my first SSI page〈/title〉〈/head〉

〈body〉

欢迎您(于dec 06 1999)访问本网站。

〈/html〉

我们发现,文档中的html被直接传到了客户端,而SSI命令得到了执行。SSI代码在客户端是不可见的,客户端只能看到它执行的效果。

 

CGI简介

Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。这样说大概还不好理解。那么我们看一个实际例子:现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。

 

lwip较新代码

void httpd_ssi_init(void)
{  
  /* configure SSI handlers (ADC page SSI) */
  http_set_ssi_handler(ADC_Handler, (char const **)TAGS, 1);
}

/**
 * Initialize CGI handlers
 */
void httpd_cgi_init(void)

  /* configure CGI handlers (LEDs control CGI) */
  CGI_TAB[0] = LEDS_CGI;
  http_set_cgi_handlers(CGI_TAB, 1);
}

 

原创粉丝点击