柔情似水 发表于 2015-1-16 22:23:55

ASP编程:第八篇 ASP内建工具

SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。在上一篇中作者给人人具体先容了ASP内建工具之一Request的利用办法,信任列位经由过程一系列的理论已可以纯熟把握,本篇将持续给人人先容ASP的另外一个内建工具Response。  比来,有良多伴侣来“妹儿”催我加速ASP篇一文的写作速率,并孔殷地扣问那里有关于ASP的课本。我深深地被人人的进修热忱所感动,因而决意将本人平常所汇集的一些ASP信息材料拿出来和人人共享,也但愿一切的伴侣能大方地将本人汇集的有关ASP的材料告知作者,感谢。因为今朝国际有关ASP的中文课本百里挑一,而专门针对ASP网站开辟的中文课本作者更是不足为奇(多是作者目光如豆),只是比来传闻出了一本清华年夜学出书社出书的关于MSInterDev的傻瓜书,个中有ASP的教授教养,和一本ActiveServerPage2.0的中文手册,因而今朝作者仍是次要经由过程外洋网站来猎取ASP的有关信息和材料,这也是作者写本文的一个次要缘故原由。上面我就将bookmark中的一些较典范的ASP站点排列出来:
  1、http://www.activeserverpage.com/

  这是作者会见最频仍的ASP网站,也是天下上最年夜最全的关于ASP的网站之一,它内里不仅有最新的ASP文献材料,收费组件,另有一本完全的ASP进门课本,它更是ASP网站的中枢站点,经由过程它你能够抵达有数的ASP相干站点。

  2、http://www.asphole.com/

  这本是一个针对ASP毛病而创建的站点,可是它却无疑是一个完整的ASP信息站点,它不但供应了ASP的文章,及组件还供应细致透辟的连接地点。

  3、http://www.15seconds.com/faq和http://www.15seconds.com/search

  这是一个作者所看到的最年夜的网上ASP交换站点,它具有ASP解疑的谜底,ASP邮件清单信息,ASP技能,你大概必要必要几个月的工夫才干读完这些信息。而在http://www.15seconds.com/AllComponents.asp你能够读到最新的ActiveX组件和大批收费组件的具体先容,并附有十分有用的文档与例子。

  4、http://www.microsoft.com/workshop/server/asp/aspfeat.asp

  人人都晓得ActiveServerPage是微软提出的一套基于NTIIS的WEB服务器端情况,那末这个由微软本人创建的ASP手艺申明站点,人人固然是不成不看的。

  5、http://www.serverobjects.com/

  在这里你能够取得有数有用的ActiveX组件,并下载它们的试用版,只惋惜个中的年夜部分极好的组件都是要Money的。

  6、http://www.cyscape.com/asp/browscap/

  人人还记得作者在ASP2一文中先容的谁人用来分辨客户端扫瞄器版本的BrowserCapabilitie组件吗?在这个站点你能够取得最新的BROWSCAP.INI文件,它具有每个ASP安装时微软没有供应的扫瞄器的信息,如许你在ASP中判别客户扫瞄器是就可以够十拿九稳了。

  7、http://www.microsoft.com/data/ado/

  ASP最壮大且便利的功效莫过于同数据库的毗连,经由过程ASP内建的ActiveX组件,我们能够十拿九稳的将WEB与一切和ODBC兼容的数据库毗连起来,在这个微软的站点上你能够猎取良多有用的ADO材料。

  8、http://www.cobb.com/m_sbn4/

  一个不错的ASP论坛,你能够在那边贴你的成绩,读取他人的成绩息争答。

  上面,我们入手下手进修ASP的另外一个内建工具Response。

  与Request是猎取客户端HTTP信息相反,Response工具是用来把持发送给用户的信息,包含间接发送信息给扫瞄器、重定向扫瞄器到另外一个URL或设置cookie的值。

  语法

  Response.collection|property|method

  1、属性

  1、Buffer

  Buffer属性唆使是不是缓冲页输入。当缓冲页输入时,只要以后页的一切服务器剧本处置终了大概挪用了Flush或End办法后,服务器才将呼应发送给客户端扫瞄器,服务器将输入发送给客户端扫瞄器后就不克不及再设置Buffer属性。因而应当在.asp文件的第一行挪用Response.Buffer。

  2、Charset

  Charset属性将字符集称号附加到Response工具中content-type题目的前面。关于不包括Response.Charset属性的ASP页,content-type题目将为:content-type:text/html。

  我们能够在.asp文件中指定content-type题目,如:

  <%Response.Charset="gb2312")%>

  将发生以下了局:

  content-type:text/html;charset=gb2312

  注重,不管字符串暗示的字符集是不是无效,该功效城市将其拔出content-type题目中。且假如某个页包括多个含有Response.Charset的标志,则每一个Response.Charset都将替换前一个CharsetName。如许,字符集将被设置为该页中Response.Charset的最初一个实例所指定值。

  3、ContentType

  ContentType属性指定服务器呼应的HTTP内容范例。假如未指定ContentType,默许为text/HTML。

  4、Expires

  Expires属性指定了在扫瞄器上缓冲存储的页距过时另有几工夫。假如用户在某个页过时之前又回到此页,就会显现缓冲区中的页面。假如设置response.expires=0,则可以使缓存的页面当即过时。这是一个较有用的属性,当客户经由过程ASP的上岸页面进进WEB站点后,应当使用该属性使上岸页面当即过时,以确保平安。

  5、ExpiresAbsolute

  与Expires属性分歧ExpiresAbsolute属性指定缓存于扫瞄器中的页面切实其实切到期日期和工夫。在未到期之前,若用户前往到该页,该缓存中的页面就显现。假如未指准时间,该主页在当天半夜到期。假如未指定日期,则该主页在剧本运转当天的指准时间到期。以下示例指定页面在1998年12月10日上午9:00分30秒到期。

  <%Response.ExpiresAbsolute=#Dec12,19989:00:30#%>

  2、办法

  1、Clear

  能够用Clear办法扫除缓冲区中的一切HTML输入。但Clear办法只扫除呼应注释而不扫除呼应题目。能够用该办法处置毛病情形。可是假如未将Response.Buffer设置为TRUE,则该办法将招致运转时毛病。

  2、End

  End办法使Web服务器中断处置剧本并前往以后了局。文件中残剩的内容将不被处置。假如Response.Buffer已设置为TRUE,则挪用Response.End将缓冲输入。

  3、Flush

  Flush办法当即发送缓冲区中的输入。假如未将Response.Buffer设置为TRUE,则该办法将招致运转时毛病。

  4、Redirect

  Redirect办法使扫瞄器当即重定向到程序指定的URL。这也是一个我们常常用到办法,如许程序员就能够依据客户的分歧呼应,为分歧的客户指定分歧的页面或依据分歧的情形指定分歧的页面。一旦利用了Redirect办法任安在页中显式设置的呼应注释内容都将被疏忽。但是,此办法不向客户端发送该页设置的其他HTTP题目,将发生一个将重定向URL作为链接包括的主动呼应注释。Redirect办法发送以下显式题目,个中URL是传送给该办法的值。如:

  <%Response.redirect("www.chinabyte.com")%>

  5、Write

  Write办法是我们平常最经常使用的办法之一,它是将指定的字符串写到以后的HTTP输入。

  3、汇合

  Response工具只要一个汇合--Cookie

  Cookies汇合设置cookie的值。若指定的cookie不存在,则创立它。若存在,则设置新的值而且将旧值删往。

  语法

  Response.Cookies(cookie)[(key)|.attribute]=value

  这里的cookie是指定cookie的称号。而假如指定了key,则该cookie就是一个字典。attribute指定cookie本身的有关信息。attribute参数能够是以下之一:

  Domain若被指定,则cookie将被发送到对该域的哀求中往。

  Expires指定cookie的过时日期。为了在会话停止后将cookie存储在客户端磁盘上,必需设置该日期。若此项属性的设置未凌驾以后日期,则在义务停止后cookie将到期。

  HasKeys指定cookie是不是包括关头字。

  Path若被指定,则cookie将只发送到对该路径的哀求中。假如未设置该属性,则利用使用程序的路径。

  至此,我们已进修的Response工具的一切属性、办法和汇合的实际常识,上面作者将给人人演示一段复杂的程序,经由过程理论让人人加深了解。先将以下程序剪贴到记事簿中,并保留为asp7.asp。(注重将<和%之间的空格往失落!!!)
  <%
  Dimuser
