专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Web开发

怎么实现一种简单的、全新的服务器页面脚本?

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
如何实现一种简单的、全新的服务器页面脚本? - Web 开发 / 其他
缘起: KSP是什么?
KSP是Koodoo语言服务器页面脚本(Koodoo Server Page)的简称,我们知道Koodoo语言是运行在蓝星际语音平台上,用来开发语音IVR或呼叫中心流程的高级脚本语言,直接被语音平台加载运行在线路上。而KSP却是把Koodoo语言嵌入在HTML页面上,就像ASP、JSP或PHP一样,可以用来实现基于Web应用的业务逻辑。
我们知道,运行ASP需要IIS,PHP需要Apache,JSP则需要Java的应用服务器,那么运行KSP的web服务器是什么?
其实就是蓝星际语音平台,当然,还需要在虚拟线路上加载处理页面的脚本,具体在后面“怎么部署”详细讲述。
这是一段最简单的KSP页面(文件名Hello.ksp):
<html>
<head>
<title> KSP 测试 </title>
</head>
<body>
<p> Hello World </p>
<%
Print( " <p> Hello, KSP! </p> ");

// 下面显示当前时间
s = " ";
GetDateStr( " <p> 格林维茨时间: %a, %d %b %Y %T GMT </p> ", NULL, true, s);
Print(s); // 将变量s输出到浏览器页面
%>
</body>
</html>

如果运行起了语音平台后,在浏览器的地址栏输入: http://localhost:8081/hello.ksp, 将会显示:
Hello World
Hello, KSP!
格林维茨时间: Tue, 21 Aug 2007 09:06:21 GMT

这看起来多么简单,和其它脚本语言一样,KSP只是在普通的HTML或XHTML文件中用 <% ... %> 括起来的部分,Print(s)函数会将变量输出到浏览器页面上。


服务器脚本够多了,为什么还要KSP?
web服务器的脚本很多,如PHP就很好,ASP.NET也不错,JSP甚至现在流行的RoR,都有很多成熟的应用。
但KSP比他们简单,简单就是最大的优势。你不用学习和理解面向对象的概念,语法上也很简单,比如变量不用像PHP那样要在前面弄个美元符号,字符串拼接也直接用加号。此外很多朋友已经熟悉Koodoo语言了,驾轻就熟,做一些简单的业务开发没必要再用其他的工具。

KSP就运行在蓝星际语音平台上面,只是多配置几条虚拟线路来跑Web服务器而已,和语音平台紧密集成,你可以通过浏览器来直接查询甚至控制语音平台。从某种意义上,相当于多了一个和语音平台打交道的接口。

因为KSP基于Koodoo语言,所以继承了Koodoo语言的灵活性,比如,可以利用文本转语音的函数进行实时转换并下载,可以实时传真转换并发送传真,可以利用DLL来进行短信收发,可以给其它线路发送消息等等。


怎么部署?
点击下面的链接下载:最新的蓝星际语音平台之开发平台 或 最新的蓝星际语音平台之运行平台
点击下面的链接下载:web服务器脚本

服务器脚本下载到本地目录后,按目录解包,将语音平台(开发平台或运行平台)程序拷贝到该工作目录。
1.如果你有运行平台许可,则简单配置好BsTelRun.cfg文件后,直接运行运行平台程序就可以了。
2.如果用开发平台来进行测试,则运行开发平台程序,选择HttpServer.bss脚本,编译,运行,为了加快速度,
去掉界面上的 "动态刷新 "。
注意,运行平台采用多线程方式响应浏览器的请求,有更好的性能;开发平台则采用堵塞方式运行,完成一个请求后才能
响应下一个请求,但你一个人测试就没有问题。
工作目录下有个web.ini文件,是个简单的配置文件,只有几行:
const WEB_PORT = 8081; // 本web服务器侦听的端口号, 为了不和标准web服务器的80端口冲突,设置为8081
const BASE_HTM_PATH = "./Ksp/ "; // 首页路径,.htm或.ksp文件放在这个目录下面,可以有子目录
const TEMP_FILE_PATH = "tmp/ "; // 临时文件路径, 必须预先创建
运行起来后,就像前面所说的,在浏览器的地址栏上输入http://localhost:8081/hello.ksp,就可以看到结果了。


