笔记三

1.ASP内部对象可以分为下面几个:RequestResponseSessionApplicationServer 
       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=<%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”)   ‘获得Cookiesuser_name中的值,当然,你的Cookies要有这个变量,如没有,可以先存储进去 
       Response.Cookies(“user_name”)=”shipfi” 
       TotalBytes  -------   
得到客户端响应数据的字节大小,如: 
       
<% Response.Write Request.TotalBytes ‘输出客户端响应数据的字节的大小 %> 
       BinaryRead   -------   
可以以二进制方式获取客户端用Post方法提交的数据:如
       
<% Response.Write Request.BinaryRead(Request.TotalBytes) %> 

 

3.Response对象   (向客户端输出信息) 
       
Response对象的方法有:WriteRedirectBinaryWriteClearEndFlush。 
       Response对象的属性有:BufferContentType 
       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
属性  ------   设置服务器是否将页面先输出到缓冲区,取值可以为TRUEFALSE,如 
       <% 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的属性有:SessionIDTimeoutSessionID是存储用户的Session ID,TimeOut则是指Session的有效期时长。 
       Session的方法只有一个,Abandon,它是清除Session对象。 
       Session的事件有两个:Session_OnStartSession_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的属性有SciptTimeoutServer对象的方法有CreateObjectHTMLEncodeURLEncodeMapPathExecuteTransfer. 
       ScriptTimeout
用来规定脚本文件执行的最长时间。如果超过规定时间,脚本还没处理完,则停目执行。 
       CreateObjectServer对象中最重要的方法,主要用于创建组件、应用对象或脚本对象的实例,在存取数据库和存取文件时经常用到。如: 
       <% 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="<%=rs("URL")%>" target="_blank" ><% =rs("URL") %></a></td>

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

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

       <td><a href="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的连接,不设置数据源,可以用到DriverDbq参数,如下 
       <% 
              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   ---   
设置连接数据库的权限,一般有0123四种权限,分别为末定义、只读、只写、可读可写,如:

<% 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为默认,表示无法确定,程序本身去分析它;1SQL语句;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
为影响的行数,第二参数没指定,第三参数表示为CommandType1.

                     %>

         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="提交"> 
       
上面是在表单中载下来的一些项,基中nameHobby的有五项,如果直接用Request.Form(“hobby”)的话,虽然也能一一列举出来,但是要逗号输出。另外,其中有个type类型和checkbox类型的,text类型不写的话,他还会在最前面加一个逗号,意思也不是很明显。如果我们用indexCount来控制输出的话,意思就明显多了,如下: 
       <% 
              for i=1 Request.Form(“hobby”).Count   ‘Count
表示名字hobby被选中的有几项。 
                     Response.Write Request.Form(“hobby”)(i)  ‘表示输出第几项。 
              Next 
       %> 
       
以上代码可以见E:\TheWeb\Client\main.asp 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值