回首页 回首页 ◎ 设为首页  
◎ 收藏本站  
◎ 给我留言  
  
  首 页  C/C++教程  C++之父的FAQ  C/C++动向  C/C++源代码  C/C++误区  Unix/Linux  下载中心  乱七八糟  蚂蚁的Blog  
  当前位置:首 页 >> 乱七八糟 >> 乱七八糟 >> [转] 骇人听闻的 CSP
最 近 更 新
让我耿耿于怀的一道笔试题
原来可以这样出书、写书?
[转] 骇人听闻的 CSP
[转] C/C++术语中英对照
[转]也谈选书
李开复给计算机系大学生..
最 新 推 荐
热 门 排 行
李开复给计算机系大学生..
让我耿耿于怀的一道笔试题
[转] C/C++术语中英对照
[转] 骇人听闻的 CSP
原来可以这样出书、写书?
[转]也谈选书
站 内 搜 索

Web stdcpp.cn
关键词

搜索方式

搜索范围

精确匹配
广 告

[转] 骇人听闻的 CSP


来源:雨下桐梧 作者:Ghostex 等级:精品
发布于2005-12-06 22:33 被读4329次 【字体:
    今天有点空,研究了一下CSP,有一点不大不小的收获,现在拿出来献一下丑。用个有点搞噱头的标题是因为在网上原来有就这么一篇文章,借个标题聚点人气,呵呵。而我即将要介绍的东西,的确是比较有创意的,并且文章有一段话是引用里面的,所以用一下这个标题也不足为过吧,言归正传,下面开始。

    Hmm...What is CSP?

    咳.....关于CSP的概念和背景,我实在懒得写了,请允许我摘录一段:

---------------------------------------------------------------------------

    这个CSP不是CSP(Commercial Service Provider)即商业服务提供商,CSP不是Client/Server Program,也不是Chinese Super Programer,更不是CS Player,那么什么是CSP呢?在说明什么是CSP之前,先说明什么是“骇人听闻”,一说到“骇人听闻”,你可能就想到了是什么坏事吧,其实不一定,应该说就是前所未闻的事说严重一点就是“骇人听闻”了。在每一本关于asp, php, jsp, asp.net书上都告诉你,做网站不可能使用C++,真的吗?这个CSP偏偏就是C++ Server Pages的简称,和asp、jsp类似,属于一种Web应用扩充的脚本语言,可以用来编写网页代码。其对应的文件名是".CSP"。

(下面的文字部分来源于《CSP开发者手册》)

    CSP使用C++语言作为脚本的语言,和asp、jsp、php等不同的是,CSP不是解释执行的脚本,而是真正编译后执行的脚本。因此和其它脚本语言相比较,CSP执行速度和效率都要高一些,由于使用标准的动态连接思想,因此CSP可以被用户非常方便的扩充,对于复杂的或者保密要求高的应用,完全可以通过CSP扩展来完全隐藏实现的细节。
    CSP是经过编译执行的代码,用户需要作的是维护CSP的源码,而编译过程是由CSP内置的编译器来完成,称为现场编译(Field Compile)。CSP脚本的缺点是需要保存编译后的二进制代码,以提高再次执行的速度,因此CSP作的网站需要比其它脚本语言占用更多的磁盘空间。
    CSP实际上就是一种CGISpawn,关于CGISpawn的详细介绍可以参考MSDN的相关内容。

---------------------------------------------------------------------------

antigloss 插嘴说:
    再往下看之前,请您先了解一下如何配置 CSP 服务器。先安装 IIS(5.0 以上版本)或者 Apache(1.3.x 以上版本),然后安装 C++ Server Pages (CSP) Engine。至此,一台 CSP 服务器就配置成功了。

CSP Engine 下载地址:http://stdcpp.cn/html/8/17/0512/98.htm

---------------------------------------------------------------------------

    好了,回到主题上来。现在的首要任务是:如何使用CSP写页面呢?

    在场的各位会写ASP页面的有多少人呢?

    嗯,好,还挺多的嘛~~~~那我就继续了。

    大家都知道在ASP中写代码是要在 <% 与 %> 之间的部分写的,CSP也是如此。不过少许的差别还是有的。这个差别体现在:

    1.CSP对大小写敏感。因为这是C++啊,会C/C++语言的人都知道。

    2.在CSP的体系中,有一个特殊的代码段标志:<%! %>

    仔细看,没错,就是写在 <%! %> 之间,在第一个%后面有一个!,这是作为全局变量和自定义函数代码块的标志,声明结构体也要在这里。在一个CSP页面中,所有的自定义函数的实现一定要放在<%! %>之间。而其它的代码则可以像ASP代码一样在页面的各处随意穿插安放。只要在<% %>中就行。

在了解这些细节之后,我们就可以开始写页面了。

我先给出一个简单的例子,然后再仔细给大家分析一下:

<html><body>
<%
    int i=0;
    char s[50];
    for ( i = 0; i < 10; ++i )
    {
        sprintf(s,"<br>%d : 欢迎来到CSP的世界!",i);
        Response.Write(s);
    }
%>
</P>It is over!</P> 
</body></html> 

访问这个CSP页面,你会得到一个显示如下内容的页面:

