asp内置对象

来源:互联网 发布:app软件需求说明书 编辑:程序博客网 时间:2024/06/07 07:15

ASP基础知识

1.ASP内部对象可以分为下面几个:Request、Response、Session、Application、Server 
    Request对象的功能是获得用户端的数据(包括用户的表单,用户点击的超链接,用户Cookies,服务器环境变量信息和客户端身份验证)。 

    Response对象的功能是向客户端输出信息(包括显示一般页面,引导用户去另一个页面,输出二进制信息,清输用户缓存,终止ASP程序,送出缓存信息,设置缓冲信息,设置用户Cookies等) 

    Session对象是用来记载特定客户的信息。(包括设置特定用户的信息,获得特定用户的信息) 

    Application对象是用来记载所有客户信息,也就是说,这些信息对所有客户都是共享的。(包括设置和获得所有客户的信息,在写信息时加锁与写完后的解锁功能) 

    Server对象是用来创建COM对象和scripting信息(包括创建对象、应用对象、脚本、脚本对象的实例,还可以转化字符串,获得文件路径,执行asp程序等) 

2.Request对象:(获取客户端的信息)
    语法:Request[.数据集合|属性|.方法] (变量或字符串) 
    如:Request.Form(“user_name”)   Request.QueryString(“user_name”) 
    Request对象的获取方法有: 
    QueryString-------查询字符串读取用户提交的数据,一般提交的信息写在超级链接中:如: 
    <a href = "4-1.asp?name=<%=use_name%>&age=&lt;%Response.write use_age%>">显示</a>   ‘In 4-2.asp 变量前的=符号与Response.Write功能相同
    Response.write("your name is:")&Request.QueryString("name")&"<p></p>"   ‘In 4-1.asp 查询提交上来的数据值 

    Response.Write("your age is :")&Request.QueryString("age") 

    Form-------取得客户端在FORM表单中所输入的信息. 想简洁的话,可以省去.Form,直接用Request(”User_name”)

    ServerVariables-------取得服务器端环境变量信息,环境变量有好多属性,如: 
    Request.ServerVariables(“ALL_HTTP”)   客户端浏览器所发出的HTTP标题文件 
    Request.ServerVariables(“AUTH_TYPE”) 当访问被保护的脚本时,用以判断该用户是否合法 
    Request.ServerVariables(“CONTENT_LENGTH”) 发送到客户端的文件长度 
    Request.ServerVariables(“CONNTENT_TYPE”) 发送到客户端的文件类型 
    Request.ServerVariables(“LOCAL_ADDR”) 服务器端的IP地址 
    Request.ServerVariables(“LOGON_USER”) 记录客户端的信息 
    Request.ServerVariables(“QUERY_STRING”)   HTTP请求后?后的内容 
    Request.ServerVariables(“REMOTE_ADDR”)     客户端IP地址 
    Request.ServerVariables(“REMOTE_HOST”)     客户端主机名 
    Request.ServerVariables(“REQUEST_METHOD”)     数据请求的方法,可以是GET,HEAD,POST等方法 
    Request.ServerVariables(“script_NAME”)     当前ASP文件的虚拟路径 
    Request.ServerVariables(”SERVER_NAME”)     服务器端的IP地址或名称 
    Requst.ServerVariables(“SERVER_POST”)       用HTTP作数据请求时,所用到的服务器端的端口号 
    Requst.ServerVariables(“URL”)   URL的相对网址 

Cookies-------取得客户端浏览器的Cookies信息,如: 
    Response.Write Request.Cookies(“user_name”)   ‘获得Cookies中user_name中的值,当然,你的Cookies要有这个变量,如没有,可以先存储进去 
    Response.Cookies(“user_name”)=”shipfi” 
    TotalBytes-------得到客户端响应数据的字节大小,如:
    <% Response.Write Request.TotalBytes ‘输出客户端响应数据的字节的大小 %> 
    BinaryRead-------可以以二进制方式获取客户端用Post方法提交的数据:如: 
    <% Response.Write Request.BinaryRead(Request.TotalBytes) %> 