Dimflag
Dimpwd
  Dimsay
Response.buffer=true开启缓冲页面功效
Response.ContentType="text/HTML"
  Response.Charset="gb2312"
  user=Request.Form("username")
pwd=Request.Form("password")
say=Request.QueryString("say")
%>
  <formmethod="POST"action="asp7.asp">
  <p>用户名:<inputtype="text"name="username"size="12"><br>
  口令:<inputtype="password"name="password"size="12"><br>
  <inputtype="submit"value="提交"name="B1"><inputtype="reset"value="作废"name="B2"></p></form>
  <%
  Ifsay=1then
  Response.Write"接待墨客台端到临!"
EndIf
  Ifsay>1then
  Response.Write"接待再次到临墨客的ASP网站!"
EndIf
  Ifuser="Adm"andpwd="shusheng"Then
  Response.Expires=1设置该页面在扫瞄器的缓冲中存储1分钟后过时。
  flag=1
  ElseIfuser="guest"andpwd="guest"Then
  Response.Expires=0使缓存的页面当即过时。
  Response.Clear清空存储在缓存中的页面
  flag=2
  ElseIfuser="vip"andpwd="vip"Then
  Response.Write"接待VIP到临墨客的ASP网站"
  flag=3
  Else
  flag=0
  Response.End当即中断剧本处置,并将缓存中的页面输入
