| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    想学好编程,学好外语很重要  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 应用开发 >> delphi >> 网络开发 >> 文章正文
Delphi 3中Cookie的建立使用            【字体:
Delphi 3中Cookie的建立使用
作者:不祥    文章来源:-    点击数:    更新时间:2006-12-12

Delphi 3中Cookie的建立使用

 Cookies是一种Web服务器在客户端存储和返回信息的机制,这种简单的、永久的和基于客 户端的状态信息大大的扩充了基于Web的客户/服务器(Client/Server)应用程序的能力。 因此  
广泛应用在大量的实际中,例如所有订阅Microsoft公司的MSDN的用户、访问过Borland  
Online的用户,以及访问过我的主页(http://www.nease.net/~borland)的用户都会在本 地存储  
Cookie,以便下次访问时提供上次访问的记录。    
  Delphi 3是Borland公司1997年推出的可视化、面向对象的高效率的快速应用程序开发 工  
具(RAD),提供了大量的最新功能,例如开发COM/DCOM,一步开发ActiveX对象,多层  
数据库应用程序MIDAS等,并且使用Delphi 3开发基于Web服务器的程序,如ISAPI/NSAPI 
,  Win-CGI,CGI程序都十分方便。    
    使用Delphi 3开发Web Server程序是非常简单,方便的,因为在Delphi中提供了Web     Module、TWebApplication、TWebRequest、TWebResponse、TPageProducer等大量的对  
象供使用.对于Cookie,Delphi3也提供了大量的程序供使用,如TWebResponse.Cookies,  TWebResponse.SetCookieField,TWebRequest.Cookie,TWebRequest.CookieFields,  TWebRequest.ExtractCookieFields等,应该是非常方便。但本人为了实现一功能需要设 置  
Cookie,但是发现使用Delphi提供的SetCookieFields设置不成功,经研究Delphi 3所带 的  
HttpApp.Pas和IsapiApp.Pas文件发现在中文Windows 95和NT环境下该程序有错误。     
  根据Netscape公司的规定,Cookie的格式应为:   
    Set-Cookie: Name=Value; expires=DATA; Path=PATH; 
    domain=DOMAIN_NAME; secure    
    而且根据规定,日期(DATA)的设置必须满足格式“Wdy, DD-Mon-YYYY HH:MM:SS GMT”,  
基于RFC822, RFC850, RFC1036和RFC1123等规定,但是检查HTTPAPP.PAS中的function     
TCookie.GetHeaderValue: string中为FormatDateTime('"expires="' + DateFormat +  
' "GMT; "',   Expires);,其中const DateFormat = 'ddd, dd mmm yyyy hh:mm:ss',此程序在英文环境 
中产生的格式是正确的,但是在中文中产生的结果却不对,因为星期和月份都将按照中文的表示方法: 如 将11月生产“十一月”中文串,这样在Netscape Navigator和Microsoft Internet  
Explorer就不 能辨认了。    
    既然错误在于原VCL未考虑中文环境的问题,所以修改的方法有:1、修改VCL源程序,  
编译后将dcu文件拷贝到Lib目录,这样会完全改正错误,这样是最根本的解决方法,但是 如果将源程序放在另一未修改的Delphi中(例如提供源程序给别人和自己重新安装)编译又将 出现问题。2、因为使用并不太多,所以可以将修改的程序放在自己的程序中,使用Delphi 3 提供的TWebResponse.SetCustomHeader设置,这样的好处是将程序放在自己的程序内,重新 装Delphi或在另一台计算机上编译的结果也会完全正确。因为Cookie的目的一般有两种,一 种是在此会话过程中使用,过后不使用,此时不需要Expires段,不会产生时间错误,可以使用Delphi 3提供的所有Cookie程序;另一种为永久保存,时间一般越长越好,于是可以将时间设置为2099年二月22日, 于是程序中设置Cookie的方法为:    
 Response.SetCustomHeader('Set-Cookie','Name=Value; expires=Sun, 22 Feb 2099
08:08:08 GMT'); (注斜体用自己的名称代替,例如设置Count=10,则Name用Count代替,Value 用10代替),这样就可以建立Cookie了.  

[1] [2] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 运用Delphi编写Windows NT中…

  • 用Delphi编写CGI程序返回图象

  • Email 服务器的简单实现

  • Delphi多层应用程序的实现

  • Delphi4.0 开发WEBMAIL程序

  • Delphi中串行通信的实现

  • 提高客户机/服务器应用系统性…

  • 在程序中动态取得Win95/98网…

  • 链接的视觉效果

  • 打开拨号连接

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |