(作者:孙航东 2000年12月07日 10:01)
众所周知,ASP技术是我们在以internet/intranet为平台的web程序的主要技术,在asp应用程序中我们一般使用vbscripts和javascripts两种脚本语言。但是脚本语言是一种非编译的语言,其所开发的web程序存在先天的安全性、执行效率扩张性方面的问题,因此我们一般在开发web系统时用高级语言编写asp执行体,然后用脚本语言作为连接代码去调用asp执行体执行存取。在这方面由于asp技术是微软推出的,因此我们一般利用vb或vc,那么delphi程序员又如何实现呢?
在这方面笔者最近通过inrpisre的资料,实现了在delphi环境中实现asp技术的web编程,现以一个介绍如下:
1、在delphi环境中建立一个新的acdiveX DLL项目Project1,然后通过delphi的Active Server Object建立一个ASP对象,在他的coClassName中填入所建立对象的名字MyAspObject.
2、通过type Library为刚建立的MyAspObject对象建立一个将要被脚本语言调用的方法MyAspRequest.
3、由于刚才所建立的ASP对象是从TASPObject继承的,应此我们在方法建立中可以直接使用asp对象,现在为我们建立的Asp对象填写代码如下:
produce TMyAspObject.MyAspRequest;
begin
repsonse.write('<p>您的姓名是:');
repsonse.write(request.form.item['Name']);
repsonse.write('</p>');//从所要建立的网页中读出用户名//
repsonse.write('<p>您的工作是:');
repsonse.write(request.form.item['work']);
repsonse.write('</p>');//从所要建立的网页中读出用户工作//
repsonse.write('<p>您用的开发工具:');
if(request.form.item['delphi'].count>0)
repsonse.write('delphi');
if(request.form.item['bcb'].count>0)
repsonse.write('c++ Builder');//判断用户所用的开发工具//
repsonse.write('</p>');
repsonse.write('<p>您的身份:');
repsonse.write(request.form.item['Identity']);
repsonse.write('</p>');//读出用户的身份//
end;
4、对程序进行编译并在delphi中进行注册为PMyAspObject.dll文件。
5、编写用于连接的ASP脚本语言文件MyAsp.asp
<%@language=jscript %>
<HTML>
<BODY>
<title>这是一个用delphi建立的ASP对象</title>
<center><h3>你填的内容如下</h3></center>
<%
var myasp;
myasp=server.createobject(PMyAspObject.MyAspObject);
//生成连接对象//
myasp.MyAspRequest();//调用自己定义的ASP对象//
%>
</body>
</HTML>
6、建立用于显示的网页Myhtm.htm
<form action='localHost/shd/myasp.asp' method='post">
<h1 align='center">请选择</h1>
<P>姓名:<input type='text' size=33 name="name"></p>
<P>工作:<input type='text' size=33 name="work"></p>
<P>开发工具:<input type='checkbox' name='delphi' value="on">delphi
<input type='checkbox'name='bcb'value="on">c++ Builder</p>
<p>您的身份:</p>
<p><select name="identity" size="1">
<option>学生</option>
<option>技术人员</option>
</select></p>
<p><input type="submit" name="mysubmit" value="递交">
</form>
7、然后把Myhtm.htm和myasp.asp放在个人的web服务器中的shd目录下即可浏览测试。
网页效果图
![](http://www.ccidnet.com/html//tech/guide/2000/12/07/image/001207b1-2.gif)
ASP效果图
![](http://www.ccidnet.com/html//tech/guide/2000/12/07/image/001207b1-1.gif)
以上程序的pwin98 ME和delphi5.0 Enterprise中实现。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3232