CGI 开发新秀之: eyBuild中文手册

haolee 2006-03-29 06:10:48
来自:
http://www.eybuild.com/develop/doc/manual/eybuild_manual_ch.htm
http://www.eybuild.com/develop/doc/manual/eybuild_manual_ch.pdf

第1章 序言
VB/JAVA/PHP等脚本直接嵌入在HTML中叫 ASP/JSP/PHP,那么用 C 直接嵌入在HTML中叫 CSP 吗?

是的, 现在我们可以直接将 C 语句嵌入在HTML中并叫它 CSP。C 语言天然好的"移植性/高效性/灵活性",一直以来都是最受程序员青睐的语言。现在用CSP 技术我们就可以轻松地将 C 语句直接嵌入到 HTML 源文件来快速编写CGI程序。

CSP VS cgilib:

传统的cgilib的直接使用标准函数printf等语句输出HTML代码。不但使得C程序和HTML程序交织的混乱不堪,还使得页面输出的流程控制变得异常复杂。现在ASP/JPS/PHP等几乎完全取代用cgilib。CSP与cgilib的开发模式不同,它充分吸取了ASP/JSP/PHP等以HTML/XML为模板嵌入脚本等诸多优点,并充分融合C语言的语言特性。使得CSP的开发变得快速、高效,并大大提了最终代码的可读性和维护性。CSP及其开发环境eyBuild是cgilib的继承和发展,同时目前也是开发高效率WEB应用的最佳选择。

一般工作步骤:

编辑好的 CSP 源程序,用eyBuild开发包提供的 CSP2BIN 工具将 CSP 源文件生成 C 程序的源文件,再链接上 eyBuild 提供的高效 CGI 运行库,就可以在各种平台生成移植性非常高的 CGI 程序。

To ASP/JSP/PHP 的程序员:

编写 CSP 程序就跟编写 ASP/JSP/PHP 一样,可以以先编写 HTML 文件为模板, 再在其中插入CSP 的语句。 甚至有些时候,就可以直接拿 ASP/JSP/PHP 的源文件稍加修改后作为 CSP 的源文件了,因为它们都用类似 <% 和 %> 的标签进行标记的嘛。 如果你是 ASP/JSP/PHP的程序员,并熟悉 C语言,半天时间你就能把 CSP 全学会。

To 嵌入式WEB开发:

CSP 设计的最原始的初衷,就是要为嵌入式开发定制的一套类似 ASP/JSP/PHP的C语言开发工具。 因为嵌入式设备(如路由器/交换机/VoIP网关PBX等)上用的开发语言主要是 C,而传统的 CGI 库 cgilib 以及开发模式远远不能跟上现代的开发需求。

现在 CSP 的eybuild开发环境提供的PC和嵌入式设备上高效移植的开发库,让服务器上应用和嵌入开发进行了有效统一,使得两者上的开发变得更为容易。 同时,优秀的跨平台的移植性也是eybuild的重要特性。

实践证明,CSP 及其开发工具 eybuild是嵌入式设备WEB开发的最理想工具,它能大大节缩短发周期(一般提高4-6倍),提高最终代码的可读性、可维护性(HTML 和 C 代码进行了有效的分离,所以代码维护更容易)。

高效的页面/图片/CSS集成技术:

通过eyBuild提供的集成技术,你可以把许多CSP/HTML页面集成生成到一个CGI中(包括页面相关的图片,CSS 文件及其它静态文件)。 甚至,你可以将一个小型的网站或WEB应用生成到一个CGI文件中,这使得最终的可执行脚本文件管理变得异常简单。 这一点在嵌入式设备上特别有用,因为它们中的很多只有有限的外存储器(如Flash ROM)和文件系统。 eyBuild为最后生成的 CGI 程序在其内部建立了虚拟目录,使得页面间的链接和引用跟一般HTML的编写方法一样,非常方便建立和维护。同时对服务器级应用,这也将是一个非常有利的选择。

可以直接调用任意 C 的函数

在 CSP 源程序中还可以非常容易地包含C 程序的头文件,这样在 HTML 代码中你就可以像写编写 C 文件一样调用外部函数或系统函数了,跟直接编辑 C 程序几乎没有差别。

CSP 的宏指令指示符 @

用宏指令指示符不仅可以进行包含 C 程序的头文件,还可以包含其它CSP文件。 这样当许多页面需要引用共通的一部分时(如页头/页脚或其它部分),包含其它 CSP 源文件这个功能显示特别有用。

有效的页面输出缓冲控制

跟 ASP/JSP/PHP一样,通过宏指令指示符还可以有效控制页面输出时的 MIME 头,页面缓冲区大小等等。这种使得页面上的流程控制变得更简单更直观。

...全文
225 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jspadmin 2006-03-31
  • 打赏
  • 举报
回复
怎么发到asp版来了?
给你转了
-----------------------------------------------------------------------
CSDN优秀版主评比,请各位兄弟支持我,谢谢-jspadmin
投票地址:http://community.csdn.net/Inquiry/143.htm

关于本次评比的详细情况:http://community.csdn.net/Expert/topic/4638/4638569.xml?temp=6.625003E-02
haolee 2006-03-31
  • 打赏
  • 举报
回复
贴段 CSP 的程序,
来自: http://www.eybuild.com
http://www.eybuild.com/develop/demoshow.htm