3.Response对象(向客户端输出信息)
    Response对象的方法有:Write、Redirect、BinaryWrite、Clear、End、Flush。 
    Response对象的属性有:Buffer、ContentType 
    Write------向客户端显示Write后面的内容 
    Redirect------引导客户至另一个URL位置,如:
    <% Response.Redirect 'http://www.sina.com.cn'   ‘引导至新浪网 
    Response.Redirect “other.asp”         ‘引导至站内其它网页 
    theURL = 'http://www.pku.edu.cn'     
    Response.Redirect theURL       ‘引导至变量表示的网址 
    %> 
    END-------停止处理ASP程序,如:
    <% Response.Write “这是第一句” 
      Response.End   ‘终止ASP程序 
      Response.Write “这是第二句”   ‘这名将不被处理 
    %> 
    Buffer属性------设置服务器是否将页面先输出到缓冲区,取值可以为TRUE或FALSE,如: 
    <% Response.Buffer = TRUE %> 
    BinaryWrite方法------输出二进制信息,它不进行任何二进制转换,直接输出。如: 
    Response.BinaryWrite 变量或字符串 
    Cookies方法------保存值到用户的Cookies。如:
    Response.Cookies(“user_name”) = “shipfi” 
    Response.Cookies(“user_name”).Expires = #2005-4-1# ‘为Cookies设置有效期 
    Response.Cookies(“book”)(“name) = “windows programming” ‘类似数组的方式存储Cookies 
    Response.Cookies(“book”)(“auther”) = “Petzod” 
    关于获取Cookies,即用Request.Cookies后加变量名即可 

4.Session对象 (记载特定客户的信息) 
    Session是针对一个客户的,不同的客户用不同的Session,而Application对象则是针对全部客户的,全部的客户共享一个Application对象,这是它们两个不同之处,至于其它的,则相差不大。 
    Session的属性有:SessionID和Timeout,SessionID是存储用户的Session ID,而TimeOut则是指Session的有效期时长。 
    Session的方法只有一个,Abandon,它是清除Session对象。 
    Session的事件有两个:Session_OnStart和Session_OnEnd,分别是指在一个Session对象开始前调用指定程序,或在一个Session对象结束后,调用指定程序。 
    Session事件一般在Global.asa文件中指定。 
    用Session存储信息:可以如下: 
    <% Session(“user_name”) = hisname 
        Session(“age”) = 23 
        Session(“School”)=”BeiJing Colloge” %> 
    以后获取Session中存储的信息的话,则可以如下: 
    <% Dim name,age,school 
        name = Session(“user_name”) 
        age = Session(“age”) 
        school = Session(“School”) %> 
    强制清除Session中的信息: 
    一般Session到期后会自动清除(到期时间可在Session.TimeOut中指定,默认为20分钟),但到期前可以用Abandon方法强行清除。如: 
    Session.Abandon 

5.Aplication对象,(记载所有客户信息) 
    Appliation中的信息是为所有客户共享的,它只有一份。所以,一个客户更改Applciation中的数据,其它的客户再查看该数据时会看到更改后的值。 
    为了防止两个用户同时更改数据,一般Applciation在更改数据过过程中会Lock锁住数据,修改完后再解锁UnLock,如: 
    <% Application.Lock 
      Application(“show”) = Request(“pronunciation”)&<”br”>&Application(“show”) 
      Application.Unlock %> 

