您好,欢迎访问三七文档
实用ActiveX组件的介绍编写:飞鸟(沈鹏飞)来自Chinaasp.com电子邮件:flybird@chinaasp.com本文在发表。谢绝其他网站转载或以其他方式传播。什么叫活动服务器组件活动服务器组件的基本知识与介绍为什么ActiveServerPages需要组件理解ActiveServerPages需要组件的原因几种实用组件的介绍热门组件的详细介绍什么叫活动服务器组件(ActiveServerCompontents)?组件是基于Activex技术的代码片断,通过指定接口提供指定的一组服务,组件供给客户端(Clients)在运行时候请求的对象。你可以理解成组件是一种程序,通过调用这种程序,你可以实现你在ASP程序中无法实现或者很难实现的功能,组件是一种很好的代码重用方法。我们可以运用ActiveServerPages设计制作动态、交互的Web页面,但是一旦你开始着手工作,参与一些实际工作的时候,你会发现asp在某些方面功能不强,甚至不借助服务器端组件就很难实现某些功能,例如:数据库操作(我们通常使用ADO,ADO就是一个组件),邮件功能,文件系统操作,图形功能...但是幸运的是我们可以找到很多组件来提高ASP编程应用能力,在下面的内容我们将系统的介绍有关的组件,在下一章里面我们还将详细介绍如何亲自动手编写组件。9.1活动服务器组件的调用方法服务器组件和ASP内置对象应用程序(Application)、会话(Session)、请求(Request)、响应(Response)和服务器对象不同,不能直接使用,而必须首先被实例化。CreateObject函数创建一个对象并返回一个对对象的引用。这个函数的语法如下:SetobjVar=Server.CreateObject(class)Class表示创建什么样的对象Class的格式如下显示:application.className其中application是应用程序的名字,className是这种对象的名字。一个application可以由一个或者多个对象组成。他们可以在内部之间相互调用的。例如SetmyConnection=Server.Createobject(AdoDB.Recordset)注意:不能这样创建的Asp内建对象的实例,如下面的例子将导致一个错误%SetResponse=Server.CreateObject(Response)%你可以就通过在你的ASP脚本中使用活动服务器端组件,创建动态,交互的Web页面。9.2IIS4活动服务器组件WindowsNT4.0OptionPack安装之后系统已经包含了很多可以选用的活动服务器组件。这些组件你可以在VisualInterDev6.0的ToolBox工具箱上找到。下面这个表列出了这些组件的名称和功能。不过请注意:虽然这些内容列在工具箱上面,但是不等于这些组件已经安装在你的服务器上了。因为有一些组件是可选择安装的。比如IndexServerQuery.活动服务器组件名称描述ADOCommand,ADOConnection,ADORecordset使用usingActiveX™DataObjects(ADO),提供数据库访问能力AdRotator在网页可以放置一个条状广告BrowserCapabilities确定访问这个网站的浏览器性能、类型及版本ContentLinking创建一个内容列表并在网页之间连接Directionary存贮一个名字/数值对应集合MyInfo维护个人信息例如网站管理员的名字、地址等等CDONTSNewMailCollaborationDataObjectsforNTS(CDONTS),提供邮件功能(需要安装和配置SMTPserver)FileSystemObject提供访问文件系统的方法(但是文件操作不提供读写两进制文件的功能,而只支持文本文件的读写)IndexServerQueryIndexServerUtllity可以让你访问索引服务器(IndexServer)MSMQQueryMSMQQueueInfoMSMQMessageMSMQMailEmail提供访问MSMQ(MicrosoftMessageQueue)功能的方法表9.2-1IIS4活动服务器组件列表以上组件WindowsNT4.0OptionPack的产品文档中均有详细解释。如果你安装了VisualInterDev6.0和MSDNLibraryVisualStudio6.0,那么更可以方便的查询到有关资料在这里我们就不再详细的介绍这方面的内容了。在后面的内容里面,我们将介绍更丰富的组件。9.3实用组件介绍这里我们将对许多实用的组件做一个介绍,帮助大家解决实际开发中所使用的问题。通常我们使用asp开发系统都需要实现这样的功能:1.Email发送Internet上用asp开发应用,一般都是面向用户的,比如需要注册用户,这样就可能需要把用户密码发送到用户的email信箱里面去。另外建立邮件列表,文章转发,密码提醒等等功能都要asp实现email发送。2.动态图形生成我想可能最熟悉的动态web图形应用应该是计数器了,如果是用几个图形拼成计数器图形,我想可能就不太专业,可以用图形组件拼成一个完整图形。另外可以使用图形组件生成某些统计图形。例如:饼图,条形图。我想我们通常所见的程序如:网上调查就常以饼图来直观的显示结果。我们还可以使用曲线图形或柱状图形来分析某些数据(比如网站流量分析)3.文件上传文件上传也是一个急需的组件。使用文件上传可以实现客户端和服务器端的文件/数据交换。通常的用途是上传图片或word、excel文件,然后就可以入库,以便系统使用。笔者开发过一个新闻系统就使用了文件上传系统上传新闻图片,从而实现了web在线新闻编辑。9.3.1Email组件9.3.1.1W3Jmail组件在一次浏览微软新闻组的时候,看到有人在表扬Jmail。于是我就去下载了一个尝试,发现这个组件做得确实十分好。于是就拿来实现了BBS程序的贴子转发功能。在这里将介绍这个组件的使用方法。W3Jmail组件介绍W3Jmail是一个smtp组件,利用它可以发送邮件,支持html格式邮件。你可以访问主页:下载这个组件。w3Jmail发送邮件速度快,功能丰富,并且是免费的。JMail使用环境Webserver(IIS4/PWS4)MicrosoftWindowsNT/Windows98/MicrosoftWindows95+Winsock2.0(Winsock2.0可以去微软站点下载:)3.60版本的JMail的特性Attachments附件ReturnReceipt发信回执Detailedloggingcapabilities详细日志能力Prioritysettings优先级设定MIMEwithBASE64,UUEncodeandQuoted-PrintableEncoding邮件编码设置QueuedmailingswithoutseparateNTservice.邮件队列发送,无需单独的NT服务Unlimitedredundantservers没有限制的多余server(SMTP服务器)BlindCarbonCopy(BCC)密送CarbonCopy(CC)抄送Urgentflagging紧急标志USASCII和ISO-8859-1编码UUEncodingUUEncode编码X-Headersandcustomheaders自定义邮件头MSMailandExchangepriorityheaders.微软Mail和Exchange优先权头InternalMXlookupwithMXpriorityandredundancy,带MX优先权和冗余的InternetMX查找JMail支持的日志功能是非常有用的。特别是当你在发送邮件的时候遇到困难的时候,就可以察看日志内容分析原因。JMail已经检查了下列2000年问题测试2000-01-01Bug-OK2000-02-29Bug-OK2000-04-01Bug-OK(FoundinMSVCRT)JMAIL使用16位精度表示年,所以日期范围限制在-32767~32768Jmail组件参考说明组件使用方法:setoVar=Server.CreateOject(“jmail.smtpmail”)下表列出了Jmail的属性编号属性名类型版本用途使用举例1BodyStringv3.0信件体,正文,使用AppendText追加内容JMail.Body=Helloworld2CharsetStringv3.0字符集,缺省为US-ASCII简体中文是gb2312Jmail.Charset=US-ASCII3ContentTransferEncodingStringv3.0指定内容传送时的编码方式,缺省是Quoted-Printable(例如ChinaASP=C2=DB=CC=B3代表ChinaASP论坛,等于号后面的是gb码的16进制代码)Jmail.ContentTransferEncoding=base644ContentTypeStringv3.0信件的contentype.缺省是text/plain,但是可以设置为其他你想要的类型。如果你以HTML格式发送邮件,改为text/html即可。JMail.ContentType=text/html5DeferredDeliveryDatev3.0设置延期发送.如果邮件服务器支持的话,消息到了这个时间才会发送(Javascript)Jmail.DeferredDelivery=newDate(2000,02,17).getVarDate();6EncodingStringv3.0这个属性可以用来改变附件编码方式(缺省是base64).可以选择使用的是base64,uuencodeorquoted-printableJMail.Encoding=base647ErrorCodeIntegerv3.0如果JMail.silent设置为true,ErrorCode包含的是错误代码Response.Write(JMail.ErrorCode);8ErrorMessageStringv3.0如果JMail.silent设置为true,包含的是错误信息Response.Write(JMail.ErrorMessage);9ErrorSourceStringv3.0如果JMail.silent设置为true,包含的是错误的来源Response.Write(JMail.ErrorSource);10ISOEncodeHeadersStringv3.0是否将信头编码成iso-8859-1字符集.缺省是trueJMail.ISOEncodeHeaders=false11LazysendBooleanv3.0这个属性指定Jmail是否一直等到mail发送了然后返回,或者缓冲这条消息然后在后台发送。然而设置了这个属性,你就不能控制错误信息。注意:如果选择了这个选项,属性ServerAddress将无效,lazysend将通过dsn查询决定邮件服务器,在一些设置里面,这可能有问题。JMail.LazySend=true;12LogStringv3.0Jmail创建的日志,如果loging属性设置为trueResponse.Write(JMail.Log);13LoggingStringv3.0是否使用日志JMail.Logging=true14MailDomainStringv3.0改写发送到邮件服务器的EHLO/HELO命令JMail.Maildomain=hello.world.com15MimeVersionStringv3.0指定mime版本。缺省是JMail.MimeVersi
本文标题:实用ASP组件介绍
链接地址:https://www.777doc.com/doc-4275650 .html