发信人: mengy (LEAR DLLS 命令时,将从内存中清除), 信区: BorlandDev
标  题: Delphi开发Web Server程序响应用户的输入
发信站: 哈工大紫丁香 (2001年03月13日18:36:25 星期二), 转信

Delphi开发Web Server程序响应用户的输入  <<上一篇 下一篇>> 
  随着Internet/Intranet的飞速发展和普遍应用,对在Internet/Intranet上的应
用程序的需求越来越多,于是Java和ActiveX Form应运而生,但是,现在
Internet的带宽还非常低下的情况下,这种基于Client端的应用是非常困难的,下
载一个非常小、功能非常简单的Java Applet就需要非常长的时间,而且还存在着
用户使用浏览器不支持这种新技术的可能。在这种情况下,基于服务器的CGI,
Win-CGI,ISAPI/NSAPI还是一种主要的方式。使用Delphi 3开发Web Server程序是
非常简单的,Delphi 3中提供了大量的元件和对象,支持Web Server程序的开发。
 

在Delphi 3的Demos中提供了简单的Web Server程序开发的例程,本文主要集中在
此例程中没有涉及到的响应用户输入的问题。 

HTML中用户输入主要是<FORM>语句,在<FORM>中,支持POST、PUT、GET和HEAD方法
,而PUT,GET和HEAD方法返回数据的方式基本相同。 

例如(查询某人的电话号码): 

<FORM ACTION="add" METHOD=POST> 

姓名:<INPUT TYPE=TEXT NAME="name" SIZE=8> 
<BR><INPUT TYPE=SUBMIT VALUE="查询"> 

<INPUT TYPE=RESET VALUE="重填"> 

</FORM> 
在这个例子中使用了POST方法。那么在Web Server应用程序中,如何得知用户的输
入信息呢? 

在HTTP协议中,客户端向Web Server应用程序返回数据主要是通过URL和CONTENT部
分。例如URL中:http://www.delphi.com.cn/dfyw/cgi-bin/delinfo.exe?id=10,
这里,id=10数据参数,告诉delinfo.exe显示从ID=10开始的信息,这一般应用在
数据量较少的情况下,优点是比较容易输入参数,缺点是数据量不能太大,并影响
URL的显示。在CONTENT中保存数据信息的优点是不影响URL的显示,而且数据量较
大,缺点是用户只能使用<FORM>表格让浏览器生成请求,不能直接输入请求信息。
 

除了POST方法使用CONTENT部分返回数据以外,其它方法都是通过URL来返回数据的
。 

Delphi中有TWebRequest对象,这个对象将HTTP返回的信息进行分析,非常容易使
用。对于CONTENT中的数据,TWebRequest使用ContentFields,将数据分析成为一
个TStrings,可以直接使用Request.ContentFields.Values['name']来都取数据。
而URL中的数据,TWebRequest使用QueryFields,也将数据分析成为了一个
TStrings,可以直接使用Request.QueryFields.Values['name']来读取数据。 

例如上面的HTML返回的消息处理: 

if Request.ContentFields.Values['name']<>’’ then 

Response.Content:= Request.ContentFields.Values['name'] 

+’的电话号码是:’+QueryTelCode(Request.ContentFields.Values['name'])
else 
Response.Content:=’请输入用户名’; 

当然,还有一种输入数据是Cookie。Cookie是保存在客户端的一种数据,用来保存
访问者的访问信息等。对于Cookie数据使用 CookieFields来进行读取。如何设置
Cookie,请参见本人主页(http://www.zz.ha.cn/grwy/borland/)中的说明。 

(本文发表在《电脑商情报》1998/5/4日第17上) 

作者:傅贵 
   
 
  如果你有什么好的资料,可以寄给我哟:) <<回到首页 <<上一篇 下一篇>> 



------------------------------------------------------------------------
--------
  Delphi 技巧集 
   
  Copyright 1999.11 by 东子 Mail to me! 
感谢广州视窗提供主页空间 


--

       大海无边天做岸
               山登绝顶我为风

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.227.121]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.944毫秒