6.Server对象 (处理服务器上的特定任务) 
    Server的属性有SciptTimeout,Server对象的方法有CreateObject、HTMLEncode、URLEncode、MapPath、Execute、Transfer. 
    scriptTimeout用来规定脚本文件执行的最长时间。如果超过规定时间,脚本还没处理完,则停目执行。 
    CreateObject是Server对象中最重要的方法,主要用于创建组件、应用对象或脚本对象的实例,在存取数据库和存取文件时经常用到。如: 
    <% Set db=Server.CreateObject(“ADODB.Connection”) ‘建立数据库实例 %> 
    ExeCute用来停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行ExeCute方法后面的语句。如: 
    Server.ExeCute(“6-4.asp”) 
    注意,与Response.Redirect不同的是,Redirect执行完新的网页后,并不会返回原网页再执行Redirect后的语句,但 ExeCute不同,它会返回原网页执行ExeCute后的语句。Redirect方法可以转向一个网页和其它网站,但ExeCute方法一般只能转到同一个应用程序的其它文件。

7.利用数据源和不利用数据源连接数据库 
利用数据源连接数据库方便,简单。但是缺点是要在服务器上设置数据源,如果程序从一个服务器移植到另一个服务器,还需要在另一台服务器上设置数据源,比较麻烦。不利用数据源的话,可以免去上面的麻烦,但是连接时自己要设定参数。下面是它们的示例: 
-----利用数据源连接(首先要自己要用ODBC配置好数据源) 
<%   '利用数据源连接数据库 

dim db 

set db = Server.CreateObject("ADODB.Connection") 

db.Open "db1" 

%> 
------不利用数据源连接 (无需配置ODBC数据源) 
<%   '不利用数据源连接数据库 

Dim db 

set db = Server.CreateObject("ADODB.Connection") 

db.Open "Dbq="e:/theweb/db1.mdb;driver={Microsoft Access Driver (*.mdb)}"   ‘Driver和括号之间有一个空格 

%> 

8.实例:连接数据库并设置查询语句,并用表格显示出来。 
<%   '利用数据源连接数据库 

dim db 

set db = Server.CreateObject("ADODB.Connection") 

db.Open "userdb"   ‘用数据源连接 

Dim strSql,rs 

strSql = "Select * from wwwlink order by link_id desc" 

Set rs = db.Execute(strSql)   '记住:是db.Execute,而不是Server.Execute 

%> 

<table width="75%" align = "center" border="0" cellpadding="0" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#000000"> 

<% Do while Not rs.Eof %> 

<tr bgcolor="#FFFFFF"> 

<td><%=rs("name") %></td> 

<td><a href="/oblog/"<%=rs("URL")%>" target="_blank" ><% =rs("URL") %></a></td> 

<td><% =rs("intro") %></td> 

<td><% =rs("submit_date") %></td> 
<td><a href="/oblog/"delete.asp?link_id=<%=rs("link_id")%>">删除</a></td> 

<td><a href="/oblog/"update.asp?link_id=<%=rs("link_id")%>">更新</a></td> 

</tr> 

<% 
rs.MoveNext 

Loop 
%> 

9.Server中的Connection对象 
    Connection对象是用来连接数据库的。建立Connection对象的方法如下: 
    Dim db 
    set db=Server.CreateObject(“ADODB.Connection”) 
    Connection对象可以有Execute方法,可以用来执行SQL语名命令,但该方法有局限性:如: 
    db.Execute(“Select * from wwwlink”) 
    Connection对象可以有Open方法,可以用来打开数据库,如: 
    db.Open “Dbq=e:/theweb/dbq.mdb; Driver={Microsoft Access Driver (*.mdb)}” 
    以上用到了Open方法的两个参数,一个是Dbq参数,一个是Driver参数。还可以有其余的参数,如下: 
    Dsn   ---     ODBC数据源名称 
    User   ---     数据库登录帐号 
    Password   ---   数据库登录密码 
    Driver   ---   数据库类型(驱动程序) 
    Dbq     ---   数据库的物理路径 
    Provider   ---   数据提供者 
    在Access中创建基于ODBC的连接,不设置数据源,可以用到Driver和Dbq参数,如下: 
    <% 
    Dim db 
    set db = Server.CreateObject(“ADODB.Connection”) 
    db.Open “Dbq=e:/theweb/db1.mdb; Driver={Microsoft Access Driver (*.mdb)}” 
    %> 
    但是,考虑到程序移植后的路径问题,一般在Dbq参数中不直接写绝对路径,而是用Server.mappath将虚拟路径转化为实际路么,如: 
    db.Open “Dbq=”&Server.Mappath(“db1.mdb”)&”; Driver={Microsoft Access Driver (*.mdb)}” 
    在Access中创建基于ODBC的连接,设置数据源,可以用DSN参数,如下: 
    <% 
    Dim db 
    Set db = Server.CreateObject(“ADODB.Connection”) 
        db.Open(“DSN=userdb”)         ‘Dsn可以省略,直接可写成db.Open (“userdb”) 

    %> 
    在Access中创建基于OLE DB的连接,如下: 
    <% 

    Dim db 

    Set db = Server.CreateObject(“ADODB.Connection”) 
    db.Open “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/theweb/db1.mdb” 

    %> 
