ASP教程之第七课:ASP内建工具Request
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。从本篇入手下手作者从ASP内建工具动手,为人人具体分析ASP的六个内建工具和各类组件的特征和办法。 在正式入手下手进修ASP的内建工具和组件之前,先让我们来熟悉一些基础观点,这将对列位从此的进修年夜有匡助。请看下表:ActiveServer随WindowsNT托付的服务器方手艺的汇合。这些手艺为组件使用程序办理、数据库会见、事件和动静供应分歧的服务器方组件、剧本模子和一套集成的系统服务。 ActiveServerPages(ASP)在服务器上运转ActiveX剧本和ActiveX组件的服务器方剧本情况。开辟职员能够将剧本和组件分离在一同创立基于Web的使用程序。ActiveX同意开辟职员为WorldWideWeb创立交互式组件的内在丰厚的Microsoft手艺术语。同意用分歧言语编写的软件组件在收集情况中一同事情的一组不依附言语的互操纵手艺。ActiveX的关头元素是组件工具模子(COM)和散布组件工具模子(DCOM)。这些手艺已失掉开放构造的允许,已移植到很多平台上。ADOActive数据工具。为基于Internet以数据为中央的使用程序而优化的一组基于工具的数据会见接口。ADO基于已公布的标准而且随带在MicrosoftInternetInformationServer和MicrosoftVisualInterDev中。DSN数据源称号。开放式数据库接口(ODBC)用于引用会见数据所需的驱动程序或其他信息的逻辑称号。Internet信息服务器用于毗连到ODBC数据源(如SQLServer数据库)的称号。event:事务由用户或ActiveX控件发生的程序呼应的任何操纵。一样平常事务包含按键盘键、经由过程利用鼠标单击选择按钮和其他鼠标操纵。编程职员编写呼应这些操纵的代码。 object:工具在面向工具编程中,由看成完全实体的操纵和数据构成的变量。工具是基于特定模子的,在工具中客户利用工具的服务经由过程由一组办法或相干函数的接口会见工具的数据。然后客户端能够挪用这些方法实行某中操纵。ODBC开放式数据库接口。同意使用程序从各类跨平台数据会见的已无数据源尺度规格中会见数据的使用程序编程接口。 SQL布局化查询言语StructuredQueryLanguage。界说和访问干系型数据库的国际尺度。
甚么是工具?它可不是指你爱情的男伴或女伴。在面向工具编程中,工具就是指由看成完全实体的操纵和数据构成的变量。工具是基于特定模子的,在工具中客户利用工具的服务经由过程由一组办法或相干函数的接口会见工具的数据,然后客户端能够挪用这些办法实行某中操纵。ActiveX组件是创建Web使用程序的关头,组件供应了在剧本中实行义务的工具。ActiveX组件是一个文件,该文件包括实行某项或一组义务的代码,因为组件能够实行公用义务,如许程序员们就不用本人往创立实行这些义务的代码。能够使用组件作为剧本和基于Web使用程序的基础机关块。只需晓得怎样会见组件供应的工具,即便是位编写剧本的老手,也能够在不懂得组件运作体例的情形下编写剧本。总之,组件使您不必进修编程就可以够编写壮大的剧本。组件是包括在静态链接库.dll或可实行文件.exe中的可实行代码。组件能够供应一个或多个工具和工具的办法和属性。要利用组件供应的工具,请创立工具的实例并将这个新的实例分派变量名。利用ASP的Server.CreateObject办法能够创立工具的实例,利用剧本言语的变量分派指令能够为工具实例定名。以下例:
Setdb=Server.CreateObject("ADODB.Connection")
这里的变量db就是ASP程序创立的会见数据库的工具实例。
ActiveServerPages供应了可在剧本中利用的内建工具。这些工具利用户更简单搜集经由过程扫瞄器哀求发送的信息、呼应扫瞄器和存储用户信息,从而使工具开辟者挣脱了良多啰嗦的事情。今朝的ASP版本统共供应了六个内建工具,上面让我们将经由过程实例分离来举行进修。
1、Request工具
可使用Request工具会见任何基于HTTP哀求传送的一切信息,包含从HTML表格用POST办法或GET办法传送的参数、cookie和用户认证。Request工具使您可以会见客户端发送给服务器的二进制数据。
Request的语法:
Request[.汇合|属性|办法](变量)
在这里作者将选择一些经常使用的工具语法举行剖析
1、Form
Form汇合经由过程利用POST办法的表格检索邮送到HTTP哀求注释中的表格元素的值。
语法
Request.Form(element)[(index)|.Count]
参数
element指定汇合要检索的表格元素的称号。
index可选参数,利用该参数能够会见某参数中多个值中的一个。它能够是1到Request.Form(parameter).Count之间的恣意整数。
Count汇合中元素的个数
Form汇合按哀求注释中参数的称号来索引。Request.Form(element)的值是哀求注释中一切element值的数组。经由过程挪用Request.Form(element).Count来断定参数中值的个数。假如参数未联系关系多个值,则计数为1。假如找不到参数,计数为0。要援用有多个值的表格元素中的单个值,必需指定index值。index参数能够是从1到Request.Form(element).Count中的恣意数字。假如援用多个表格参数中的一个,而未指定index值,前往的数据将是以逗号分开的字符串。
可使用重述符来显现表格哀求中的一切数据值。比方,用户经由过程指定几个值填写表格,见下图。
http://www.worldren.com/asp/images/asp6a.gif
关于hobby参数,您可使用上面的剧本检索这些值。 <html> <head><title></title></head> <body> <p>请填写你的喜好</p> <formmethod="POST"action="form.asp"> <p><inputtype="text"name="hobby"size="20"><br> <inputtype="checkbox"name="hobby"value="足球">足球<inputtype="checkbox" name="hobby"value="乒乓球">乒乓球</p> <p><inputtype="submit"value="发送"name="B1"><inputtype="reset"value="重填" name="B2"></p> </form> <% ForEachiInRequest.Form("hobby") Response.Writei&"<BR>" Next %> </body></html>
将以上代码剪贴到记事簿中(注重将“<”前面的空格往失落),保留为form.asp文件并运转,request工具能够依据你在form中填进或选择元素内容的分歧将元素逐一显现出来。
固然利用For...Next轮回也能够天生一样的输入,以下所示:
<%
Fori=1ToRequest.Form("hobby").Count
Response.WriteRequest.Form("hobby")(i)&"<BR>"Next
%>
2、QueryString
QueryString汇合检索HTTP查询字符串中变量的值,HTTP查询字符串由问号(?)后的值指定。如:
<AHREF="example.asp?string=thisisasample">stringsample</A>
天生值为"thisisasample"的变量名字符串。经由过程发送表格或由用户在其扫瞄器的地点框中键进查询也能够天生查询字符串。
语法
Request.QueryString(variable)[(index)|.Count]
QueryString汇合可让您以称号检索QUERY_STRING变量。Request.QueryString(参数)的值是呈现在QUERY_STRING中一切参数的值的数组。经由过程挪用Request.QueryString(parameter).Count能够断定参数有几个值。
我们也能够利用QueryString来到达与前一个典范不异的功效。只必要将request.form部分交换以下:
<%
ForEachiInRequest.querystring("hobby")
Response.Writei&"<BR>"
Next
%>
3、Cookies
甚么是Cookie?Cookie实际上是一个标签,当你会见一个必要独一标识你的站址的WEB站点时,它会在你的硬盘上留下一个标志,下一次你会见统一个站点时,站点的页面会查找这个标志。每一个WEB站点都有本人的标志,标志的内容能够随时读取,但只能由该站点的页面完成。每一个站点的Cookie与其他一切站点的Cookie存在统一文件夹中的分歧文件内(你能够在Windows的目次下的Cookie文件夹中找到它们)。一个Cookie就是一个独一标识客户的标志,Cookie能够包括在一个对话期或几个对话期之间某个WEB站点的一切页面共享的信息,利用Cookie还能够在页面之间互换信息。Request供应的Cookies汇合同意用户检索在HTTP哀求中发送的cookie的值。这项功效常常被利用在请求认证客户暗码和电子通告板、WEB谈天室等ASP程序中。
语法
Request.Cookies(cookie)[(key)|.attribute]
参数
cookie指定要检索其值的cookie。
key可选参数,用于从cookie字典中检索子关头字的值。
attribe指定cookie本身的有关信息。如:HasKeys只读,指定cookie是不是包括关头字。
能够经由过程包括一个key值来会见cookie字典的子关头字。假如会见cookie字典时未指定key,则一切关头字城市作为单个查询字符串前往。比方,假如MyCookie有两个关头字,First和Second,而在挪用Request.Cookies时并未指定个中任何一个关头字,那末将前往以下字符串。
First=firstkeyvalue&Second=secondkeyvalue
假如客户端扫瞄器发送了两个同名的cookie,那末Request.Cookie将前往个中路径布局较深的一个。比方,假如有两个同名的的cookie,但个中一个的路径属性为/www/而另外一个为/www/home/,客户端扫瞄器同时将两个cookie都发送到/www/home/目次中,那末Request.Cookie将只前往第二个cookie。
要断定某个cookie是否是cookie字典(cookie有否有关头字),可以使用以下剧本。
<%=Request.Cookies("myCookie").HasKeys%>
假如myCookie是一个cookie字典,则后面的赋值为TRUE。不然,为FALSE。上面我们来看看一个cookie的使用实例:
<%
nickname=request.form("nick")response.cookies("nick")=nickname用response工具将用户名写进Cookie当中response.write"接待"&request.cookies("nick")&"到临小站!"
%>
<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>cookie</title>
<metaname="GENERATOR"content="MicrosoftFrontPage3.0"></head>
<body>
<formmethod="POST"action="cookie.asp">
<p><inputtype="text"name="nick"size="20">
<inputtype="submit"value="发送"name="B1"><inputtype="reset"value="重填"name="B2"></p></form>
</body></html>
这实际上是一个在基于WEB的BBS或CHAT的ASP程序中经常使用的伎俩,它将用户在肇端页面上填进的姓名保留在cookie中,如许前面的程序就能够很简单地挪用该用户的nick了。
4、ServerVariables
人人都晓得在扫瞄器中扫瞄网页的时分利用的传输协定是HTTP,在HTTP的题目文件中会纪录一些客户真个信息,如:客户的IP地点等等,偶然服务器端必要依据分歧的客户端信息做出分歧的反应,这时候候就必要用ServerVariables汇合猎取所需信息。
语法
Request.ServerVariables(服务器情况变量)
因为服务器情况变量较多,作者仅将一些经常使用的变量鄙人表中列出:
ALL_HTTP客户端发送的一切HTTP题目文件。CONTENT_LENGTH客户端收回内容的长度。CONTENT_TYPE内容的数据范例。如:“text/html”。同附加信息的查询一同利用,如HTTP查询GET、POST和PUT。LOCAL_ADDR前往承受哀求的服务器地点。假如在绑定多个IP地点的多宿主呆板上查找哀求所利用的地点时,这条变量十分主要。LOGON_USER用户登录WindowsNT的帐号。QUERY_STRING查询HTTP哀求中问号(?)后的信息。REMOTE_ADDR收回哀求的远程主机(client)的IP地点。REMOTE_HOST收回哀求的主机(client)称号。假如服务器无此信息,它将设置为空的 MOTE_ADDR变量。REQUEST_METHOD该办法用于提出哀求。相称于用于HTTP的GET、HEAD、POST等等。SERVER_NAME呈现在自援用URL中的服务器主机名、DNS假名或IP地点。SERVER_PORT发送哀求的端标语。 我们可使用以下剧本打印出一切的服务器情况变量。
<TABLE>
<TR><TD><B>ServerVariable</B></TD><TD><B>Value</B></TD></TR><%ForEachnameInRequest.ServerVariables%>
<TR><TD><%=name%></TD><TD><%=Request.ServerVariables(name)%></TD></TR></TABLE>
<%Next%>
明天我们具体进修了ASP内建工具中的request工具,这也是ASP程序中利用最频仍的工具,但愿人人在课后多多理论。
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.
ASP教程之第七课:ASP内建工具Request
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
页:
[1]