第二章 ASP基础
2.2.1 技术特点:无须编译、易于生成、独立于浏览器、面向对象、完成网站应用程序块、源代码不会外漏。
2.2.3 ASP提供的内建对象
- Request
- Response
- Server 控制ASP的执行环境。提供存取WEB服务器的方法和属性。
- Session 存储每个用户的相关信息。仅适用于一个用户,记录该用户的信息,为每个用户保留一个sessionID。
- Application ?? 用来为应用程序的所有用户设置属性,并且传递信息给用户。
- ObjectContext?? 提供在页面内进行事务处理的功能。
第三章 适用VBScript进行动态网页设计
3.1 VBScript语言特点:易学易用、以对象为基础。
在HTML中引用VBScript语言 例:
<script Language="VBScript" RunAt="Server">
sub show()
Response.Write("Hello!")
end sub
</script>
<body>
<%call show()%>
</body>
-----------------
<script language="vbscript" src="test.asp"></script>
-----------------
<body>
<form name="form1">
<input type="button" name="button1" value="单击">
<script for="button1" event="onClick" language="VBScript">
MsgBox "按钮被单击"
</script>
</form>
</body>
-----------------
3.2 VBScript中的变量
显示声明,例如:Dim count=10,Public varname,Privite varname。 隐式声明,例如:count=10
<%OPtion Explicit%> 则要求必须显示声明
数组,例:Dim myarray() mya(10) 共11个元素:mya(0) mya(1) ......... mya(10) Dim myarray(5,10)
Dim myarray(20)--->ReDim myarray(30) 将数组变量大小由21改为31,原有数据清空
--->ReDim Preserve myarray(30) 将数组变量大小由21改为31,原有数据保留
--->ReDim Preserve myarray(10) 将数组变量大小由21改为31,部分数据清除
使用数组变量array,可防止定义多个相同类型的变量。
变量命名规则:
- 长度<=255个字符
- 第一个符号必须是字母
- 变量名中间不能有"." 例如:user.name ×
- 在变量作用域内,变量名须是唯一的 注意变量存活期
3.3 VBScript中的运算符:双目运算符、单目运算符 又分为:算术运算符、比较运算符、逻辑运算符
3.4 VBScript中的数据类型
- Empty
- Null
- Boolean
- Byte
- Integer
- Currency
- Long
- Single
- Double
- Date(Time)
- String
- Object
- Err
VBScript中定义常量,例如: Const mystring="这是个常理"Const mystring="#6-1-97"
------------------------
if then
elseif then
elseif then
end if
------------------------
select case var
case exp1
..........
case exp2
..........
case else
...........
end select
------------------------
x=0
do while x<40
x=x+1
loop
------------------------
do
........
loop while ...
------------------------
do
x=x+1
loop while x<10
-----------------------
do until ...
.............
loop
-----------------------
do
............
loop until ...
-----------------------
do until x<10
x=x+1
loop
-----------------------
do
................
loop until x<10
-----------------------
while ...
............
wend
-----------------------
for i=0 to 9 step 2
next
----------------------
for i=9 to 0 step -2
next
---------------------
email=request("email")
names=split(email,"@")
if ubound(names)<>1 then 'ubound()函数返回数组的最大下标
response.write"邮件格式错误"
response.end()
end if
for each name in names
if len(name)<=0 then
response.write"邮件格式错误"
response.end()
end if
next
---------------------
for each name in names
if ...
exit for
end if
next
----------------------
判断邮件格式是否正确
chkemal = true
names = split(email, " @ " )
if ubound(names) <> 1 then
chkemail = false
exit function
end if
for each name in names
if len(name) <= 0 then
chkemail = false
exit function
end if
ext
end function
第四章. request和response对象
- request,属性:TotalBytes?? 获取客户端接收的所有数据的字节大小,而counter事指定一个变量来接收客户端在请求中发送的字节数。实际编程中很少用。
- request,方法:BinaryRead?? 以二进制的方法来获取客户端传送的数据,不常用。
- request,集合:querystring、form、serverariable、cookies、clientcertificate
----------------------------------------------------
TotalBytes引用的一般格式,如下:
Counter=Request.TotalBytes
下面的ASP脚本用变量Counter获取Request数据集合中的字节数。
<%
Dim bytecount
bytecount=Request.TotalBytes
%>
-----------------------------------------------------
Variant参数包含由该方法返回的无符号的数组。
Count参数在执行前,指定要从客户端读取的字节数。此方法返回后,将包含从客户机成功获取的字节数。其返回值为一个数组,该方法需要一个参数,既每次读取字节的大小。BinaryRead引用的一般格式,如下:
Variant=Request.BinaryRead(count)
下面的ASP脚本是用binread数组来存储,用BinaryRead方法读取的数据。
<%
Dim binread
Dim bytecount
bytecount=Request.TotalBytes
binread=Request.BinaryRead(bytecount)
%>
-----------------------------------------------------
- querystring
- form
- serverariable 取得web服务器端的环境变量
- cookies
- clientcertificate?? 获取客户端的身份权限数据
----------------------------------------------------
例如:querystring 获取同名表单元素数值
城市1:<input type=text name=city size="20"><br />
城市2:<input type=text name=city size="20"><br />
城市3:<input type=text name=city size="20"><br />
<%
for each item in requestquertstring("city")
response.write item&"<br />"
next
%>
--------------------------------------------------
connection对象的Exectte()方法能够执行SQL语句,那么为什么还要使用Command对象哪?
这是因为使用Command对象有一个主要的优点,就是可以调用存储过程。
创建存储过程:
Create PROCEDURE sp_mypro
AS
select ID,title from course
Go
引用存储过程:
.....连接数据库..........
set cmd=server.createobject("adodb.command")
cmd.activeconnection=conn
cmd.commandtype=adcmdstoredproc
cmd.commandtext="sp_mypro"
set rs=cmd.execute()