<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[骇人听闻]在积水潭第一次看到CSP]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sat, 18 Nov 2006 06:45:09 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<p align="center">本人前些天感冒了,到积水潭去看病偶尔看到他们的计算机系统用的是csp,以前听说过,现在终于找到了相关文章,好象也就是asp$php$jsp &nbsp;一样的,但不同在他原理上可能导致它要快一些:<br/> 这个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"。<br/><br/>（下面的文字部分来源于《CSP开发者手册》）<br/><br/> &nbsp; &nbsp;CSP使用C++语言作为脚本的语言，和asp、jsp、php等不同的是，CSP不是解释执行的脚本，而是真正编译后执行的脚本。因此和其它脚本语言相比较，CSP执行速度和效率都要高一些，由于使用标准的动态连接思想，因此CSP可以被用户非常方便的扩充，对于复杂的或者保密要求高的应用，完全可以通过CSP扩展来完全隐藏实现的细节。 <br/> &nbsp; &nbsp;CSP是经过编译执行的代码，用户需要作的是维护CSP的源码，而编译过程是由CSP内置的编译器来完成，称为现场编译（Field Compile）。CSP脚本的缺点是需要保存编译后的二进制代码，以提高再次执行的速度，因此CSP作的网站需要比其它脚本语言占用更多的磁盘空间。 <br/> &nbsp; &nbsp;CSP实际上就是一种CGISpawn，关于CGISpawn的详细介绍可以参考MSDN的相关内容。<br/><br/>---------------------------------------------------------------------------<br/><br/>antigloss 插嘴说：<br/> &nbsp; &nbsp;再往下看之前，请您先了解一下如何配置 CSP 服务器。先安装 IIS（5.0 以上版本）或者 Apache（1.3.x 以上版本），然后安装 C++ Server Pages (CSP) Engine。至此，一台 CSP 服务器就配置成功了。<br/><br/>CSP Engine 下载地址：http://stdcpp.cn/html/8/17/0512/98.htm<br/><br/>---------------------------------------------------------------------------<br/><br/> &nbsp; &nbsp;好了，回到主题上来。现在的首要任务是：如何使用CSP写页面呢？<br/><br/> &nbsp; &nbsp;在场的各位会写ASP页面的有多少人呢？<br/><br/> &nbsp; &nbsp;嗯，好，还挺多的嘛～～～～那我就继续了。<br/><br/> &nbsp; &nbsp;大家都知道在ASP中写代码是要在 <% 与 %> 之间的部分写的，CSP也是如此。不过少许的差别还是有的。这个差别体现在： <br/><br/> &nbsp; &nbsp;1.CSP对大小写敏感。因为这是C++啊，会C/C++语言的人都知道。<br/><br/> &nbsp; &nbsp;2.在CSP的体系中，有一个特殊的代码段标志：<%! %>。<br/><br/> &nbsp; &nbsp;仔细看，没错，就是写在 <%! %> 之间，在第一个%后面有一个!，这是作为全局变量和自定义函数代码块的标志，声明结构体也要在这里。在一个CSP页面中，所有的自定义函数的实现一定要放在<%! %>之间。而其它的代码则可以像ASP代码一样在页面的各处随意穿插安放。只要在<% %>中就行。<br/><br/>在了解这些细节之后，我们就可以开始写页面了。<br/><br/>我先给出一个简单的例子，然后再仔细给大家分析一下：<br/><br/><html><body><br/><%<br/> &nbsp; &nbsp;int i=0;<br/> &nbsp; &nbsp;char s[50];<br/> &nbsp; &nbsp;for ( i = 0; i < 10; ++i )<br/> &nbsp; &nbsp;&#123;<br/> &nbsp; &nbsp; &nbsp; &nbsp;sprintf(s,"<br/>%d : 欢迎来到CSP的世界！",i);<br/> &nbsp; &nbsp; &nbsp; &nbsp;Response.Write(s);<br/> &nbsp; &nbsp;&#125;<br/>%><br/></P>It is over!</P> <br/></body></html> <br/><br/>访问这个CSP页面，你会得到一个显示如下内容的页面：<br/><br/>0 : 欢迎来到CSP的世界！<br/>1 : 欢迎来到CSP的世界！<br/>2 : 欢迎来到CSP的世界！<br/>3 : 欢迎来到CSP的世界！<br/>4 : 欢迎来到CSP的世界！<br/>5 : 欢迎来到CSP的世界！<br/>6 : 欢迎来到CSP的世界！<br/>7 : 欢迎来到CSP的世界！<br/>8 : 欢迎来到CSP的世界！<br/>9 : 欢迎来到CSP的世界！ <br/><br/>It is over!<br/><br/> &nbsp; &nbsp;大家都学过C语言吧，看看上面的语句(不是吧？你C语言挂了？！)。变量声明与循环我就不多讲了，有两句得说一下：<br/><br/> &nbsp; &nbsp;1.sprintf(s,"<br/>%d : 欢迎来到CSP的世界！",i); <br/><br/>这句是把我们要显示的字符串复制到缓冲区 s 中去。实现这个功能的函数是：sprintf 。是不是觉得和C语言中的 printf 很像呢？没错，它实际上与printf就是同一族的(其它的还有wsprintf , fprintf 等等。这里先不做讨论。)printf的任务是把字符串输出到屏幕，而sprintf则是把字符串输出到内存中的一块区域，以供别的代码使用。它的的用法和printf类似，都是要通过%d等一些占位符来实现格式化输出。当页面执行完这一句之后，就把“0 : 欢迎来到CSP的世界！”这样的字符串放到数组 s 中了。<br/><br/> &nbsp; &nbsp;2.Response.Write(s);<br/><br/>这一句对于经常进行ASP编程的同学应该相当熟悉吧。它的主要任务就是把刚才我们得到的字符串从内存中取出来，再写入服务器的响应，进而显示在你的浏览器上。如果你已经能够正确地显示出结果，那么恭喜你，你已经入门了！<br/><br/>下面介绍一下在CSP中可以使用的数据类型以及可以直接使用的基本类，还有很实用的功能类。<br/><br/>char<br/>wchar_t<br/>std::string<br/>std::wstring<br/>int<br/>unsigned int<br/>__int64<br/>unsigned __int64<br/>long<br/>unsigned long<br/>short<br/>unsigned short<br/>char<br/>unsigned char<br/>bool<br/>double<br/>float<br/><br/>以上类型支持 const 关键字。<br/><br/>以下是基本类：<br/>CSPDate<br/>CSPTime<br/>CSPDateTime<br/>CSPVariant<br/>CSPBuffer <br/>CSPDate <br/>CSPException <br/>CSPFile <br/>CSPString <br/>CSPVarArray <br/>CSPWString <br/><br/>这三个类是对数据库操作的封装：<br/>CSPODBCConnection <br/>CSPODBCField <br/>CSPODBCRecordset <br/><br/>以下是功能类：<br/>CSPImpersonation <br/>CSPMail <br/>CSPMime <br/>CSPMimePart <br/>CSPTemplate <br/>CSPThread <br/>CSPThreadLock <br/>CSPThreadLockHandler <br/>CSPTimer <br/>CSPTxContext <br/>CSPTxObject<br/><br/>下面这几个是模板类(这确实让我很惊奇)：<br/>CSPPool <br/>CSPPool::ObjectPtr <br/>CSPArray <br/>CSPPtr <br/><br/>写了这么多，好累啊。也不知道有人看没？？？对于那个为什么会有关于<%! %>的规定的原因，我改天会仔细阐述的。但愿这个“改天”不会太长，呵呵。</p>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [骇人听闻]在积水潭第一次看到CSP]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>