Connection属性: 
Attributes   ---   设置Connection对象控制事务处理时的行为 
CommandTimeOut   ---   Execute执行的最长时间,默认为30秒,如: 

<% db.CommandTimeout=60 %> 
ConnectionString   ---   指定Connection对象的数据库连接信息,如: 
    <% Dim db 
        Set db = Server.CreateObject(“ADODB.Connection”) 
        db.ConnectionString = “dbq=”&Server.Mappath(“db1.mdb”)&”;Driver={Microsoft Access Driver (*.mdb)}” 
        db.Open 
    %> 

ConnectionTimeout   ---   Open方法与数据库链接的执行的最长时间,默认为15秒,如: 

<% db.ConnectionTimeout = 30 %> 

CursorLocation   ---   控制光标的类型 
DefaultDatabase   ---   指定Connection对象的缺省数据库名称 
IsolationLevel   ---   指定Connection对象事务处理的时机 
Mode   ---   设置连接数据库的权限,一般有0,1,2,3四种权限,分别为末定义、只读、只写、可读可写,如: 

<% Dim db 

    Set db = Server.CreateObject(“ADODB.Connection”) 

    db.Mode = 1   ‘对该数据的操作为只读

    db.Open “userdb”
%> 

Provider   ---   设置Connection对象内定的数据库管理程序名称 
Version   ---   显示ADO对象的版本信息,如: 
    <% Response.Write db.Version %> 
Connection方法: 
Open   ---   建立与数据库的连接,只有与数据库连接之后,才可以执行各种操作。上面已举例 

Close   ---   关闭与数据库的连接,如: 

    <% db.Close 

        Set db = nothing 

    %> 

Execute   ---   执行数据库查询(可执行各种操作),它的语法有两种,一种是可以返回记录集,一种是不返回记录集,如 

    <% ‘返回记录集的数据库查询 

Dim st 

    st = db.Execute(“Select * from wwwlink”)   ‘返回记录集,st为查询后的记录集,它为一指针,指向第一行记录集 

    Do while Not rs.Eof 

    //....do something in st 
    st.MoveNext ‘指向下一行的记录集 

    Loop 

    %> 
    <% ‘不返回记录集的数据库的查询 
        strSql = “Delete From wwwlink where name=’李政’” 
        db.Execute strSql,number   ‘number返加此次操作影响记录的条数。 
        Response.Write “共删除”&number&”条记录” 
    %> 

BeginTrans ---   开始事务处理 

CommitTrans   ---   提交事务处理结果 

RollbackTrans   ---   取消事务处理结果 