解说一下: 用一百多行Koodoo代码如何实现一个功能强大的Web服务器?
其实要做一个web服务器比想像的简单,用Koodoo语言来实现就更简单了。
你可以用记事本打开HttpServer.bss脚本, 运行平台使用HttpServerCtrl.bss和HttpServerProc.bss,前者是主控脚本,运行在一条虚拟线路上,接受浏览器的Http连接;后者分解请求并进行处理然后发送Http响应,可配置在多条虚拟线路上运行。

脚本很简单,总共只有将近200行代码:
1.在脚本的开始,用系统函数HttpServerOpen()侦听WEB_PORT端口;
2.用系统函数HttpServerRecv()函数接收浏览器的请求;
3.调用自定义函数ProceData()处理请求的数据,在函数内会调用系统函数HttpServerSend()给浏览器发送响应数据;
4.循环2,3
自定义函数ProceData()是数据处理的关键:
1.分解请求头,取得Get、Post、Cookie等数据;
2.如果不是.ksp脚本,如普通的.htm或jpg图片等,直接打开文件发送给浏览器;
3.如果是.ksp脚本请求,则调用KspToBss()系统函数,将Ksp脚本分解为标准Koodoo语言的Bss脚本,
然后调用系统函数RunBss()执行之; 将执行脚本所生成的htm文件发送给浏览器。
这一切,都在HttpServer.bss脚本中写的明明白白,你可以自己阅读或者修改它,来适应你自己的特殊需求。你可以定制一个Web服务器,这一切都是透明的,不是吗?


怎么用KSP?
KSP就是嵌入式的Koodoo语言,比Asp和PHP都要简单,更不用说Jsp了。
浏览器可以用Get参数或Post方法给KSP传递数据,这些存储在全局数组里面:
_GET // 用Get方法发送给服务器的数据
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • vs2010旗舰版新建网站有关问题

    vs2010旗舰版新建网站问题 vs2010旗舰版新建网站时会默认产生一些网页和母版,自己还得删除,有点麻烦。怎么样设置不让他自己产生一...

  • 作为一个才学html的小白,该如何处理

    作为一个才学html的小白 学了一个星期的html了,能用table设计一下版面了。准备这个星期学div了。 困惑是:现在在逼着自己尽量用纯...

  • 求推荐个收费空间解决方案

    求推荐个收费空间 需求 1.》=100m的空间,不需要其他插件 2.不需要数据库 3.较高的浏览速度 4.稳定和持久 5.希望是最高的性价比 ...

  • 请教有好看的登陆界面吗

    请问有好看的登陆界面吗 找了一上午了。。实在找不到。 请问有好看的登陆界面吗(没有明显主题), 要新颖 好看,融入新元素 ------解决...

  • 日日自学JS,一个月后有成绩吗

    天天自学JS,一个月后有成绩吗? 我是做前端开发的,目前就只会一些DIV+CSS,现在想学习JS,于是买了本JS书,书名叫《精通Javascript+JQuery...

  • 为何这张图下载到电脑就静止了?解决方案

    为何这张图下载到电脑就静止了? 为何这张图下载到电脑就静止了? http://ukgg.35free.net/uindex.htm 新买的WIN7操作系统。 ------...

  • 关于网页的ActiveX以及cab包自动有关

    关于网页的ActiveX以及cab包自动相关 我的网页上引用了一个: <object id="YstWatch" align="center" style="margin-left:-1px;ma...

  • 请教一下论坛有WEB开发 html的QQ群吗

    请问一下论坛有WEB开发 html的QQ群吗? 内容如上啊,有的友友分享下好吗?真心求教 求分享 感激!! ------解决方案--------------------...

  • IE6、IE7、IE8的优缺点和区别解决办法

    IE6、IE7、IE8的优缺点和区别 有一次面试的时候一个大神问我的问题,现在想起来了,贴出来,大家讨论下,来个大虾指点一二 ------解决方...

  • php 在网页下播放视频

    php 在网页上播放视频 php 在网页上播放视频支持多格式的,今天弄了一个只支持flv格式的,其它的只能听到声音看不到画图,请各位路过的...

热门推荐: