互联网

asp

微软开发的服务器端脚本环境

  • 中文名:动态服务器页面
  • 外文名:Active Server Pages
  • 网站类型:Web应用框架
  • 开发公司:微软公司
  • 操作系统:windows
  • asp介绍
    ASP即Active Server Pages,是MicroSoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用。ASP简单、易于维护,是小型页面应用程序的选择,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情况下, ASP甚至可以实现中等规模的企业应用程序。

    简介

    asp英文名:Active Server Pages。

    ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。

    特点优势

    与HTML相比,ASP网页具有以下特点:

    ⑴利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术

    ⑵ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;

    ⑶服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;

    ⑷ASP[1]提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;

    ⑸ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等;

    ⑹由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取;

    ⑺ 方便连接ACCESS与SQL数据库;

    ⑻开发需要有丰富的经验,否则会留出漏洞,让骇客(cracker)利用进行注入攻击。

    ASP也不仅仅局限于与HTML结合制作WEB网站,而且还可以与XHTML和WML语言结合制作WAP手机网站。但是其原理也是一样的。

    工作原理

    当在Web站点中融入ASP功能后,将发生以下事情:

    1、用户向浏览器地址栏输入网址,默认页面的扩展名是.asp。

    2、浏览器向服务器发出请求。

    3、服务器引擎开始运行ASP程序。

    4、ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。

    5、页面信息发送到浏览器。

    发展简史

    从1996年ASP诞生到现在已经过去了18年。在这短短的15年中,ASP发生了重大的变化,直到现在的ASP。

    asp的第一版是0.9测试版,自从1996年ASP1.0诞生,它给Web开发界带来了福音。早期的Web程序开发是十分繁琐的,以至于要制作一个简单的动态页面需要编写大量的C代码才能完成,这对于普通的程序员来说有点太难了。而ASP却允许使用VBScript这种的简单脚本语言,编写嵌入在HTML网页中的代码。在进行程序设计的时候可以使用它的内部组件来实现一些高级功能(例如Cookie)。它的最大的贡献在于它的ADO(ActiveX Data Object),这个组件使得程序对数据库的操作十分简单,所以进行动态网页设计也变成一件轻松的事情。因此一夜之间,Web程序设计不再是想像中的艰巨任务,仿佛很多人都可以一显身手。

    到了1998年,微软发布了ASP 2.0。它是Windows NT4 Option Pack的一部分,作为ⅡS 4.0的外接式附件。它与ASP 1.0的主要区别在于它的外部组件是可以初始化的,这样,在ASP程序内部的所有组件都有了独立的内存空间,并可以进行事务处理。

    到了2000年,随着Windows 2000的成功发布,这个操作系统的ⅡS 5.0所附带的ASP 3.0也开始流行。与ASP 2.0相比,ASP 3.0的优势在于它使用了COM+,因而其效率会比它前面的版本要好,并且更稳定。

    2001年,ASP·NET出现了。在刚开始开发的时候,它的名字是ASP+,但是,为了与微软的·NET计划相匹配,并且要表明这个ASP版本并不是对ASP 3.0的补充,微软将其命名为ASP·NET。ASP·NET在结构上与前面的版本大相径庭,它几乎完全是基于组件和模块化的,Web应用程序的开发人员使用这个开发环境可以实现更加模块化的、功能更强大的应用程序。

    运行特点

    ASP NET可以运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP NET的Web应用中。ASP NET同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#,VB.NET,Jscript,managedC++,J#。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP NET。

    开发语言

    ASP NET常用的主要有两种开发语言,VB NET和C#,C#相对更为常用,因为是.NET独有的语言,VB NET则为以前VB程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C#。

    核心内涵

    ASP(Application Service Provider,应用软体租赁服务提供者),即是指透过网络以租赁方式提供应用软体服务的从业者,即是指业者以应用软体为主体,透过网络一对多地传递服务,这种以服务为主的交易模式促使企业可藉由租赁的方式,以更符合成本效益的方式拥有软体的使用权,并且亦能因为业者集中式的管理而大幅降低企业维护的成本。

    基本上,ASP即具有“软体服务化、服务网络化”,“资讯委外服务与网络结合”与“产品通路化、通路产品化”等三大特性,其甚至可以被视为是ISP(InternetService Provider)与ITS(Information Technology Service)的结合.

    根据流行的观点,ASP有如下五个核心内涵:

    a. ASP着重应用为中心,提供对于应用方面的访问和管理。

    b. ASP服务可以为用户提供没有在服务器、人员、系统和系统授权等前期资源投入情况下就可以在“定制”的全新应用系统环境进行访问的服务,如ISP,而这样的服务一般按月份ASP收取服务费。

    c. ASP采用集中管理的方式---ASP一般都有一个管理中心,所有的客户通过INTERNET来进行远程访问,获得技术支持和咨询服务。

    d. 一对多的服务,也就是讲,ASP提供的是标准化的产品包,产品都是最低程度的自定义或者没有实现客户定制化,对于行业用户来讲已经达到实用方便的标准。

    e. 按照合同交付,在ASP客户的眼中,ASP是一家根据客户协议内容提供相关服务,保证应用服务系统服务可以得到确实履行的机构。

    生存

    从大的方面来讲,困扰国内企业生存、发展的核心问题是管理问题。随着互联网络的普及和应用的深入,企业用户可以随时随地直接租用ASP的服务器和软件系统来进行自己的业务管理,这样做的好处在于;第一,企业可以节省大笔用于IT建设方面的资金,大幅度降低企业管理信息化的成本。第二,ASP的用户可以采用各种方式获得应用和服务,软件类服务产品完全可以通过网络在非常短的时间内组成一个完善的、高效的、先进的企业管理系统,迅速获得企业一体化的运营管理方案。

    网络经济发展突飞猛进,电子商务一日千里,网络和网站从门户到内容、从注意力到垂直性,目前逐渐转向热衷ASP也是一个主要的原因。

    笔者资料中,国内最早对ASP触电的是网友“飞鸟”,在1998年6月自发组织了研究、交流和探讨ASP技术的“飞鸟之家”,现在已经发展成为chinaasp com,成为国内最早的ASP应用技术服务提供商网站。上海的互易网络有限公司结合国内实际情况,推出了为国内企业服务的ASP平台互易网,向企业提供以电子商务为核心的,企业内、外部网络设施和应用的远程构架和托管服务,创造虚拟企业门户(EP)直接将ASP应用到商业增殖环节中去。

    此外,ISP也全面转向ASP的怀抱,成为ASP进一步发展的产物。软件商对于ASP更是情有独钟。业界最新的消息是,中国第三电信“网通”已经制定ASP发展战略,国内最大的管理咨询公司“汉普”将把旗下八个子公司定位在企业内部资源计划管理(ERP)领域的ASP中,北京“联成互动”瞄准客户关系管理(CRM)领域的ASP,北京“数码方舟”定位在网络办公的ASP,HP正在和中国建设银行讨论共建金融领域的ASP。

    ASP正在IT经济大潮中显山露水,其发展前景不可估量。

    问题

    以网络服务商、软件厂商和ISP为主力的各种IT角色,正在根据自己的优势条件出发对ASP领域进行多种方面的尝试。就目前阶段来讲,ASP提供的服务不计其数五花八门,没有标准化和量化的概念,硬件厂商向ASP的“土壤”和势力方向靠拢,软件厂商和ISP则直接参与到ASP业务的第一线。

    笔者估计,经过一段时间的试探和发展,ASP将向服务集成方面发展,产品和服务初步的标准化将很快建立起来,接着进入到市场细化和标准制定、ASP产品成熟时期,ASP的稳步增长,最终将成为IT行业商务模式的核心!

    目前在ASP发展的道路上,主要面临的问题是观念的转变方面:用租赁代替购买,服务集成代替产品经销商、服务经济代替产品经济等等。具体到实际方面来讲,安全和服务的质量是ASP和客户共同关心的头等大事,要实现ASP提出的“租赁高科技”的口号,ASP任重而道远!

    安装与配置

    安装ⅡS

    若操作系统中还未安装ⅡS服务器,可打开“控制面板”,然后单击启动“添加/删除程序”,在弹出的对话框中选择“添加/删除Windows组件”,在Windows组件向导对话框中选中“Internet信息服务(ⅡS)”,然后单击“下一步”,按向导指示,完成对ⅡS的安装

    启动ⅡS

    Internet信息服务简称为ⅡS,单击Windows开始菜单---所有程序---管理工具---Internet信息服务(ⅡS)管理器,即可启动“Internet信息服务”管理工具。

    配置ⅡS

    ⅡS安装后,系统自动创建了一个默认的Web站点,该站点的主目录默认为C:\Inetpub\wwwroot。

    用鼠标右键单击“默认Web站点”,在弹出的快捷菜单中选择“属性”,此时就可以打开站点属性设置对话框,在该对话框中,可完成对站点的全部配置。

    父路径

    单击“主目录”标签,切换到主目录设置页面,该页面可实现对主目录的更改或设置。注意检查启用父路径选项是否勾选,如未勾选将对以后的程序运行有部分影响。主目录—配置---选项。

    主页文档

    单击“文档”标签,可切换到对主页文档的设置页面,主页文档是在浏览器中键入网站域名,而未制定所要访问的网页文件时,系统默认访问的页面文件。常见的主页文件名有index.htm、index.html、index.asp、index.php、index.jsp、default.htm、default.html、default.asp等ⅡS默认的主页文档只有default.htm和default.asp,根据需要,利用“添加”和“删除”按钮,可为站点设置所能解析的主页文档。

    ⅡS服务

    在Internet信息服务的工具栏中提供有启动与停止服务的功能。单击 可启动ⅡS服务器;单击 则停止ⅡS服务器。

    技术比较

    在ASP NET流行之前,最常用的三种动态网页语言有VBscript,JSP(JavaServer Pages),PHP (Hypertext Preprocessor)。

    简 介

    ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP采用脚本语言VBScript(Java script)作为自己的开发语言。

    PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法,并融合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库,PHP、MySQL数据库和Apache Web服务器是一个比较好的组合。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点。自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。

    JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和JavaApplet之外,又有新的硕果,就是JSP,Java ServerPage。JSP可以在Servlet和JavaBean的支持下,完成功能强大的站点程序。

    比较

    三者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。[2]

    内置函数

    ASP常用内置函数在ASP中,把带有返回值的这样的一段代码叫做函数。例如通过编写一段代码计算出一个自然数是否是质数,返回给调用程序,由于调用程序需要知道那个自然数是否是质数,所以必须要返回一个值。

    1,日期/时间函数

    这些函数包括对“年”、“月”、“日”、“时”、“分”、“秒”、“星期”等的显示。

    ⑴Now函数:根据计算机系统设定的日期和时间,返回当前的日期和时间值。使用方法now();

    ⑵Date函数:只返回当前计算机系统设定的日期值。使用方法:date();

    ⑶Time函数:只返回当前计算机系统设定的时间值。使用方法:time();

    ⑷Year函数:返回一个代表某年的整数。使用方法:year(date),其中date参数是任意的可以代表日期的参数,比如“year(date())”就表示是从“date()”得出的日期中提取其中“年”的整数。

    另外,还可以这样应用:“year(#520,2006#)”表示提取“2006年5月20日”中“年”的整数值。关于“520,2006”,也可使用“5-20-2006”、“5/20/2006”等形式表现,即“某月某日”和“某年”的组合。同时注意使用“#”进行包括以表示日期值。

    Month函数:返回1到12之间的整数值,表示一年中某月。使用方法:month(date)。关于参数date的说明和year函数相同。但要注意日期的正确性,比如“#13-31-2006#”,根本就没有“13”月,肯定是错误的了。

    ⑹Day函数:返回1到31之间的整数值,表示一个月中的某天。使用方法:day(date)。关于参数date的说明和year函数相同。同样要注意日期的正确性,比如“#2-30-2006#”其中对“2”月定义的“30”日这天就是错误的。

    ⑺Hour函数:返回0到23之间的整数值,表示一天中的某个小时。使用方法:hour(time)。其中参数time是任意的可代表时间的表达式。比如“hour(time())”就表示是从“time()”得出的时间中提取其中“小时”的整数。同样,参数time还可以这样应用“hour(#11:45:50#)”表示从“11”时“45”分“50”秒中提取当前小时数。当然,定义的时间要符合时间的规范。

    ⑻Minute函数:返回0到59之间的整数值,表示一小时中的某分钟。使用方法:minute(time)。time参数的说明和hour函数相同。

    ⑼Second函数:返回0到59之间的整数值,表示一分钟中的某秒。使用方法:second(time)。time参数的说明和hour函数相同。

    ⑽Weekday函数:返回一个星期中某天的整数。使用方法:weekday(date)。关于参数date的说明和year函数相同。该函数返回值为“1”到“7”,分别代表“星期日”、“星期一”……“星期六”。比如当返回值是“4”时就表示“星期三”。

    ⑾WeekDayName函数:返回一个星期中具体某天的字符串。相对weekday函数而言即翻译出“星期几”,使用方法:weekdayname(weekday)。参数weekday即星期中具体某天的数值。比如“weekdayname(weekday(date()))”就表示当前是“星期几”。因为“date()”表示的是当前的时间,而“weekday(date())”就表示的是一星期中具体某天的整数。

    当然weekdayname函数最终显示的字符串内容还与当前操作系统语系有关,比如中文操作系统将显示“星期一”这类的中文字符,而英文操作系统则显示为“Mon”(Monday简写)。

    此外,在VBScript中还有一些关于时间间隔的计算函数:

    ⑴DateAdd函数:返回指定时间间隔的日期、时间。可以计算出相隔多少年、或相隔几个月、又或相隔几个小时等的新日期、时间。使用方法:dateadd(interval,number,date)。

    其中参数interval表示需要添加的时间间隔单位。其是以字符串的形式表达的,比如“yyyy”表示年,“q”表示季度,“m”表示月份,“d”表示天数,“ww”表示周数,“h”表示小时数,“n”表示分钟数,“s”表示秒数。

    而参数number则表示添加的时间间隔数。其是以数值的形式表达的,可以为负值。参数date则要求是日期、时间的正确格式。

    比如dateadd("d",100,"2006-5-20")就表示2006年5月20号以后的100天的日期值:2006-8-28。再比如dateadd("h",-12,"2005-5-2010:00:00")就表示2005年5月20号上午10点前的12小时的日期时间:2005-5-19 22:00:00。

    ⑵DateDiff函数:返回两个日期时间之间的间隔。可计算出两个日期相隔的年代、小时数等。使用方法:datediff(interval,date1,date2)。

    参数interval和dateadd函数中的interval参数内容描述相同,date1和date2参数分别就是相互比较的两个日期时间。另外,当date1的日期时间值大于date2时,将显示为负值。

    比如DateDiff("yyyy","1982-7-18",date)表示某人的出生到现在已经多少年了。又比如DateDiff("d","1982-7-18","2062-7-18")则计算了80年过了多少天:29220。

    2,字符串处理函数

    在脚本的功能处理中,通常需要对一些字符串进行一些修饰性处理。比如过滤掉字符串中的敏感字眼以符合最终显示的要求;又比如一段较长的字符串,需要提取开头的几个字符时。

    ⑴Asc函数:返回字符串中第一个字母对应的ANSI字符代码。使用方法:asc(string)。其中string参数表示字符串。

    ⑵Chr函数:返回指定了ANSI 字符代码对应的字符。使用方法:chr(chrcode)。参数chrcode是相关的标识数字。该函数的功能和asc函数形成对应。

    比如:asc(“a”)表示小写字母“a”的ANSI字符“97”;同样chr(97)表示的就是“小写字母a”。另外chr(chrcode)中参数chrcode值为0到31的数字时,表示不可打印的ASCⅡ码。比如“chr⑽”表示换行符,“chr⒀”表示回车符等,这常用于输入和显示格式的转换中。

    ⑶Len函数:返回字符串内字符的数目(字节数)。使用方法:len(string)。比如len(“love”)的值就是4。

    ⑷LCase函数:返回所有字符串的小写形式。使用方法:lcase(string)。比如lcase(“CNBruce”)返回为“cnbruce”。

    ⑸UCase函数:返回所有字符串的大写形式。与lcase函数形成对应。同样,ucase(“CNBruce”)返回为“CNBRUCE”。

    ⑹Trim函数、LTrim函数和RTrim函数:分别返回前导和后续不带空格、前导不带空格或后续不带空格的字符串内容。比如:

    trim(“ cnbruce ”)返回为“cnbruce”,前导和后续都不带空格;

    ltrim(“ cnbruce ”)返回为“cnbruce ”,前导不带空格;

    rtrim(“ cnbruce ”)返回为“ cnbruce”,后续不带空格;

    该函数常用于注册信息中,比如确保注册用户名前或后的空格。

    ⑺Left函数:返回从字符串的左边算起的指定数目的字符。使用方法:left(string,length)。比如left(“brousce”,5)返回为“brous”,即前五位字符。

    ⑻Right函数:返回从字符串的右边算起的指定数目的字符。使用方法:right(string,length)。比如right(“brousce”,4)返回为“usce”,即后四位字符。

    instr函数:返回某字符串在另一字符串中第一次出现的位置。比如现在查找字母“A”在字符串“A110B121C119D1861”中第一次出现的位置,则可以 instr("A110B121C119D1861","A")

    ⑽Mid函数:从字符串中返回指定数目的字符。比如现在的“110”则应该是从字符串“A110B121C119D1861”的第2位取得3个单位的值:mid("A110B121C119D1861",2,3)

    Replace函数:在字符串中查找、替代指定的字符串。replace(strtobesearched,strsearchfor,strreplacewith)其中strtobesearched是字符串,strsearchfor是被查找的子字符串,strreplacewith是用来替代的子字符串。比如replace(rscon,"<","<") 则表示将rscon中所有“<;;”的字符替换为“<;;”

    3,类型转换函数

    Cbool(string) 转换为布尔值

    Cbyte(string) 转换为字节类型的值

    Ccur(string) 转换为货币类值

    Cdate(string) 转换为日前类型的值

    Cdbl(string) 转换为双精度

    Cint(string) 转换为整数值

    Clng(string) 转换为长整型的值

    Csng(string) 转换为单精度的值

    Cstr(var) 转换为字符串值

    Str(var) 数值转换为字符串

    Val(string) 字符串转换为数值

    4,运算函数

    Abs(nmb) 返回数字的绝对值

    Atn(nmb) 返回一个数的反正切

    Cos(nmb) 返回一个角度的余炫值

    Exp(nmb) 返回自然指数的次方值

    Int(nmb) 返回数字的整形(进位)部份

    Fix(nmb) 返回数字的整形(舍去)部份

    Formatpercent(表达式)返回百分比

    Hex(nmb) 返回数据的16进制数

    Log(nmb) 返回自然对数

    Oct(nmb) 返回数字的8进制数

    Rnd 返回大于“0”而小于“1”的随机数,但此前需 randomize 声明产生随机种子

    Sgn(nmb) 判断一个数字的正负号

    Sin(nmb) 返回角度的正

    Sqr(nmb) 返回数字的二次方根

    Tan(nmb) 返回一个数的正切值

    5,其他函数

    IsArray(var) 判断一个变量是否是数组

    IsDate(var) 判断一个变量是否是日期

    IsNull(var) 判断一个变量是否为空

    IsNumeric(var) 判断表达式是否包含数值

    IsObject(var) 判断一个变量是否是对象

    TypeName(var) 返回变量的数据类型

    Array(list) 返回数组

    Split(liststr) 从一个列表字符串中返回一个一维数组

    LBound(array) 返回数组的最小索引

    Ubound(array) 返回数组的最大索引

    CreateObject(class) 创建一个对象

    GetObject(pathfilename) 得到文件对象

    函数介绍

    函数array

    功能:创建一个数组变量

    格式:array(list)

    参数:list 为数组变量中的每个数值列,中间用逗号间隔

    例子:

    <% i = array ("1","2","3") %>;;

    结果: i 被赋予为数组

    2.函数Cint()

    \\功能:将一表达式/其它类型的变量转换成整数类型(int)

    格式:Cint(expression)

    参数:expression 是任何有效的表达式/其它类型的变量

    例子:

    <%

    f = "234"

    response.write cINT(f) + 2

    %>;;

    结果: 236

    函数Cint()将字符"234"转换 成整数234.如果表达式为空,或者无效时,返回值为0;

    3.函数Creatobject()

    功能:创建及返回一个ActiveX对象.

    格式:Creatobject(obname)

    参数bname 是对象的名称

    例子:

    <%

    Set con = Server.CreateObject("ADODB.Connection")

    %>;;

    结果:

    4.函数Cstr()

    功能:将一表达式/其它类型的变量转换成字符类型(string)

    格式:Cstr(expression)

    参数:expression是任何有效的表达式/其它类型的变量

    例子:

    <%

    s = 3 + 2

    response.write "The result is: " &;; cStr(s)

    %>;;

    结果:函数Cstr()将整数 5 转换 成字符"5".

    5.函数Date()

    功能:返回当前系统(server端)的日期

    格式: Date()

    参数:无

    例子<% date () %>;;

    结果:05/10/00

    5.1 Instr()

    函数返回字符或字符串在另一个字符串中第一次出现的位置.

    表达式 Instr([start,] strToBeSearched,strSearchFor [,compare])

    允许数据类型:Start为搜索的起始值,strToBeSearched接受搜索的字符串 strSearchFor要搜索的字符.compare比较方式(详细见ASP常数)

    实例:<%

    strText = "This is a test!!"

    pos = Instr(strText,"a")

    response.write pos

    %>

    返回结果:9

    6.函数Dateadd()

    功能:计算某个指定的时间和

    格式: dateadd(timeinterval,number,date)

    参数:timeinterval是时间单位(月,日..); number是时间间隔值,date是时间始点.

    例子:

    <%

    currentDate = #8/4/99#

    newDate = DateAdd("m",3,currentDate)

    response.write newDate

    %>;; <%

    currentDate = #12:34:45 PM#

    newDate = DateAdd("h",3,currentDate)

    response.write newDate

    %>;;

    结果:

    11/4/99

    3:34:45 PM

    其中

    "m" = "month";

    "d" = "day";

    如果是currentDate 格式,则,

    "h" = "hour";

    "s" = "second";

    7.函数Datediff()

    功能:计算某量个指定的时间差

    格式: datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])

    参数: timeinterval 是时间单位; date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear 是任意选项.

    例子:

    <%

    fromDate = #8/4/99#

    toDate = #1/1/2000#

    response.write "There are " &;; _

    DateDiff("d",fromDate,toDate) &;; _

    " days to millennium from 8/4/99."

    %>;;

    结果:There are 150 days to millennium from 8/4/99.

    8.函数day()

    功能:返回一个整数值,对应于某月的某日

    格式: day(date)

    参数: date是一个有效的日期表达式;

    例子<% =day(#8/4/99#) %>;;

    结果:4

    函数

    功能:格式化日期表达式/变量

    格式: formatdatetime(date[,nameformat])

    参数: date为有效的日期表达式/变量;nameformat是指定的日期格式常量名称.

    例子<% =formatdatetime("08/04/99",vblongdate) %>;;

    结果:Wednesday,August 04,1999

    说明:

    描述

    返回表达式,此表达式已被格式化为日期或时间。

    语法

    FormatDateTime(Date[, NamedFormat])

    FormatDateTime 函数的语法有以下参数:

    参数 描述

    Date 必选项。要被格式化的日期表达式。

    NamedFormat 可选项。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。

    设置

    NamedFormat 参数可以有以下值:

    常数 值 描述

    vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。

    vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。

    vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。

    vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。

    vbShortTime 4 使用 24 小时格式(hh:mm)显示时间。

    说明

    下面例子利用 FormatDateTime 函数把表达式格式化为长日期型并且把它赋给 MyDateTime:

    Function GetCurrentDate

    "FormatDateTime 把日期型格式化为长日期型。

    GetCurrentDate = FormatDateTime(Date, 1)

    End Function

    函数布尔值

    功能:返回一个布尔值,判断变量是否为数字变量,或者是可以转换成数字的其它变量.

    格式:isnumeric(expression)

    参数:expression 是任意的变量.

    例子:

    <%

    i="234"

    response.write isnumeric(i)

    %>;;

    结果: true.

    函数1

    功能:返回一个布尔值,判断变量是否为对象的变量,

    格式: isobject(expression)

    参数: expression 是任意的变量.

    例子:

    <%

    set con =server.creatobject("adodb.connection")

    response.write isobject(con)

    %>;;

    结果: true

    函数2

    功能:返回一个数组的下界.

    格式:Lbound(arrayname[,dimension])

    参数:arrayname 是数组变量,dimension 是任意项

    例子:

    <%

    i = array("1","2","3")

    response.write lbound(i)

    %>;;

    结果:0

    函数3

    功能:将一字符类型变量的字符全部变换小写字符.

    格式:Lcase(string)

    参数:string是字符串变量

    例子:

    <%

    str="THIS is Lcase!"

    response.write Lcase(str)

    %>;;

    结果:this is lcase!

    函数4

    功能:截取一个字符串的前部分;

    格式:left(string,length)

    参数:string字符串,length截取的长度.

    例子: <% =left("this is a test!",6) %>;;

    结果:this i

    16.函数len()

    功能:返回字符串长度或者变量的字节长度

    格式:len(string *varname)

    参数:string字符串;varname任意的变量名称

    例子:

    <%

    strtest="this is a test!"

    response.write left(strtest)

    %>;;

    结果:15

    函数5

    功能:去掉字符串前的空格.

    格式:ltrim(string)

    参数:string字符串.

    例子: <% =ltrim (" this is a test!")

    结果:this is a test!

    函数6

    功能:从字符串中截取字符串.

    格式:mid(string,start [,length])

    参数:string字符串,start截取的起点,length要截取的长度.

    例子:

    <%

    strtest="this is a test, Today is Monday!"

    response.write mid(strtest,17,5)

    %>;;

    结果:Today

    19.函数minute()

    功能:返回一数值,表示分钟

    格式:minute(time)

    参数: time是时间变量

    例子lt;% =minute(#12:23:34#) %>;;

    结果:23

    20.函数month()

    功能:返回一数值,表示月份

    格式:month(time)

    参数:time是日期变量

    例子<% =month(#08/09/99) %>;;

    结果:9

    21.函数monthname()

    功能:返回月份的字符串(名称).

    格式:Monthname(date [,abb])

    参数: date是日期变量,abb=true时 则月份的缩写,

    例子:

    <% =monthname(#4/5/99#) %>;;

    结果:April

    22.函数Now()

    功能:返回系统的当前时间和日期.

    格式:now()

    参数:无

    例子:

    <% =now() %>;;

    结果: 05/10/00 8:45:32 pm

    23.函数:replace()

    功能:在字符串中查找,替代指定的字符串.

    格式:replace(strtobesearched,strsearchfor,strreplacewith [,start[,count[,compare]]])

    参数:strtobesearched是字符串; strsearchfor是被查找的子字符串;strreplacewith 是用来替代的子字符串.start,count,compare 是任意选项.

    例子:

    <%

    strtest="this is an apple."

    response.write replace(strtest,"apple","orange")

    %>;;

    结果:this is an orange.

    24.函数right()

    功能:截取一个字符串的后部分

    格式:right(string,length)

    参数:string字符串,length截取的长度.

    例子:

    <%

    strtest="this is a test!"

    response.write right(strtest,3)

    %>;;

    结果:st!

    25.函数rnd()

    功能:返回一个随机数值

    格式:rnd[(number)]

    参数:number是任意数值.

    例子:

    <%

    randomize()

    response.write rnd()

    %>;;

    结果:0/1数值之一,无randomize(),则不能产生随机数.

    26.函数round()

    功能:完整数值

    格式:round(expression[,numright])

    参数:expression数字表达式;numright任意选项.

    例子:

    <%

    i=12.33654

    response.write round(i)

    %>;;

    结果: 1227.函数rtrim()功能:去掉字符串后的空格. 格式:rtrim(string)参数:string 是字符串 例子: <% response.write rtrim("this is a test! ") %>;;结果:this is a test!

    28.函数second()

    功能:返回一个整数值.

    格式:second(time)

    参数:time是一个有效的时间表达式;

    例子lt;% =second(# 12:28:30#) %>;;

    结果:30

    29.函数strReverse()

    功能:返回与原字符串排列逆向的字符串.

    格式:strreverse(string)

    参数:string是字符串

    例子<% =strreverse("this is a test!")

    结果:!tset a si siht

    30.函数time()

    功能:返回当前系统的时间值.

    格式:time()

    参数:无

    结果:9:58:28 Am

    31.函数trim()

    功能:删去字符串前,后的空格.

    格式:trim(string)

    参数:string 字符串.

    例子:

    <%

    strtest="this is a test! "

    response.write trim(strtest)

    %>;;

    结果:this is a test!

    32.函数UBound()

    功能:返回一个数组的上界.

    格式:Ubound(expression [,dimension])

    参数:expression 是数组表达式/数组变量,dimension 是任意项

    例子:

    <%

    i = array("1","2","3")

    response.write ubound(i)

    %>;;

    结果: 2

    33.函数:UCase()

    功能:将一字符类型变量的字符全部变换成大写字符.

    格式:Ucase(string)

    参数:string是字符串变量

    例子:

    <%

    str="THIS is Lcase!"

    response.write Lcase(str)

    %>;;

    结果:THIS IS LCASE!

    34.函数Vartype()

    功能:返回变量的常量代码(整数)

    格式:Vartype(varname)

    参数:varname是任何类型的变量名称.

    例子:

    <%

    i=5

    response.write vartype(i)

    %>;;

    结果:2 (2表示整数,须要参考ASP常量代码.)

    35.函数Weekday()

    功能:返回一个整数,对应一周中的第几天.

    格式:Weekday(date [,firstofweek])

    参数: date为日期变量,firstofweek为任选项.

    例子:

    <%

    d= # 5/9/00 #

    response.write weekday(d) %>;;

    结果:3(3 表示是星期二)

    36.函数weekdayname()

    功能:返回字符串,对应星期几.

    格式:weekdayname(weekday[,abb[,firstdayofweek]])

    参数:weekday为日期变量,abb,firstdayofweek为任选项.

    例子:

    <%

    d = #8/4/99#

    response.write weekdayname(d)

    %>;;

    结果: Wednesday

    37.函数year()

    功能:返回日期表达式所在的年份.

    格式:year(date)

    参数: date是有效的日期表达式

    例子:

    <% =year(#8/9/99#) %>;;

    结果:1999

    38.函数Mod()

    功能:取余数.

    例子:3 Mod 2

    结果:1

    提升速度方法

    技巧

    访问一个ASP集合来提取一个值是费时的、占用计算资源的过程。因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多。因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量。例如将代码写成下面的形式以加快脚本引擎处理速度:

    strTitle=Request.Form("Title")

    strFirstName=Request.Form("FirstName")

    strLastName=Request.Form("LastName")

    If Len(strTitle) Then strTitle=strTitle & " "

    If strFirstName="" Then strFullName=strTitle & " " & strLastName

    Elseif Len(strFirstName)=1 Then

    strFullName=strTitle & strFirstName & ". " & strLastName

    Else

    strFullName=strTitle & strFirstName & " " & strLastName

    End If

    技巧之二

    如果不是别无选择,否则不要使用strPage=Request("page")的这样的形式来获取参数,因为这将按顺序搜索全部的集合—QueryString、Form、Cookies、ClientCertificate、ServerVariable直到发现第一个匹配值的名称。这样做比直接访问适当的集合效率低,并且是不安全的,除非能绝对保证这个值不会出现在另外一个集合中。

    例如,可能希望搜索满足客户请求的WEB服务器名称,这通过出现在每个查询中的Request.ServerVariables集合中寻找“SERVER_NAME”来实现。然而,假如其他的集合也包含名为“SERVER_NAME”的值(键名不区分大小写),当使用Request("server_Name")时,就会得到错误的结果。总而言之,应尽可能直接访问适当的集合。

    技巧之三

    在费时操作前使用Response.IsClientConnected属性

    使用Response.IsClientConnected是观察用户是否仍连到服务器并正在载入ASP创建的网页的有用方式。如果用户断开连接或停止下载,我们就不用再浪费服务器的资源创建网页,因为缓冲区内容将被ⅡS丢弃。所以,对那些需要大量时间计算或资源使用较多的网页来说,值得在每一阶段都检查游览者是否已离线:

    …… Code to create first part of the page

    If Response.IsClientConnected Then

    Response.Flush

    Else

    Response.End

    End If

    …… Code to create next part of page

    技巧之四

    通常面言,数据构成了WEB站点的实际内容。所以,优化ADO操作以加速ASP代码执行,十分有用:

    a.仅选择所需的列:当打开ADO记录集时,除非需要获得所有的列,否则不应自动地使用表名(即SELECT*)。使用单独的列意味着将减少发送到服务器或从服务器取出的数据量。即使需要使用全部列,单独地命名每个列也会获得最佳的性能,因为服务器不必再解释这些列的名字。

    b. 尽可能的使用存储过程。存储过程是预先编译的程序,含有一个已经准备好的执行计划,所以比SQL语句执行更快。

    c. 使用适当的光标和锁定模式。如果所做的全部工作只是从记录集中读取数据,并将其显示在屏幕上,那么就使用缺省的只能前移、只读的记录集。ADO用来维护记录和锁定的细节的工作越少,执行的性能就越高。

    d. 使用对象变量。当遍历记录集时一个肯定能提高性能的方法是使用对象变量指向集合中的成员。例如:

    While Not RsGc.EOF

    Response.Write "工程名称:" & RsGc("GcMC") & "(工程代码:" & RsGc("GcCode") & ")

    "

    RsGc.MoveNext

    Wend

    可以用改写为下面的代码以加快执行:

    set GcMc=RsGc("GcMc")

    set GcCode=RsGc("GcCode")

    While Not rsGc.EOF Response.Write "工程名称:" & GcMc & "(工程代码:" & GcCode & ")

    " RsGc.MoveNext

    Wend

    新的代码建立了对象变量的引用,所以可以使用对象变量而不是实际的变量,这意味着脚本引擎的工作减少了,因为在集合中进行索引的次数变少了。

    技巧五

    我们知道,ASP页面中既可以使用VBScript,也可以使用JScript。但是在同一个页面上同时使用JScript和VBScript则是不可取的。因为服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎。

    附录

    前言

    ASP使用VBScript或者JScript脚本完成编程,而这两种脚本本身能力非常有限,利用ASP的几个内部对象也无法完成较大规模的应用,但是令人兴奋的是ASP支持组件技术,类似文件上传、绘图、收发电子邮件等工作都可以借助组件来完成,找到合适的优秀的组件,将使我们的网站功能更加强大。

    需要提醒大家的是,组件的安装应该按需进行,并不是说探针上的对号越多越好。

    收发邮件

    JMail 组件

    Dimac 公司的邮件收发组件,这是一个非常成熟和强大的邮件组件。它不但可以完成发邮件的工作,还可以POP收信,并支持收发邮件时的PGP加密,内置一个群发邮件的对象,可以使群发编程更简单。

    即使是很多其他组件也都能完成的发邮件功能,JMail 的完成也可以称得上最出色的,除了常见的抄送暗送等多收件人功能外,它还支持添加嵌入式图片附件,并且可以从URL读取文件作为附件。

    JMail 的免费版本拥有全部完成的发邮件功能,只在收邮件和加密邮件等我们不常用到的方面进行了限制。

    因为非常喜欢这个组件,阿江我在2002年3月就把这个组件的用户指南翻译了一下,可惜当时有一些地方不太理解,翻译是错误的,还没有来得及改过来,不过明眼人是能看出来的。

    ASPEmail 组件

    ASPEmail 组件也是常用的发邮件组件之一,不过因为售价不菲,国内使用的用户还不多。从功能上说,这也是一个功能全面的发邮件组件。2002年的时候它不支持收信,不知道现在是否支持了。

    文件上传组件

    文件上传组件最近几年是越来越多,国内很多ASP爱好者编写了自己的上传组件。为了提高安全性,动网等商业机构也推出了免费的文件上传组件。

    SA-FileUp 组件

    SoftArtisans 公司的文件上传组件,它是早期国内的虚拟主机商默认安装的组件之一,很多老程序员都有利用它编程的经历。安装后自动安装一个文件管理组件,可以像FSO一样管理服务器上的文件。

    LyfUpload 组件

    国产的老牌的流行的上传组件,可惜的是阿江一直没有尝试这个组件。下载

    其它上传组件

    动网上传组件; IronSoft系列组件; w3.Upload 组件。

    图像处理组件

    对于交互式的网站,网友上传的图片往往要经过缩小、加水印等处理,或者有时候我们需要输出各种图表,这些都要依靠图像处理组件。

    w3.image 组件

    Dimac 公司的图像组件,较早的图像组件之一,这个组件很完整的将文字、图形、画笔、刷子、颜料桶等对象以组件的形式完成了,所以功能相当强大。它支持的图像格式和选项也很多,支持透明的动画,支持直接输出到客户端。简单的缩放、水印等功能更是不在话下。试用版会自动在生成的图像底部加入8像素高的网址。

    xxiyy 图形组件

    两个耐心和热情的程序员最近一两年来的杰作,我是在CSDN社区的ASP区看到并收藏起来的。xxiyy是较早开发图像组件的程序员之一,早期他还专门开发过一个水印组件。XY.Graphics是由 mikespook & swill 制作,用于动态页面开发时对BMP、JPG、JPEG、GIF(非动画、非透明)、PNG(非动画、非透明)格式图象进行操作的COM组件。这个组件还有一个很有特色的 ASCⅡArt 方法,可以把图片转换为字母模拟的那种,可以在不支持发图片的论坛玩儿。

    截图组件

    铸剑谷的系列组件也是在CSDN社区碰上的,作者的谦虚和细心使得这个组件日益成为更加优秀的图像组件。组件可以满足我们对图像和图形组件的绝大部分需要,并且作者在图像品质上还下了不少工夫。DLL里还内置了一个 FLASH 截图组件,可以对 FLASH 中任意帧进行截图,这使 ASP 程序自动生成FLASH缩略图成为可能。

    ASPJpeg 组件

    曾经很流行的图像组件,当时知道它的时候很多人用它来缩放图片,不知道现在多什么功能了没。

    其它组件

    解压组件

    呆呆ⅡS管理组件可以完成ⅡS 6.0的站点添加、修改、删除等管理操作,可以管理应用程序池、系统用户、系统用户组、文件夹权限、SERV-U账户等。

    呆呆文件压缩解压组件可以完成基本的文件压缩和解压操作,支持设置压缩率和密码。

    w3.Socket 组件

    Dimac 公司免费的 Socket 组件,借助该组件,您可以通过ASP程序直接完成与目标服务器的连接,比如可以连接WHOIS服务器获取域名的WHOIS信息,连接时间服务器获取标准的时间,连接DNS服务器进行域名解析等,当然前提是你要对相应的网络协议有足够的了解才行。下载

    其他解释

    ASP的意义

    即应用服务提供商;真正的意义是利用集中管理的设施为客户提供应用部署、租赁、托管和外包等各种服务。具体来说,是将各种应用软件安装在数据中心(IDC)或服务器群上,通过网络将应用软件的功能或基于这些功能的服务,以有偿的方式提供给使用者,并由ASP负责管理、维护和更新这些功能和服务,并通过软件、硬件、网络和专业技术的合理搭配提供给使用者优质完善的服务。随着全球信息业的兴起,ASP已经成为一种逐渐升温的IT经营模式。

    Aspirin

    阿斯匹林

    Average Selling Price

    平均销售价格

    Aspartic acid

    天门冬氨酸

    ASP全称

    即为“阿里软件销售合作伙伴”,是阿里软件(上海)有限公司管理软件事业部为推动“钱掌柜”产品市场销售,更好的为客户,尤其是中小企业老板提供产品服务,而设立的一种伙伴合作模式。其主要职责是在授权区域内从事阿里软件“钱掌柜”系列产品的客户推动与产品咨询工作。保证我们的产品让更多的企业中小企业老板使用,并为最终用户提供软件应用技术服务与指导。

    尺寸

    ASP:ASP警棍,全称为ASP战术警棍,它是美国为执法部队专门设计制造的可伸缩战术武器。ASP,是美国武装系统暨程序公司(Armament System and Procedures,Lnc.,)的英文所写简称。

    ASP尺寸分类:16英寸、21英寸、26英寸、31英寸的惯性阻力甩棍,每种长度的伸缩甩棍分别有如下五种版本。A:轻版(轻量版);B:黑色镀铬版(黑铬标准型、重版);C:镀光亮铬版(白铬标准型);E:海军版;G:镀金版(18K镀金)

    ASP一直是战术警棍界的权威,他们的尖端设计使ASP战术警棍方便携带,具有很好的隐蔽性,同时能够快速打开,投入使用。它具有无以伦比的控制潜质,和令人难以置信的心理威慑能力。先进的材料,精良的生产工艺和完美的装配使ASP的品质、耐久力和表现力都能够傲视群雄。现在就来为你自己选择一根ASP黑色铬合金或无电镀不锈钢警棍,甩动手腕,缩在筒身里面的两段棍身就能利用惯性作用伸展出来;不必担心在使用中它会缩回去,因为只有在坚硬平面上用特定方法巧妙地正面撞压棍顶,它才会借助弹力回缩。压缩后的警棍可以别在腰带上,放在手袋中,短小方便。使用超级坚韧的高品质太空钢材和合金生产,经过精细防锈处理,强劲可靠。黑色乙烯基合成手柄提供稳定可靠把握的同时,充分展现警棍低调沉稳的传统风格。机械塑形的手柄表面为你提供非常稳固的把握,绝不打滑。具有很好的耐久力和可靠性,隐蔽性更好

    PS:另外,不知道这棍子怎么用的朋友可以去看《杀破狼》,甄子丹吴京对打的时候用的就是ASP,他那个是21寸的海军版.

    适应

    Advanced Simple Profile 是为了适应因特网上流媒体应用的需求而新增加的。它可以在

    很大码率范围内发布只有一层的基于帧结构的数字视频信号。采用 AS Profile,在大约

    1~2Mbits/s的码率下,即可达到数字电视的质量。这使得 AS Profile在第三代移动可视电话

    和Internet上的视频服务等领域有很好的应用前景。为实现高效编码,在 AS Profile中引入

    了Advanced Coding Efficiency Profile中所定义的工具。具体而言,即先进补偿工具,包括:

    1/4像素运动补偿(QMC),全局运动补偿(GMC)。另一方面,为满足较低码率下应用的

    要求,提供了 Error Resilience 工具。同时,提供了后处理可选工具:Deblocking Tool 和

    Deringing Tool。与Simple Profile相比,AS Profile具有更高的编码效率;另一方面,由于只

    支持单层和矩形VO,因而其实现复杂性低于 Advanced Coding Efficiency Profile。正因为此,

    基于MPEG-4 AS profile的硬件系统,以及 ASIC实现,具有很好的应用前景。

    一个特定的profile支持一个到几个视频对象类型,例如simple profile支持Simple object,

    Main profile 支持 simple,core,main 三种类型的对象。每一种对象类型都决定了符合该对

    象类型的码流应该使用那些规定的技术,对编码器来说,它不能使用这个对象不支持的技术,

    对解码器来说,这个对象规定的技术它都需要支持。

    自学书籍

    书名:ASP完全自学手册

    图书编号:1868333

    出版社:机械工业 定价:59.0

    ISBN:711120581

    作者:袁理

    出版日期:2007-01-12

    版次:1

    开本:26cm

    简介:

    本书详细讲述了ASP的使用方法,主要内容包括ASP基础、ASP的运行与开发环境、脚本程序、ASP中的5大对象、ASP的常用组件等。

    目录:

    丛书库

    前言

    本书光盘代码使用方法

    第1章 ASP基础

    1.1 ASP基础

    1.2 HTML技术概述

    1.3 ASP动态网页的工作流程

    1.4 ASP的7大对象

    1.5 ASP的开发工具

    1.6 编写第一个ASP Web页面

    第2章 ASP的运行与开发环境

    2.1 ASP的运行环境

    2.2 ASP开发软件——Visual InterDev 6.0

    第3章 ASP脚本程序

    3.1 关于ASP的脚本程序

    3.2 认识VBScript

    3.3 VBScript的常量与变量

    3.4 VBScript的运算符

    3.5 VBScript条件语句

    3.6 VBScript循环语句

    3.7 子过程与函数

    3.8 VBScript的内建函数

    第4章 ASP中的5大对象

    4.1 Request对象

    4.2 Response对象

    4.3 Server对象

    4.4 公共对象Application

    4.5 私有对象Session

    第5章 ASP的常用组件

    5.1 广告轮显组件Ad Rotator的概述

    5.2 浏览器性能组件Browser的应用

    5.3 连接目录组件Content Linking的应用

    5.4 计数器组件Page Counter的应用

    5.5 文件系统组件FileSyster的应用

    第6章 SQL Server应用基础

    6.1 安装前的准备工作

    6.2 SQL Server服务器

    6.3 创建和维护数据库

    6.4 表的操作

    6.5 创建索引

    6.6 视图的操作

    6.7 存储过程

    第7章 使用ADO组件访问数据库

    7.1 数据库简介

    7.2 ADO基本概述

    7.3 创建ODBC的数据源名称文件DSN

    7.4 使用连接对象Connection

    7.5 使用命令对象Command

    7.6 使用记录集对象RecordSet

    第8章 用户登录及管理系统

    8.1 系统说明

    8.2 系统数据库设计

    8.3 用户登记模块

    8.4 系统主界面

    8.5 用户注册模块

    8.6 用户资料修改模块

    8.7 系统管理模块

    8.8 添加用户模块

    8.9 删除用户模块

    8.10 退出登录模块

    第9章 网络投票系统

    9.1 系统说明

    9.2 系统数据库设计

    9.3 用户投票模块

    9.4 投票主要管理模块

    9.5 投票标题管理模块

    9.6 投票项管理模块

    第10章 网络图片管理系统

    10.1 简单的图片管理系统

    10.2 基于链接的图片管理系统

    第11章 搜索引擎系统

    11.1 系统说明

    11.2 系统数据库设计

    11.3 网站搜索模块

    11.4 网站分类模块

    11.5 网站信息管理模块

    11.6 系统管理模块

    第12章 资源下载及管理系统

    12.1 系统说明

    12.2 系统数据库设计

    12.3 资源信息显示模块

    12.4 资源搜索模块

    12.5 资源类别管理模块

    12.6 资源项管理模块

    第13章 在线音乐播放系统

    13.1 系统说明

    13.2 系统数据库设计

    13.3 系统主界面

    13.4 音乐播放页面

    13.5 管理员登录模块

    13.6 系统管理主界面

    13.7 添加曲目页面

    13.8 添加曲目完成页面

    13.9 曲目信息修改页面

    13.10 曲目信息修改完成页面

    13.11 删除曲目页面

    第14章 网上交易平台

    14.1 应用背景

    14.2 系统设计

    14.3 网站首页模块

    14.4 品牌店铺模块(speciality.asp)

    14.5 快速分类模块

    14.6 专题模块

    14.7 用户模块

    附录A SQL语言详解

    A.1 数据定义

    A.2 查询

    A.3 SQL更新

    附录B 使用JavaScript制作网页特效

    B.1 第一个例子

    B.2 基本数据类型

    B.3 JavaScript程序构成

    B.4 基于对象的JavaScript 语言

    B.5 创建新对象

    B.6 使用内部对象系统

    B.7 窗口及输入/输出

    B.8 Web页面信息的交互

    附录C ASCⅡ码

    附录D 本书涉及到的例程 [3]

    WEB技术类别

    HTML

    XHTML

    HTML 5

    CSS

    TCP\/IP

    XML

    XML

    XSL

    XSLT

    XSL-FO

    XPath

    XPointer

    XLink

    DTD

    XML Schema

    DOM

    XForms

    SOAP

    WSDL

    RDF

    RSS

    WAP

    展开表格

    网页技术与标准

    文档呈现语言

    HTML

    XHTML

    XML

    XForms

    DHTML

    样式格式描述语言

    层叠样式表

    XSL

    动态网页技术

    CGI

    FastCGI

    ASP

    ASP.NET

    ColdFusion

    JSP

    PHP

    展开表格

    发展历史

    在Internet风行的早期,浏览器中显示的网页仅是静态的图文组合而已,浏览者可以在网页上阅读信息,但无法进一步地发表意见、查询信息或进行在线购物等商务活动。为此,人们提出了动态网页或交互网页的概念和解决方案。所谓“动态网页”,是指客户端浏览器和Web服务器端可以互动,也就是服务器端可以实时处理浏览器端的请求(Request),然后再将处理的结果作为对浏览器请求的响应(Response)传送给浏览器。

    由于Web程序开发十分复杂,以至于要制作一个简单的动态页面也需要编写大量的C代码才能完成。于是Microsoft公司于1996年推出一种Web应用开发技术ASP,用于取代对Web服务器进行可编程扩展的CGI标准。

    ASP 1.0作为IIS(Internet Information Server,Internet信息服务器)的附属产品免费发送,不久就在Windows平台上广泛使用。ASP与ADO的结合使开发者很容易地在一个数据库中建立和打开一个记录集。

    1998年,微软公司又发布了ASP 2.0。ASP 1.0和ASP 2.0主要区别在于外部组件。有了ASP 2.0和IIS 4.0,就可以建立ASP应用了。

    在微软公司开发的Windows 2000操作系统中就开始带上了IIS 5.0及ASP 3.0。虽然Windows已经发展到比较高的版本,但是开发领域中依然百分之百采用Windows 2000 Server。Windows 2000包括三个不同的版本:Windows 2000 Professional,Windows 2000 Server和Windows 2000 Advanced Server。按照默认设置安装Windows 2000 Server,安装时不用作任何改动,这样就可配置好ASP的运行环境。

    编程开发

    硬件环境

    ASP程序的运行对硬件环境没有特别的要求,通常具备能够满足Windows操作系统运行要求的硬件设备即可。基本内存容量要求为64MB,建议内存容量为128MB或更多。此外,应该有100MB以上的硬盘空间用来安装所需的软件。

    软件环境

    在软件环境方面,因为ASP是Microsoft公司推出的,只有在Microsoft Windows操作系统及其配套的web服务器软件的支持下才能运行。Microsoft公司的各种windows操作系统都可以作为ASP的运行平台。其中,在windows 98操作系统下运行的Personal w曲Server,一般简称为PWS,而Microsoft Internet Information Server,则简称为IIS。

    语言特点

    1、用VBScript、JavaScript等简单容易的脚本语言。结合HTML代码,即可快速完成网站的应用程序,实现动态网页技术。

    2、ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试,无须编译或链接就可以解释执行。

    3、ASP所使用的脚本语言均在Web服务器端执行,服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上。

    4、ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。

    5、ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发现和那个Email或访问文件系统等。

    6、由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。

    工作原理

    ASP中的脚本程序是在服务器端运行的(而不是在客户端运行),传送到浏览器上的web页是在web服务器上生成的。因此,客户端浏览器并没有处理这些脚本,web服务器已经完成了这些脚本的处理,并将标准的HTML页面传输到浏览器。ASP解释器读取并执行所有在<%和%>标签之间的脚本代码,并生成内容。由于只有脚本的执行结果返回到浏览器,因此,用户看不到正在浏览的网页的脚本命令,而只能看到脚本的执行结果。

    语言基础

    ASP可以使用两种脚本语言:VBScript和Jscript(所谓的JScript语言就是微软版本的JavaScript语言)。

    ASP包含内置对象,最常用的是五大对象、一个集合和一个文件。五大对象分别是Response,Request,Session,Application和Server;一个集合是Cookies;一个文件是GIobal.asa。

    ASP提供了内置对象和大量可安装的ActiveX组件。这些对象以及组件都可以用来拓展ASP的功能。在面向对象编程中,对象就是指由当作完整实体的操作和数据组成的变量。在对象中客户可通过由一组方法或相关函数来访问对象的数据。

    对象一般有方法、属性、集合和事件。其中,方法决定了可以用这个对象作什么事情;属性可以读取对象状态或者设置对象状态;集合是由很多不同的与对象有关系的键和值的配对组成的。

    Response对象

    在ASP中,使用Response对象来根据客户端不同的请求输出不同的返回结果。

    使用Response.Write方法将输出传送至浏览器端

    Write方法是Response对象中最常用的方法之一,它可以把变量的值发送到用户端的当前页面。Write方法的功能量强大,几乎可以输出所有的对象和数据。

    在Write方法中可以嵌入任何HTML标记,只要该标记是合法的,如下例将输出绿色的汉字和一条水平线:

    1

    2

    3

    4

    Response.Write""

    Response.Write"欢迎您来访问!"&"
    "

    Response.Write""

    Response.Write"


    "

    将HTML标记与ASP中的变量恰当的结合使用,可使程序更简洁易读,如下例是根据Request对象获取的数据来创建表格的一行信息:

    1

    2

    <%Response.Write"

    "&Request.Form("strUserName")&""_

    &Request.Form("intAge")&"

    "%>

    使用Response.Redirect方法从目前网页导向至其他网页

    在普通网页中,可以使用超链接的方式来引导访问者跳转到另一个页面,但这个过程须要访问者单击一个超链接才可以进行。Response对象的Redirect方法则可以自动完成页面间的跳转,而访问者几乎不会感觉出来。

    使用Response.End方法结束程序的执行

    End方法使服务器停止当前脚本的处理并返回当前结果。如果Response对象的Buffer属性设为True,则End方法立即把缓存中的内容发送到客户端并清除缓存。

    因此,若想取消向客户端的所有输出,可以先用Clear方法清除缓存,再用End方法停止脚本的处理。

    AddHeader方法用指定的值添加HTML标题。该方法常常向响应添加新的HTTP标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。其语法结构如下:

    1

     Response.AddHeader 标题变量名称,初始值

    为避免命名不明确,标题变量名称中不能包含任何下划线字符(_)。由于HTTP协议要求所有的标题都必须在内容之前发送,所以必须在任何输出(例如由HTML或write方法生成的输出)发送到客户端之前在脚本中调用AddHeader。但当Buffer属性被设置为True时例外。若输出被缓冲,则可以在脚本中的任何地方调用AddHeader方法,只要它在Flush之前执行即可。

    Response.CIear方法

    Clear方法用于清除缓冲区的所有HTML输出,但它只删除响应正文而不删除响应标题。在服务器上的程序产生错误时,可用clear方法来处理错误情况。

    Response对象

    Response对象的属性主要包括Buffer、ContentType等。

    Buffer属性

    在ASP程序中,可以为页面在服务器端设置一个缓存。缓存区是一个存储区,它可以在其释放数据之前容纳该数据一段时间,缓冲区的优点在于它的行为可以进行控制。

    设置缓存后,服务器端可减少与客户端连接的次数而提高整体的响应速度,并可在满足某些条件(如脚本处理不正确或用户没有适当的安全证书)时撤销已经处理的结果,而不会出现响应完成一部分就停止的状况。

    缓存功能的打开和关闭是通过Response对象的Buffer属性来完成的。若将Buffer属性设为False,则关闭缓存功能,Web服务器在处理页面时会随时返回HTML和脚本结果;若将Buffer属性设为True,则打开缓存功能,Web服务器在处理页面时会将结果暂时存放到缓存中,当全部脚本处理完后,或者遇到End或Flush方法时,才将缓存中的内容发送到浏览器。

    Buffer属性的更改必须放在HTML或脚本输出之前。这是因为在任何内容发送到浏览器后,Buffer属性值就不能再更改,否则会引起错误。

    ContentType属性

    ContentType属性指定响应的HTTP内容类型。其语法结构如下:

    1

    Response.ContentType [=ContentType]

    ContentType字符串通常被格式化为类型/子类型,其中类型是常规内容范畴,子类为特定内容类型。如果未指定ContentType,默认为text/HTML。

    web服务器将某个文件发送到浏览器时,它会将文件的MIME类型告诉浏览器,浏览器会根据文件的MIME类型和扩展名来确定是自己本身就能显示,还是必须调用其他应用程序。

    Expires属性

    EXpires属性指定了在浏览器上缓冲存储的页距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区中的版本。其语法结构如下:

    1

     Response.Expires [=时间]

    时间参数设置网页距过期还有多少分钟。如果将此参数设置为O,可使缓存的页立即过期,这样客户端每次都将从服务器上得到最新的页面。

    技术应用

    电子商务

    ASP 可以通过Windows提供的COM/DCOM来获取Active X和结构支持。

    ASP使用ODBC(Open Database Connectivity,开放数据库互连)技术访问数据库。在具体应用中,一般通过ADO(ActiveX Data Objects,ActiveX数据对象)实现对数据库的操作。使用ADO的connection、command和recordset对象可以完成与数据库连接的建立,SOL语句的执行,查询结果集合的保存、遍历和显示等工作。

    语言评价

    使用ASP编写服务器端脚本,可以方便地创建复杂、实用的Web应用程序。

    ASP所设计出的是动态主页,可接收用户提交的信息并作出反应,其中的数据可随实际情况而改变,无须人工对网页文件进行更新即可满足应用需要。例如:当在浏览器上填好表单并提交HTTP请求时,可以要求在站点服务器上执行一个表单所设定的应用程序,而不只是一个简单的HTML文件。该应用程序分析表单的输入数据,根据不同的数据内容将相应的执行结果(通常是数据库查寻的结果集)以HTML的格式传送给浏览器。数据库的数据可以随时变化,服务器上执行的应用程序却不必更改,客户端得到的网页信息会始终保持新鲜的魅力。

    与使用Visual Basic、C++或Java等编程语言开发Web应用程序相比,ASP是更为灵活快速的创建Web应用程序的方法。除了通过添加脚本为应用程序创建HTML界面之外,还可以建立自己的COM(组件对象模型)组件,并且可将应用程序的商业逻辑封装在可重复使用的模块中,以便在脚本、其他组件或其他应用程序中调用。

    WEB技术

    HTML

    XHTML ▪ HTML 5 ▪ CSS ▪ TCP/IP

    XML

    XML ▪ XSL ▪ XSLT ▪ XSL-FO ▪ XPath ▪ XPointer ▪ XLink ▪ DTD ▪ XML Schema ▪ DOM ▪ XForms ▪ SOAP ▪WSDL ▪ RDF ▪ RSS ▪ WAP ▪ Web Services

    Web脚本

    JavaScript ▪ HTML DOM ▪ DHTML ▪ VBScript ▪ AJAX ▪ jQuery ▪ JSON ▪ E4X ▪ WMLScript

    Serv脚本

    SQL ▪ ASP ▪ ADO ▪ PHP

    .NET

    Microsoft.NET ▪ .NET Mobile

    多媒体

    SMIL ▪ SVG

    网页技术与标准

    文档呈现语言

    ▪ HTML▪ XHTML▪ XML▪ XForms▪ DHTML

    样式格式描述语言

    ▪ 层叠样式表▪ XSL

    动态网页技术

    ▪ CGI▪ FastCGI▪ ASP▪ ASP.NET▪ ColdFusion▪ JSP▪ PHP

    客户端交互技术

    ▪ ActiveX▪ Java Applet▪ JavaFX▪ AJAX▪ Silverlight▪ ActionScript▪ Flex▪ AIR

    客户端脚本语言

    ▪ JavaScript▪ JScript▪ VBScript▪ ECMAScript

    标识定位语言

    ▪ URL▪ URI▪ XPath▪ URL重写

    文档纲要语言

    ▪ DTD▪ XML Schema

    参考资料

    [1] 实例讲解ASP动态网页制作中使用SQL语句 · 教你做网页2008-12-04[引用日期2020-06-23]

    内容声明

    1、本网站为开放性注册平台,以上所有展示信息均由会员自行提供,内容的真实性、准确性和合法性均由发布会员负责,本网站对此不承担任何法律责任。

    2、网站信息如涉嫌违反相关法律规定或侵权,请发邮件至599385753@qq.com删除。

    Copyright © 趣爱秀