10.Connection对象中的Error对象:(数据库错误的信息) 

    Errors集合的属性 --- Connection对象.Errors.Count 可以获得数据库是否发生了错误,如果Count等于0,则表示没有错误发生,大于0,表示有错误发生。 

    <% 
    if db.Errors.Count=0 then 

      Db.CommitTrans   ‘如果无错误,提交事务 
      else 

      Db.RollbackTrans       ‘有错误,取消事务处理结果 
      end if 
    %> 

    Errors集合的方法:它有两个方法,一个是Item,一个是Clear,前者用来建立Error对象,后者用来清除Errors集合中所有的Error对象。如: 
    <% Set err = db.Errors.Item(0) %> ‘设置一个Error对象,代表Errors集合中第0个错误,创建对象后,就可以分析Error对象的各种属性了。 
    <%db.Errors.Clear %>   ‘清除掉Errors集合中所有的Error对象。 

    Error对象的属性。 要区别Error对象和Errors集合的区别,一个Error对象是指Errors错误集合中的一个实体,有了Error对象,就可以对该错误进行各种分析和操作。它的属性主要有Number(错误编号)、Description(错误描述)、Source(发生错误之原因)、HelpContext(错误的帮助提示文字)、 
    HelpFile(错误的帮助提示文件)、NativeError(数据库服务器产生的原始错误) 

11.Command对象 (命令对象,是对数据库执行命令的对象,可以执行对数据库的查询,它可以添加、删除、修改记录等操作) 
    Command 对象是介于Connection对象和Recordset对象之间的一个对象,它主要通过传递SQL指令,对数据库提出操作请求,把得到的结果返给 Recordset对象。Command对象依赖于Connection对象,因为Command对象必须经过一个已经建立的Connection对象才能发生SQL指令。 
    建立Command对象:语法如下: 
    Set Command对象 = Server.CreateObject(“ADODB.Command”) 
    通过Connection对象建立Command对象: 
    <% Dim db,cmd 
      Set db=Server.CreateObject(“ADODB.Connection”) 
      db.Open “addr” 
      Set cmd=Server.CreateObject(“ADODB.Command”) 
      cmd.ActiveConnection = db 
    %> 
    不通过Connection对象建立Command对象 (其实还是要通过Connection对象的,只不过Connection对象隐藏起来罢了) 
    <% Dim cmd 
    set cmd = Server.CreateObject(“ADODB.Command”) 
    cmd.ActiveConnection = “addr”   ‘addr是数据源 
    %>   ‘注意,在此不能操纵Connection对象的一些功能。 
    Command对象的属性: 
    ActiveConnection   ---   指定Connection连接对象属性 

    CommandText   ---   指定数据库查询信息,可以有SQL语句,数据表名,查询名或存储过程名,具体是什么在CommandType中指定,如: 

    <% cmd.CommandType = 2   ‘指定查询信息为表名 

cmd.CommandText = “wwwlink”   ‘数据表名 

cmd.CommandType=1 ‘指定查询信息为SQL语句 
cmd.CommandText = “Select * from wwwlink “ ‘SQL语句 

    CommandType   ---   指定数据库查询信息的类型,其中-1为默认,表示无法确定,程序本身去分析它;1为SQL语句;2为表名;3为查 

询名或存储过程名。 

    Prepared ---   指定数据查询信息是否要先进行编译,存储。如: 
    <% cmd.Prepared = True %> 

    Command对象的方法: 
        有两个方法,一个是Execute,另一个是CreateParameter,前者表示执行数据库的各种操作,后者表示用来创建一个Parameter子对象。 
    Execute方法   ---   执行数据库的各种操作,语法如下: 

    Command对象.Execute number,parameters,options   ‘注意,有三个参数。如: 

    <% ... 
    Set cmd = Server.CreateObject(“ADODB.Command”) 
    cmd.ActiveConnection = db 

    ‘下面执行查询操作(用SQL语句)

    cmd.CommandText = “Select * from wwwlink” 

    cmd.CommandType = 1 
    Set rs = cmd.Execute   ‘Execute返回查询结果集 
    ‘下面执行查询操作(用表名) 
    cmd.CommandText = “wwwlink” 
    cmd.CommandType=2 
    Set rs = cmd.Execute 

    ‘下面执行删除操作 

      cmd.CommandText = “Delete From wwwlink” 

      cmd.CommandType = 1 

      cmd.Execute 

    %> 
    Command三个参数中number表示返回本次操作符合条件的记录总数,parameters用来输入查询参数数组,options可以设定CommandType类型。如 
  上面的删除操作可以用下面来表示,并可以返回影响的行数。 

  <% 

    cmd.CommandText = “Delete From wwwlink” 
    cmd.Execute (number,,1) ‘number为影响的行数,第二参数没指定,第三参数表示为CommandType为1. 

  %> 

  CreaParameter行为在后面讨论