0 : 欢迎来到CSP的世界!
1 : 欢迎来到CSP的世界!
2 : 欢迎来到CSP的世界!
3 : 欢迎来到CSP的世界!
4 : 欢迎来到CSP的世界!
5 : 欢迎来到CSP的世界!
6 : 欢迎来到CSP的世界!
7 : 欢迎来到CSP的世界!
8 : 欢迎来到CSP的世界!
9 : 欢迎来到CSP的世界!

It is over!

    大家都学过C语言吧,看看上面的语句(不是吧?你C语言挂了?!)。变量声明与循环我就不多讲了,有两句得说一下:

    1.sprintf(s,"<br>%d : 欢迎来到CSP的世界!",i);

这句是把我们要显示的字符串复制到缓冲区 s 中去。实现这个功能的函数是:sprintf 。是不是觉得和C语言中的 printf 很像呢?没错,它实际上与printf就是同一族的(其它的还有wsprintf , fprintf 等等。这里先不做讨论。)printf的任务是把字符串输出到屏幕,而sprintf则是把字符串输出到内存中的一块区域,以供别的代码使用。它的的用法和printf类似,都是要通过%d等一些占位符来实现格式化输出。当页面执行完这一句之后,就把“0 : 欢迎来到CSP的世界!”这样的字符串放到数组 s 中了。

    2.Response.Write(s);

这一句对于经常进行ASP编程的同学应该相当熟悉吧。它的主要任务就是把刚才我们得到的字符串从内存中取出来,再写入服务器的响应,进而显示在你的浏览器上。如果你已经能够正确地显示出结果,那么恭喜你,你已经入门了!

下面介绍一下在CSP中可以使用的数据类型以及可以直接使用的基本类,还有很实用的功能类。

char
wchar_t
std::string
std::wstring
int
unsigned int
__int64
unsigned __int64
long
unsigned long
short
unsigned short
char
unsigned char
bool
double
float

以上类型支持 const 关键字。

以下是基本类:
CSPDate
CSPTime
CSPDateTime
CSPVariant
CSPBuffer
CSPDate
CSPException
CSPFile
CSPString
CSPVarArray
CSPWString

这三个类是对数据库操作的封装:
CSPODBCConnection
CSPODBCField
CSPODBCRecordset

以下是功能类:
CSPImpersonation
CSPMail
CSPMime
CSPMimePart
CSPTemplate
CSPThread
CSPThreadLock
CSPThreadLockHandler
CSPTimer
CSPTxContext
CSPTxObject

下面这几个是模板类(这确实让我很惊奇):
CSPPool
CSPPool::ObjectPtr
CSPArray
CSPPtr

写了这么多,好累啊。也不知道有人看没???对于那个为什么会有关于<%! %><%!...%>的规定的原因,我改天会仔细阐述的。但愿这个“改天”不会太长,呵呵。

本文乃网上搜集得来,其版权归原作者和原出处所有。如有侵犯版权之处请与我联系,我将马上进行处理。



相关专题:暂无相关专题

上一篇:[转] C/C++术语中英对照
下一篇:原来可以这样出书、写书?

共有评论 10 条 网友评分 2分 查看全部评论

游客:antigloss
评分:5
据我所知,CSP 目前有两种版本,一种是希腊 micronovae 的 CSP,成形于2002年,本文介绍的就是这种 CSP;另一种是中国 CSPDev 的 CSP,目前还在还不太成熟。

希腊的 CSP 以 Html 代码为主,C++ 代码穿插在 Html 代码之间;中国的 CSP 以 C++ 代码为主,Html 代码穿插在 C++ 代码之间。

目前我还没找到中国的 CSP 服务器程序下载地址。

这里有一篇介绍中国的 CSP 的文章,有兴趣的朋友不妨看看。
http://sinoprise.com/read.php?tid=163&amp;fpage=1
游客:ty
评分:0
速度再快也没用啊,都这年代了还在页面里穿插服务端代码,看来是没赶上时代啊!
游客:逆天唯我
评分:4
呵呵!长见识!
游客:tvb
评分:0
非常了,不知能不能用指针,如果可以就太可怕了。
游客:jason
评分:0
感觉不伦不类的……
游客:Dic4000
评分:0
下了C++ Server Pages (CSP) Engine,把代码复制到txt文档,用IE打开只显示It is over!,应该怎么配置环境啊?
游客:antigloss
评分:0
仔细看看本文,有你想要的答案
游客:Dic4000
评分:0
  CSP是经过编译执行的代码,用户需要作的是维护CSP的源码,而编译过程是由CSP内置的编译器来完成,称为现场编译(Field Compile)。

就是不知道怎么编译,安装后的控制台是一些环境变量的配置,我没动它,Internet 信息服务也打开了,然后就是把你写的代码复制到记事本中,用IE打开它,页面显示的只是最后一句.

会不会是掉了类似<script language="javascript" type="text/javascript">这样的语句,疑惑~~~~~

查看全部评论

【发表评论】 评分:1分 2分 3分 4分 5分


验证码:

Powered By Www.Xydw.COM Ver1.14 管理
Copyright © 2005-2006 蚂蚁的 C/C++ 标准编程 All Right Reserved. XCMS
粤ICP备06014124号   站长:Antigloss