ASP 文件可包含文本、 HTML 标签和脚本。ASP 文件中的脚本可在服务器上执行。
在学习之前,应具备的知识:
在继续学习之前,您需要对以下知识有基本的了解:
· HTML / XHTML
· 脚本语言,比如 JavaScript 或者 VBScript
如果希望学习上面的项目,请在我们的 首页 访问这些教程。
ASP 是什么?
· ASP 指 Active Server Pages (动态服务器页面)
· ASP 是一项微软公司的技术
· ASP 是在 IIS 中运行的程序
· IIS 指 Internet InformationServices (Internet 信息服务)
· IIS 是 Windows 2000 及 Windows 2003 的免费组件
· IIS 同时也是 Windows NT 4.0 的可选组件
· 此可选组件可通过因特网下载
· PWS 的体积更小 - 不过拥有 IIS 的完整功能
· PWS 可在 Windows 95/98 的安装 CD 中找到
ASP 兼容性
· 运行 IIS,需要 Windows NT 4.0 或更高的版本。
· 运行 PWS ,需要 Windows 95 或者更高的版本。
· 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 文件!
如何在 Windows 7 及 Windows Vista 上安装 IIS
请根据以下四个步骤来安装 IIS:
1. 从开始菜单打开控制面板
2. 双击“程序和功能”
3. 点击“打开或关闭 Windows 功能”
4. 选择 “Internet 信息服务”的复选框,然后点击确定
在您安装完成 IIS 之后,请确保安装所有补丁包(运行 Windows 更新)。
基本的 ASP 语法规则
通常情况下,ASP 文件包含 HTML 标签,类似 HTML 文件。不过,ASP 文件也能够包含服务器端脚本,这些脚本被分隔符 <% 和 %> 包围起来。
服务器脚本在服务器上执行,可包含合法的表达式、语句、或者运算符。
向浏览器写输出
response.write 命令用来向浏览器写输出。下面的例子向浏览器传送了一段文本:"Hello World"。
<html>
<body>
<%
response.write("HelloWorld!")
%>
</body>
</html>
还有一种 response.write 命令的简写方法。下面的例子和上面的例子是等效的:
<html>
<body>
<%="HelloWorld!"%>
</body>
</html>
在 ASP 中使用VBScript
你可以在 ASP 中使用若干种脚本语言。不过,默认的脚本语言是 VBScript:
<html>
<body>
<%
response.write("HelloWorld!")
%>
</body>
</html>
上面的例子向文档的 body 部分写入了文本 "Hello World!"。
在 ASP 中使用JavaScript
如果需要使用 JavaScript 作为某个特定页面的默认脚本语言,就必须在页面的顶端插入一行语言设定:
<%@language="javascript"%>
<html>
<body>
<%
Response.Write("HelloWorld!")
%>
</body>
</html>
注意:与 VBScript 不同 - JavaScript 对大小写敏感。所以你需要根据 JavaScript 的需要使用不同的大小写字母编写 ASP 代码。
ASP 变量
变量用于存储信息。
假如在子程序之外声明变量,那么这个变量可被 ASP 文件中的任何脚本改变。假如在子程序中声明变量,那么当子程序每次执行时,它才会被创建和撤销。
实例:
变量用于存储信息。本例演示如何声明变量,为变量赋值,并在程序中使用这个变量
<html>
<body>
<%
dim name
name="Donald Duck"
response.write("My name is: "& name)
%>
</body>
</html>
数组用于存储一系列相关的数据项目。本例演示如何声明一个存储名字的数组。
<html>
<body>
<%
Dim fname(5),i
fname(0) = "George"
fname(1) = "John"
fname(2) = "Thomas"
fname(3) = "James"
fname(4) = "Adrew"
fname(5) = "Martin"
For i = 0 to 5
response.write(fname(i) & "<br />")
Next
%>
</body>
</html>
如何循环生成 6 个不同的 HTML 标题。
<html>
<body>
<%
dim i
for i=1 to 6
response.write("<h" & i & ">Header "& i & "</h" & i & ">")
next
%>
</body>
</html>
本例将根据服务器时间向用户显示不同的消息。
<html>
<body>
<%
dim h
h=hour(now())
response.write("<p>"& now())
response.write(" (Beijing Time)</p>")
If h<12 then
response.write("Good Morning!")
else
response.write("Good day!")
end if
%>
</body>
</html>
本例同上,只是语法不同而已。
<%@ language="javascript"%>
<html>
<body>
<%
var d=new Date()
var h=d.getHours()
Response.Write("<p>")
Response.Write(d + " (BeijingTime)")
Response.Write("</p>")
if (h<12)
{
Response.Write("Good Morning!")
}
else
{
Response.Write("Good day!")
}
%>
</body>
</html>
变量的生存期
在子程序外声明的变量可被 ASP 文件中的任何脚本访问和修改。
在子程序中声明的变量只有当子程序每次执行时才会被创建和撤销。子程序外的脚本无法访问和修改该变量。
如需声明供多个 ASP 文件使用的变量,请将变量声明为 session 变量或者 application 变量。
Session 变量
Session 变量用于存储单一用户的信息,并且对一个应用程序中的所有页面均有效。存储于 session 中的典型数据是姓名、id 或参数。
Application 变量
Application 变量同样对一个应用程序中的所有页面均有效。Application 变量用于存储一个特定的应用程序中所有用户的信息。
ASP 子程序
如何从 ASP 调用以 VBScript 编写的子程序。
<html>
<head>
<%
sub vbproc(num1,num2)
response.write(num1*num2)
end sub
%>
</head>
<body>
<p>您可以像这样调用一个程序:</p>
<p>结果:<%call vbproc(3,4)%></p>
<p>或者,像这样:</p>
<p>结果:<%vbproc 3,4%></p>
</body>
</html>
如何从 ASP 调用以 JavaScript 编写的子程序。
<%@ language="javascript"%>
<html>
<head>
<%
function jsproc(num1,num2)
{
Response.Write(num1*num2)
}
%>
</head>
<body>
<p>
结果:<%jsproc(3,4)%>
</p>
</body>
</html>
调用使用 VBScript 和 JavaScript 的子程序
如何在一个 ASP 文件中调用以 VBScript 和 JavaScript 编写的子程序。
<html>
<head>
<%
sub vbproc(num1,num2)
Response.Write(num1*num2)
end sub
%>
<script language="javascript"runat="server">
function jsproc(num1,num2)
{
Response.Write(num1*num2)
}
</script>
</head>
<body>
<p>结果:<%call vbproc(3,4)%></p>
<p>结果:<%call jsproc(3,4)%></p>
</body>
</html>
ASP 表单和用户输入
Request.QueryString和 Request.Form 命令可用于从表单取回信息,比如用户的输入。
实例:
如何使用 Request.QueryString 命令与用户进行交互。
如何使用 Request.Form 命令与用户进行交互。
如何使用 Request.Form 通过单选按钮与用户进行交互。
用户输入
Request 对象可用于从表单取回用户信息。
HTML 表单实例
<form method="get"action="simpleform.asp">
<p>First Name: <inputtype="text" name="fname" /></p>
<p>Last Name: <inputtype="text" name="lname" /></p>
<input type="submit"value="Submit" />
</form>
用户输入的信息可通过两种方式取回:Request.QueryString 或 Request.Form。
Request.QueryString
Request.QueryString 命令用于搜集使用 method="get" 的表单中的值。使用 GET 方法从表单传送的信息对所有的用户都是可见的(出现在浏览器的地址栏),并且对所发送信息的量也有限制。
HTML 表单实例
<form method="get"action="simpleform.asp">
<p>First Name: <inputtype="text" name="fname" /></p>
<p>Last Name: <inputtype="text" name="lname" /></p>
<input type="submit"value="Submit" />
</form>
如果用户在上面的表单实例中输入 "Bill" 和 "Gates",发送至服务器的 URL 会类似这样:
http://www.w3school.com.cn/simpleform.asp?fname=Bill&lname=Gates
假设 ASP 文件 "simpleform.asp" 包含下面的代码:
<body>
Welcome
<%
response.write(request.querystring("fname"))
response.write(" " & request.querystring("lname"))
%>
</body>
浏览器将显示如下:
Welcome Bill Gates
Request.Form
Request.Form 命令用于搜集使用 "post" 方法的表单中的值。使用 POST 方法从表单传送的信息对用户是不可见的,并且对所发送信息的量也没有限制。
HTML 表单实例
<form method="post"action="simpleform.asp">
<p>First Name: <inputtype="text" name="fname" /></p>
<p>Last Name: <inputtype="text" name="lname" /></p>
<input type="submit"value="Submit" />
</form>
如果用户在上面的表单实例中输入 "Bill" 和 "Gates",发送至服务器的 URL 会类似这样:
http://www.w3school.com.cn/simpleform.asp
假设 ASP 文件 "simpleform.asp" 包含下面的代码:
<body>
Welcome
<%
response.write(request.form("fname"))
response.write(" " & request.form("lname"))
%>
</body>
浏览器将显示如下:
Welcome Bill Gates
表单验证
只要有可能,就应该对用户输入的数据进行验证(通过客户端的脚本)。浏览器端的验证速度更快,并可以减少服务器的负载。
如果用户数据会输入到数据库中,那么你应该考虑使用服务器端的验证。有一种在服务器端验证表单的好的方式,就是将(验证过的)表单传回表单页面,而不是转至不同的页面。用户随后就可以在同一个页面中得到错误的信息。这样做的话,用户就更容易发现错误了。