12.ASP中的时间函数 
    Now()函数同时返回当前的日期和时间。Date()函数返回当前的日期,Time()函数返回当前的时间。 
    Year(Date())返回当前的年份,Date后面的括号可以省略。Month(Date)返回当前的月份,Day(Date)返回这个月的号数,WeekDay(Date)函数返回星期几。 
    WeekDay默认是从星期天开始的,也就是说,星期天返回”1”,星期一返回”2”,可以在后面指定基数,如WeekDay(Date,vbMonday) 
    Year,Month,Day,WeekDay后面可以指定日期常数,常数的格式可以有:WeekDay(#12/25/2000#)或WeekDay(“12-25-2000”) 
    可以返回日期的字符串,如MonthName(date),如果今天是四月,它会返回”April”,WeekDayName(Date),如今天是星期一,它会返回Monday 
    Hour(Time)返回当前的小时,Minute(Time)返回当前的分钟,Second(Time)返回当前的秒数. 
    可以指定参数为常数,如Minute(#12:34:15#),或Minute(“12:34:15”)它返回34, 
    把字符串转化成日期格式的函数为Datevalue()。 
    可以把日期和时间作加法和减法运算,它们用DateAdd函数,如DateAdd(“ww”,6,Date),意思是说把当前的日期加上六个星期。DateAdd(“s”,15,Time)意思是 
    把当前的时间加上15秒。 
    DateAdd的第一个参数可以有:”yyyy”表示年,”q”表示季度,”m”表示月,”y”/”d”/”w”表示天,”ww”表示星期,”h”表示小时,”m”表示分钟,”s”表示秒。 
    可以用DateDiff函数表示时间的间隔: 
    如DateDiff(“d”,”1/1/1998”,Date)表示1998-1-1到今天的天数。 

13.格式化货币函数FormatCurency() 
    如:ad_revenue=3000 formatCurrency(ad_revenue)在中国则为¥3,000.00。计算机区域不同有不同的设置。在美国则为$3,000.00 

14.Request.Form语法解释 

    Request.Form(element) [ (index) | Count ] 

    其中element我们知道是表单中元素的名称,但index,Count究竟是什么意思呢?index表示如果一个元素名称有多个实例,那么index就是其中的第几项, 
    而Count表示得则是这个名字有多少个实例。比如: 

  <input type="text" name="hobby"> 
  <input type="checkbox" name="hobby" value="足球">足球</p> 
  <input type="checkbox" name="hobby" value="蓝球">蓝球 </p> 
  <input type="checkbox" name="hobby" value="乒乓">乒乓 </p> 
  <input type="checkbox" name="hobby" value="排球">排球 </p> 
  <input type="submit" name="Submit" value="提交"> 

    上面是在表单中载下来的一些项,基中name为Hobby的有五项,如果直接用Request.Form(“hobby”)的话,虽然也能一一列举出来,但是要逗号输出。另外,其中有个type类型和checkbox类型的,text类型不写的话,他还会在最前面加一个逗号,意思也不是很明显。如果我们用 index加Count来控制输出的话,意思就明显多了,如下: 
    <% 
    for i=1 Request.Form(“hobby”).Count   ‘Count表示名字hobby被选中的有几项。 
    Response.Write Request.Form(“hobby”)(i) ‘表示输出第几项。 
    Next 
    %>

原创粉丝点击