EndIf
  Response.write"<p><ahref=asp7b.asp?flag="&flag&">静态网站计划十八般技艺--ASP篇(7)理论实习</a>&l;/p>"
将变量flag的值传送给asp7b.asp
  %>
  <p>静态网站计划十八般技艺--ASP篇(7)理论实习</p>
  再将以下程序保留为asp7b.asp。
  <%
  Dimsaysay=Request.QueryString("flag")
Selectcasesay
  case"1"
  Response.Redirect"asp7.asp?say=1"
case"2"
  Response.Redirect"asp7.asp?say=2"
case"3"
  Response.Redirect"asp7.asp?say=3"
case"0"
  Response.Redirect"asp7.asp?say=0"
EndSelect
  %>

  将这两个程序放在有实行权限的WEB假造目次下,并以http体例会见asp7.asp。在这两个程序中我们充实使用了至今为止所学过的两个ASP内建工具:Request和Response。当你第一次会见asp7.asp文件时,页面上呈现一个Form并提醒输出用户名和口令,假如你输出用户名:Adm、口令:shusheng,则会呈现以下页面:
<imgsrc=http://edu.cnzz.cn/Article/UploadFiles/200492073054734.gif>
这是为何呢?由于我们设置了页面缓存,当利用guest上岸时,判别程序主动清空其之前一切存储在缓存中的页面,而仅将厥后剧本程序实行的了局显现出来。

  那为何第一次上岸asp7.asp页面时仅仅只显现一个Form对话框呢?由于此时程序判别到用户既非Adm,也不是guest和vip,以是实行Response.End,当即将存储在缓存中的Form显现出来,并中断厥后的统统剧本处置,包含纯HTML代码的显现。

  不管你是用Adm仍是guest或vip上岸该页面你都能够看到一个超链,该超链指向文件asp7b.asp,当我们点击该超链时,asp7.asp将变量flag的值作为参数发送给asp7b.asp,尔后者则依据该参数的值来做出判别,并根据分歧情形利用Response.Redirect再强行前往asp7.asp,并也将一个变量say的值作为参数发送给asp7.asp。云云一来,asp7.asp又会依据此参数来做出分歧的反响。

  人人如今都看到了我们仅仅用了两个很复杂的程序,就能够做到对统一个页面的多种分歧显现了局,这恰是ASP的魅力地点,列位能够以此树模程序为基本,来举行一些修改,以纯熟把握我们所学的这两个内建工具。明天的课程就到此为止了,在开头我还要申明两件事。第一,良多伴侣来信扣问那里能够看到ASP篇的前几篇文章,请人人点击此处即可以找到。第二,一些伴侣反应文中的ASP程序不克不及运转,这次要是由于Chinabyte的页面都是用数据库天生的,它限制在文章中不克不及利用带HTML或ASP格局的代码,以是在一切<标记后都加了空格,列位只需将<后的空格往失落就能够运转程序了,牢记。下一篇我们将持续进修另外一个ASP内建工具,敬请存眷。帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。

山那边是海 发表于 2015-1-17 18:52:41

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

透明 发表于 2015-1-21 07:44:12

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

精灵巫婆 发表于 2015-1-30 11:21:17

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

飘飘悠悠 发表于 2015-2-6 10:55:48

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

飘灵儿 发表于 2015-2-16 00:20:32

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

莫相离 发表于 2015-3-4 19:12:54

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

愤怒的大鸟 发表于 2015-3-11 20:45:06

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

爱飞 发表于 2015-3-19 12:36:08

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

冷月葬花魂 发表于 2015-3-28 02:53:50

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
页: [1]
查看完整版本: ASP编程:第八篇 ASP内建工具