CSP 概述(一)
来源:互联网 发布:手机淘宝账号登陆不了 编辑:程序博客网 时间:2024/05/17 06:20
最近看到了关于CSP的文章, 感觉很好, 对于初学者是个很好的认识材料. 故做了以下翻译, 以便一直支持中文的朋友欣赏:
CSP语法:
CSP脚本语言是一种HTML/C++混合在一起使用的脚本语言. 在CSP语言中,C++代码是嵌在"<%"与"%>" 之间的(<%...(C++ 代码)..%>)标签中的, 这个标签是嵌在HTML中的.例如:
<p>这是 HTML 代码.</p>
<%
// 这里是 C++ 代码
int x = 0;
%>
和其他类似的脚本语言一样, 你能直接执行C++语句,通过使用"<%= 表达式%>"标签,把结果输出到客户端.例如:
<p>变量的值是:<%=MyVariable%></p>
注意:当你使用这个执行标签时, 在"<%"和"="之间没有空格. 同时在这个标签内你一定要使用C++表达式,而不是C++的声明, 也就是说这里的C++表达式是不带终止符";"(分号)的.
内嵌的对象有:Response, Request, Session, Application 和 Page, 这些对象都可以在C++代码中使用.
除了在脚本中使用C++代码外,可能还需要声明全局变量, 和 在脚本第一次执行或从内存中卸载时要执行的的初始化或清空代码.
这个C++ 代码的全局部分是通过使用标签:"<%!global: ... (全局 C++ 代码) ...%>" 或者使用简单的标签:"<%! ... (全局的C++ 代码) ...%>"来实现的, 比如:
<%! // 全局代码
int iCount = 0;
%>
<% // 主体代码部分
++iCount;
%>
<p>
Hits since script was first loaded:
<% // body code
Response.Write( iCount );
%>
</p>
C++ 代码的初始部分使用标签:"<%!onload: ... (要初始的 C++ 代码) ...%>". 例如:
<%! // 全局代码部分
int iCount;
%>
<%!onload: // 初始化代码部分
iCount = 1;
%>
<% // body部分代码
++iCount;
%>
<p>
Hits since script was first loaded:
<% // body 部分代码
Response.Write( iCount );
%>
</p>
每当在CSP脚本中的编译后的二进制文件(dll)被加载到内存时, 这个初始化代码就会被执行一次.
内嵌的Page 和 Application 对象可以在这个部分使用.
这个在C++ 代码中的清空部分是使用标签:"<%!onfree: ... (要清除的 C++ 代码) ...%>". 例如:
<%! // 全局代码部分
unsigned char* pMem;
%>
<%!onload: // 初始化代码部分
pMem = new unsigned char [1024];
%>
<%!onfree: // 清空代码部分
delete[] pMem;
%>
每当在CSP脚本中卸载已编译的二进制文件(dll)到内存时, 这个清空代码部分就会被执行一次.
内嵌的Page 和 Application 对象可以在这个部分使用.
- CSP 概述(一)
- CSP 概述(二)
- CSP
- CSP
- CSP开发基础--开发实例一
- CSP开发基础--开发实例一
- CSP开发基础--开发实例一
- 一、概述
- 一:概述
- 一、概述
- 一 概述
- JDBC 概述(一)
- JDBC 概述(一)
- JDBC 概述(一)
- 一、存储过程概述
- JDBC 概述(一)
- JDBC概述 (一)
- [Oracle]体系结构(一)--概述
- 在windows下通过VC6.0第一次用C调用SQLite
- 在C语言中得到sqlite数据库中表的内容
- 过冬,乌龟装备升级!
- 昨天的SUN讲座
- 我的小龟叫巴西龟
- CSP 概述(一)
- 被人推销防脱发洗发水
- 无法在服务器上启动调试的解决办法
- ruby学习笔记(10)--模块
- 在WinCE下编译sqlite3生成动态链接库
- 堆叠和级联的区别!
- 由浅到深了解JavaScript类
- 使用Subversion进行版本控制书籍地址!!
- 风险转化成了问题