ASP学习文档.docx
《ASP学习文档.docx》由会员分享,可在线阅读,更多相关《ASP学习文档.docx(76页珍藏版)》请在冰豆网上搜索。
ASP学习文档
ASP简介
ASP是什么?
∙ASP指ActiveServerPages(动态服务器页面)
∙ASP是运行于ISS之中的程序
∙IIS指InternetInformationServices(因特网信息服务)
∙IIS是Windows2000及Windows2003的免费组件
∙IIS同时也是WindowsNT4.0的可选组件
∙此可选组件可通过因特网下载
∙PWS的体积更小-不过拥有IIS的完整功能
∙PWS可在Windows95/98的安装CD中找到
ASP兼容性
∙ASP是微软公司推出的一种技术
∙运行IIS,需要WindowsNT4.0或更高的版本。
∙运行PWS,需要Windows95或者更高的版本。
∙ChiliASP是一种在非Windows操作系统上运行ASP的技术
∙InstantASP是另一种在非Windows操作系统上运行ASP的技术
ASP文件是什么?
∙ASP文件和HTML文件类似
∙ASP文件可包含文本、HTML、XML和脚本
∙ASP文件中的脚本可在服务器上执行。
∙ASP文件的扩展名是".asp"
ASP和HTML有何不同?
∙当浏览器请求某个HTML文件时,服务器会返回这个文件
∙而当浏览器请求某个ASP文件时,IIS将这个请求传递至ASP引擎。
ASP引擎会逐行地读取这个文件,并执行文件中的脚本。
最后,ASP文件将以纯HTML的形式返回到浏览器。
ASP能为你做什么?
∙动态地编辑、改变或者添加页面的任何内容
∙对由用户从HTML表单提交的查询或者数据作出响应
∙访问数据或者数据库,并向浏览器返回结果
∙为不同的用户定制网页,提高这些页面的可用性
∙用ASP替代CGI和Perl的优势在于它的简易性和速度
∙由于ASP代码无法从来浏览器端察看,ASP确保了站点的安全性。
∙优秀的ASP编程可将网络负载降至最低
重要事项:
由于ASP运行于服务器,那些显示ASP文件的浏览器无需支持脚本的运行!
在您的PC上运行ASP
如果没有一个外部的服务器,你可以在自己的PC上运行ASP。
要做点这一点,你就必须安装微软的PWS或者IIS。
ASP语法
在浏览器中通过查看源代码的方式是无法看到ASP源代码的,你只能看到由ASP文件输出的结果,而那些只是纯粹的HTML而已。
这是因为,在结果被送回浏览器前,脚本已经在服务器上执行了。
在我们的ASP教程中,每个例子都提供隐藏的ASP代码。
这样会使您更容易理解它们的工作原理。
基本的ASP语法规则
通常情况下,ASP文件包含着HTML标签,类似HTML文件。
不过,ASP文件也可包含服务器端脚本,这些脚本被<%和%>包围起来。
服务器脚本在服务器端执行,可包含合法的表达式、语句、或者运算符。
向浏览器写输出
response.write命令用来向浏览器写输出。
下面的例子向浏览器传送了一段文本:
"HelloWorld"。
<%
response.write("HelloWorld!
")
%>
还有一种response.write命令的简写方法。
下面的例子和上面的例子是等效的:
<%="HelloWorld!
"%>
VBScript
你可以在ASP中使用若干种脚本语言。
不过,默认的脚本语言是VBScript:
<%
response.write("HelloWorld!
")
%>
上面的例子向文档的body部分写入了文本"HelloWorld!
"。
JavaScript
如果需要使用JavaScript作为某个特定页面的默认脚本语言,就必须在页面的顶端插入一行语言设定:
<%@language="javascript"%>
<%
Response.Write("HelloWorld!
")
%>
注意:
与VBScript不同-JavaScript对大小写敏感。
所以你需要根据JavaScript的需要使用不同的大小写字母编写ASP代码
其他的脚本语言
ASP与VBScript和JScript的配合是原生性的。
如果你需要使用其他语言编写脚本,比如PERL、REXX或者Python,那就必须安装相应的脚步引擎。
重要事项:
因为脚本在服务器端执行,所以显示ASP文件的浏览器根本无需支持脚本。
ASP变量
变量用于存储信息。
假如在子程序之外声明变量,那么这个变量可被ASP文件中的任何脚本改变。
假如在子程序中声明变量,那么当子程序每次执行时,它才会被创建和撤销
实例:
声明变量
变量用于存储信息。
本例演示如何声明变量,为变量赋值,并在程序中使用这个变量
<%
dimname
name="DonaldDuck"
response.write("Mynameis:
"&name)
%>
声明数组
数组用于存储一系列相关的数据项目。
本例演示如何声明一个存储名字的数组。
<%
Dimfamname(5),i这句其实等价于数组famname(5)和变量i
famname(0)="JanEgil"
famname
(1)="Tove"
famname
(2)="Hege"
famname(3)="Stale"
famname(4)="KaiJim"
famname(5)="Borge"
Fori=0to5
response.write(famname(i)&"
")
Next
%>
循环生成HTML标题
如何循环生成6个不同的HTML标题。
<%
dimi声明变量i
fori=1to6
response.write("Header"&i&"")
next
%>
使用Vbscript制作基于时间的问候语
本例将根据服务器时间向用户显示不同的消息。
<%
dimh
h=hour(now())
response.write("
"&now())
response.write("(NorwegianTime)
")
Ifh<12then
response.write("GoodMorning!
")
else
response.write("Goodday!
")
endif
%>
使用JavaScript制作基于时间的问候语
本例同上,只是语法不同而已。
<%@language="javascript"%>
<%
vard=newDate()
varh=d.getHours()
Response.Write("
")
Response.Write(d+"(NorwegianTime)")
Response.Write("
")
if(h<12)
{
Response.Write("GoodMorning!
")
}
else
{
Response.Write("Goodday!
")
}
%>
变量的生存期
在子程序外声明的变量可被ASP文件中的任何脚本访问和修改。
在子程序中声明的变量只有当子程序每次执行时才会被创建和撤销。
子程序外的脚本无法访问和修改该变量。
如需声明供多个ASP文件使用的变量,请将变量声明为session变量或者application变量。
Session变量
Session变量用于存储单一用户的信息,并且对一个应用程序中的所有页面均有效。
存储于session中的典型数据是名称、id或参数。
Application变量
Application变量同样对一个应用程序中的所有页面均有效。
Application变量用于存储一个特定的应用程序中所有用户的信息。
ASP子程序
在ASP中,你可通过VBScript和其他方式调用自程序。
实例:
调用使用VBScript的子程序
如何从ASP调用以VBScript编写的子程序。
<%
subvbproc(num1,num2)
response.write(num1*num2)
endsub
%>
Youcancallaprocedurelikethis:
Result:
<%callvbproc(3,4)%>
Or,likethis:
Result:
<%vbproc3,4%>
调用使用JavaScript的子程序
如何从ASP调用以JavaScript编写的子程序。
<%@language="javascript"%>
<%
functionjsproc(num1,num2)
{
Response.Write(num1*num2)
}
%>
Result:
<%jsproc(3,4)%>
调用使用VBScript和JavaScript的子程序---?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
如何在一个ASP文件中调用以VBScript和JavaScript编写的子程序。
<%
subvbproc(num1,num2)
Response.Write(num1*num2)
endsub
%>
functionjsproc(num1,num2)
{
Response.Write(num1*num2)
}
Result:
<%callvbproc(3,4)%>
Result:
<%calljsproc(3,4)%>
子程序
ASP源代码可包含子程序和函数:
<%
subvbproc(num1,num2)
response.write(num1*num2)
endsub
%>
Result:
<%callvbproc(3,4)%>
将<%@language="language"%>这一行写到标签的上面,就可以使用另外一种脚本语言来编写子程序或者函数:
<%@language="javascript"%>
<%
functionjsproc(num1,num2)
{
Response.Write(num1*num2)
}
%>
Result:
<%jsproc(3,4)%>
VBScript与JavaScript之间的差异
当从一个用VBScript编写的ASP文件中调用VBScript或者JavaScript子程序时,可以使用关键词"call",后面跟着子程序名称。
假如子程序需要参数,当使用关键词"call"时必须使用括号包围参数。
假如省略"call",参数则不必由括号包围。
假如子程序没有参数,那么括号则是可选项。
当从一个用JavaScript编写的ASP文件中调用VBScript或者JavaScript子程序时,必须在子程序名后使用括号。
ASP表单和用户输入
在ASP中,你可通过VBScript和其他方式调用自程序。
实例:
使用method="get"的表单
如何使用Request.QueryString命令与用户进行交互。
Yourname:
<%
dimfname
fname=Request.QueryString("fname")
Iffname<>""Then
Response.Write("Hello"&fname&"!
")
Response.Write("Howareyoutoday?
")
EndIf
%>
使用method="post"的表单
如何使用Request.Form命令与用户进行交互。
Yourname:
<%
dimfname
fname=Request.Form("fname")
Iffname<>""Then
Response.Write("Hello"&fname&"!
")
Response.Write("Howareyoutoday?
")
EndIf
%>
使用单选按钮的表单
如何使用Request.Form通过单选按钮与用户进行交互。
a.asp页面
Pleaseselectyoufavoritecar:
Volvo
Saab
BMW
b.asp页面
<%
dimcars
cars=Request.Form("cars")
%>
value="Volvo">Volvo
value="Saab">Saab
value="BMW">BMW
<%
ifcars<>""then
Response.Write("
Yourfavoritecaris:
"&cars&"
")
endif
%>
用户输入
Request对象可用于从表单取回用户信息。
表单实例:
FirstName:
LastName:
用户输入的信息可通过两种方式取回:
Request.QueryString或Request.Form。
Request.QueryString
Request.QueryString命令用于搜集使用method="get"的表单中的值。
使用GET方法从表单传送的信息对所有的用户都是可见的(出现在浏览器的地址栏),并且对所发送信息的量也有限制。
如果某用户在上面的表单实例中输入"Bill"和"Gates",发送至服务器的URL会类似这样:
假设ASP文件"simpleform.asp"包含下面的代码:
Welcome
<%
response.write(request.querystring("fname"))
response.write(""&request.querystring("lname"))
%>
浏览器将显示如下:
WelcomeBillGates
Request.Form
Request.Form命令用于搜集使用"post"方法的表单中的值。
使用POST方法从表单传送的信息对用户是不可见的,并且对所发送信息的量也没有限制。
如果某用户在上面的表单实例中输入"Bill"和"Gates",发送至服务器的URL会类似这样:
假设ASP文件"simpleform.asp"包含下面的代码:
Welcome
<%
response.write(request.form("fname"))
response.write(""&request.form("lname"))
%>
浏览器将显示如下:
WelcomeBillGates
表单验证
只要有可能,就应该对用户输入的数据进行验证(通过客户端的脚本)。
浏览器端的验证速度更快,并可以减少服务器的负载。
如果用户数据会输入到数据库中,那么你应该考虑使用服务器端的验证。
有一种在服务器端验证表单的好的方式,就是将(验证过的)表单传回(post)表单页面,而不是转至不同的页面。
用户随后就可以在同一个页面中得到错误的信息。
这样做的话,用户就更容易发现错误了。
ASPCookie
cookie常用来对用户进行识别。
实例:
Welcomecookie
如何创建欢迎cookie。
<%
dimnumvisits
response.cookies("NumVisits").Expires=date+365
numvisits=request.cookies("NumVisits")
ifnumvisits=""then
response.cookies("NumVisits")=1
response.write("Welcome!
ThisisthefirsttimeyouarevisitingthisWebpage.")
else
response.cookies("NumVisits")=numvisits+1
response.write("Youhavevisitedthis")
response.write("Webpage"&numvisits)
ifnumvisits=1then
response.write"timebefore!
"
else
response.write"timesbefore!
"
endif
endif
%>
什么是Cookie?
cookie常用来对用户进行识别。
cookie是一种服务器留在用户电脑中的小文件。
每当同一台电脑通过浏览器请求页面时,这台电脑就会发送cookie。
通过ASP,您可以做到创建并取回cookie的值。
何创建cookie?
"Response.Cookies"命令用于创建cookie。
注意:
Response.Cookies命令必须位于标签之前。
在下面的例子中,我们会创建一个名为"firstname"的cookie,并向其赋值"Alex":
<%
Response.Cookies("firstname")="Alex"
%>
向cookie分配属性也是可以的,比如设置cookie的过期时间:
<%
Response.Cookies("firstname")="Alex"
Response.Cookies("firstname").Expires=#May10,2002#
%>
如何取回cookie的值?
"Request.Cookies"命令用户取回cookie的值。
在下面的例子中,我们取回了名为"firstname"的cookie的值,并把值显示到了页面上:
<%
fname=Request.Cookies("firstname")
response.write("Firstname="&fname)
%>
输出:
Firstname=Alex
带有键的cookie
如果某个cookie包含一系列多重的值,我们就可以说cookie拥有键(Keys)。
在下面的例子中,我们会创建一个名为"user"的cookie集。
"user"cookie拥有包含用户信息的键:
<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>
读取所有的cookie
请阅读下面的代码:
<%
Response.Cookies("firstname")="Alex"
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>
假设您的服务器将所有的这些cookie传给了某个