<html>
<% {{
char * title = "关于 eyBuild 综合演示程序";
%>
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312">
<title><% =title %></title>
</head>
<body>
来自: http://www.eybuild.com<br>
<font color=red><h3><% =title %></h3></font>
<br>
本程序包用于演示 eybuild/CSP 生成的 CGI 程序的执行.<br>
<p>
============<br>
<font color=red size=3>示例说明:</font><br>
============<br>
<% {
char pwd[256] = "";

_getcwd(pwd, sizeof(pwd));
%>
<table>
<tr><td width=250><a href=/cgi-bin/demo.cgi target=__blank><% =pwd %>\demo.cgi</a>
<td>一个最小的交互程序测试程序
<tr><td><a href=/cgi-bin/review.cgi target=__blank><% =pwd %>\review.cgi</a>
<td>一个简单的留言簿程序
<tr><td><a href=/cgi-bin/rweb.cgi target=__blank><% =pwd %>\rweb.cgi</a>
<td>远程WEB文件管理器, 可以自由浏览下载/上传文件
<tr><td><a href=/cgi-bin/fr40.cgi target=__blank><% =pwd %>\Fr40.cgi</a>
<td>是一个路由器的管理界面, 嵌入式应用的一个示例
</table>
<p>
<% } %>
============<br>
<font color=red size=3>运行步骤:</font><br>
============<br>
1. 解压到任意目录<br>
2. 运行WEB 服务器 webs.exe <br>
3. 从浏览器上输入或直接点击下面的CGI的地址:<br>
<% {
@include <undef.h>
@include <windows.h>
@include <direct.h>
@include <ebdef.h>
@include <ebio.h>

WIN32_FIND_DATA wfd;
HANDLE hfind = FindFirstFile("*.cgi", &wfd);

if (INVALID_HANDLE_VALUE != hfind) {
do {
if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
%>
    
<a href=<% =wfd.cFileName%> target=__blank>http://127.0.0.1/cgi-bin/<% =wfd.cFileName%></a><br>
<% }
} while (FindNextFile(hfind, &wfd));
} /* if */
}
}}
%>
<p>
============<br>
<font color=red size=3>关于WEB服务器:</font><br>
============<br>
<font color=red>如果你已经安装了 WEB 服务器(如Apache/IIS等), <br>
可以将 cgi-bin 目录中文件, 拷贝到相应的CGI目录中运行CGI演示程序</font><p>

为了便于演示 CSP CGI程序, eyBuild Group 修改了开源的 GoAhead Web 服务器(Windows版)<br>
打开WEB 服务器后, 直接从浏览器上输入同目录下 cgi-bin 目录中的文件名,<br>
即可打开示例程序.<P>
<body>
</html>
youzi520 2006-03-29
  • 打赏
  • 举报
回复
关注,新动态!
JSONObject必包的Jar包及json生成的简单案例 所有commons包的网址: http://commons.apache.org/index.html 组装和解析JSONObject的Json字符串,共需要下面六个包: 1、json-lib 2、commons-beanutils 3、commons-collections 4、commons-lang 5、commons-logging 6、ezmorph 第零个包: json-lib-2.4-jdk15.jar http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/ 下载地址:http://nchc.dl.sourceforge.net/project/json-lib/json-lib/json-lib-2.4/json-lib-2.4-jdk15.jar 第一个包: commons-beanutils-1.9.2.jar http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi 下载地址:http://mirrors.cnnic.cn/apache//commons/beanutils/binaries/commons-beanutils-1.9.2-bin.zip 第二个包: (注:此包不可用,改用旧包) commons-collections4-4.0.jar http://commons.apache.org/proper/commons-collections/download_collections.cgi 下载地址:http://apache.dataguru.cn//commons/collections/binaries/commons-collections4-4.0-bin.zip (注:此包可用,低版本的包稳定性更高) commons-collections-3.2.1.jar http://commons.apache.org/proper/commons-collections/download_collections.cgi 下载地址:http://mirrors.hust.edu.cn/apache//commons/collections/binaries/commons-collections-3.2.1-bin.zip 第三个包: (注:此包不可用,会造成程序出错,改用旧包) commons-lang3-3.3.2.jar http://commons.apache.org/proper/commons-lang/download_lang.cgi 下载地址:http://apache.dataguru.cn//commons/lang/binaries/commons-lang3-3.3.2-bin.zip (注:此包可用,低版本的包稳定性更高) commons-lang-2.6-bin http://commons.apache.org/proper/commons-lang/download_lang.cgi?Preferred=http%3A%2F%2Fapache.dataguru.cn%2F 下载地址:http://apache.dataguru.cn//commons/lang/binaries/commons-lang-2.6-bin.zip 第四个包: commons-logging-1.1.3.jar http://commons.apache.org/proper/commons-logging/download_logging.cgi 下载地址:http://apache.dataguru.cn//commons/logging/binaries/commons-logging-1.1.3-bin.zip 第五个包: ezmorph-1.0.2.jar http://ezmorph.sourceforge.net/ http://sourceforge.net/projects/ezmorph/files/ezmorph/ 下载地址:http://nchc.dl.sourceforge.net/project/ezmorph/ezmorph/ezmorph-1.0.6/ezmorph-1.0.6.jar

2,204

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