1.4 熟悉ASP语言

ASP英文全称为Active Server Pages,它是一种动态网页,文件后缀名为.asp, ASP网页是包含有服务器端脚本的HTML网页。WEB服务器会处理这些脚本,将其转换成HTML格式,再传到客户的浏览器端。

1.4.1 ASP能为我们做什么?

ASP语言在动态网站开发的过程中的作用如下。

① 动态地编辑、改变或者添加页面的任何内容。

② 对由用户从HTML表单提交的查询或者数据作出响应、访问数据或者数据库,并向浏览器返回结果。

③ 为不同的用户定制网页。

④ 由于ASP代码无法从浏览器端察看,确保了站点的安全性。

1.4.2 ASP的工作原理

ASP的工作原理如下图所示。

上图的含义如下。

① 客户端输入网页地址(URL),通过网络向服务器发送一个ASP的文件请求。

② 服务器开始运行ASP文件代码,从数据库中取需要的数据或写数据。

③ 服务器把数据库反馈的数据发送到客户端上显示。

1.4.3 ASP基本语法

ASP的基本语法如下。

书写格式:<%语句……%>

(1)if条件语句

<%
 If 条件1 then
语句1
elseif条件2 then
语句2
else
语句3
Endif
%>

if语句完成了程序流程块中分支功能:如果其中的条件成立,则程序执行紧接着条件的语句或语句块;否则程序执行else中的语句或语句块。

(2)while循环语句

<%
while 条件
语句
Wend
%>

while语句所控制的循环不断地测试条件,如果条件始终成立,则一直循环,直到条件不再成立。

(3)for循环语句

<%
for count=1 to n step m
语句1
exit for
语句2
Next
%>

for语句只要循环条件成立,便一直执行,直到条件不在成立。

ASP还有其他语句,但常用的、必须掌握的也就是上述四点。

|提示|

从上述讲解中可以看到ASP语法与JavaScript语法之间有很多相似之处,在学习时可以对照一下,有助于理解区分。

1.4.4 ASP常用内建对象

在ASP中,提供的对象以及组件都可以用来实现和扩展ASP应用程序的功能。每个对象都有其各自的属性、集合和方法,并且可以响应有关事件。用户不必了解对象内部复杂的数据传递与执行机制,只需在程序中设置或调用某个对象特定的属性、集合或方法,即可实现该对象所提供的特定功能。

常用的对象有以下几个。

① Response:用来传输数据到客户端浏览器。

② Request:用来读取客户端浏览器的数据。

③ Server:用来提供某些Web服务器端的属性与方法。

④ Session:用来存储当前应用程序单个使用者专用的数据。

1.4.5 对象的属性和方法

本节将详细讲述常见ASP对象的属性和方法。

1. Response对象

Response对象的作用是向浏览器输出文本、数据和cookies,并可重新定向网页,或用来控制向浏览器传送网页的动作。

Response常用的属性是Expires,这个属性用来设置网页过期时间。Response常用的方法有两个,分别是Write方法和Redirect方法。

① Write方法输出数据到客户端浏览器。

Response.write变量或字符串。代码如下。

<%
Response.write"您好!<br>"
Response.write"今天是"&now()
%>

②Redirect方法用来将客户端的浏览器重新定向到一个新的网页。

Response.Redirect网址变量或字符串。代码如下。

<%
Response.Redirect"http://www.sohu.com"
%>

③Response.End方法用来停止输出,代码如下。

<%
For i=1 to  5 setp 1
  If i<=3 then
    Response.write "i="&i
  Else
    Response.end
  End if
next
%>

输出结果只有i=1; i=2和i=3。

2. request对象

Request对象用来读取客户端的表单信息或其他传送到服务器端的信息,并可在此基础上实现将客户数据存入Web数据库或对其作进一步的处理。

Request对象属性一般情况下使用不到,这里不再阐述。

Request常用方法集合有Form、QueryString两个最为常用。

Form集合取得客户端在Form表单中输入用Post方法提交信息。

(1) Request.Form元素

下面通过案例来学习,信息提交页面代码如下。

<html><head><title>示例</title></head>
<body>
<form method="POST" action="form1.asp" name="form1">
<p><font size="3"><b>请在此输入客户资料:</b></font></p>
<p>您的姓名:<input type="text" name="name" size="16"></p>
<p><input type="submit" value="确认提交" name="B1">&nbsp;
<input type="reset" value="全部重填" name="B2"></p>
</form></body></html>

信息读取页面代码如下。

<%
Dim name
name = Request.Form ("name")
Response.Write "<P><B>" & "您提交的信息如下:" & "</B></P>"
Response.Write "您的姓名是:" & name & "<br>"
%>

(2)Request.QueryString集合

Request对象的QueryString集合同样可以包含传送到Web服务器的各个表单值,这些值在URL请求中表现为若干项用问号连接起来的一串文本。

语法:Request.QueryString元素。

下面通过案例来学习,信息输入页面代码如下。

<html>
<head>
<title>QueryString</title>
</head>
<body>
<form method="GET" action="form1.asp" name="form1">
<p><font size="3"><b>请在此输入客户资料:</b></font></p>
<p>您的姓名:<input type="text" name="name" size="16"></p>
<p><input type="submit" value="提交" name="B1">&nbsp;
<input type="reset" value="重填" name="B2"></p>
</form>
</body>
</html>

信息获取页面

<%
Dim name
name = Request.QueryString ("name")
Response.Write name & ":您好!" & "<br>"
%>

(3)ServerVariables方法

Request对象的ServerVariables方法得到一些服务器端的信息,如当前ASP的文件名、客户端的IP地址等。示例代码如下。

<html>
<head>
<title>ServerVariables</title>
</head>
<body>
PATH_INFO返回:
<%=Request.ServerVariables("PATH_INFO")%><br>  //返回文件路径
REMOTE_ADDR返回:
<%=Request.ServerVariables("REMOTE_ADDR")%><br>  //返回客户端地址
SERVER_NAME返回:
<%=Request.ServerVariables("SERVER_NAME")%><br>  //返回服务名
</body></html>

3. server对象

Server对象主要用来创建COM对象和Scripting组件、转化数据格式、管理其他网页的执行。

语法:

Server.方法|属性(变量或字符串|=整数)

Server对象常见有两个方法,它们是CreateObject方法和MapPath方法。

(1)CreateObject方法

Server.CreateObject方法是Server对象最为重要的方法之一,可用来创建已经注册到服务器上的某个ActiveX组件的实例,从而实现一些仅靠脚本语句难以实现的功能。例如对数据库的连接和访问、对文件的存取、电子邮件的发送和活动广告的显示等。

语法:

Set对象变量名= Server. CreateObject ("ActiveX组件名")

示例代码如下。

<%
Set Fso = Server.CreateObject("Scripting.FileSystemObject")
%>

(2)MapPath方法

MapPath方法的作用是把所指定的相对路径或者虚拟路径转换为物理路径。

语法:

Server.MapPath(虚拟路径字符串)

示例代码如下。

<%
Path = Server. MapPath ("/form1.asp")
Response.Write "form1.asp网页的实际路径为:" & Path
%>

4. Session对象

Session对象用来为每个客户存储独立的数据或特定客户的信息,使用Session对象可以为每个客户保存指定的数据。存储在某个客户Session对象中的任何数据都可以在该客户调用下一个页面时取得。在用户与网站交互的整个会话期间内,Session对象中的变量值都不会丢失,直到会话超时或访问者离开时为止,该Session对象才被释放。

Session常用属性有两个,存储用户的Session ID和用来设置Session的有效期时长的Timeout。

常用方法有一个清除Session对象的Abandon。

我们可以用Session保存变量或字符串等信息。

语法:Session("Session名字")=变量或字符串信息。

示例代码如下。

<% Session("username")="Lisi"%>

从Session中调用该信息的语法:

变量=Session("Session名字")

示例代码如下。

<% a=session("Session名字") %>

利用Timeout属性可以修改Session对象的有效期时长,默认为20分钟。

语法:Session.Timeout=整数(分钟)。

示例代码如下。

<% Session.Timeout=30 ’改为30分钟 %>

Session对象到期后会自动清除,但到期前可以用Abandon方法强行清除。

语法:Session.Abandon。

示例代码如下。

<% Session.Abandon %>

5. Cookie对象

Cookie对象也是一个比较重要的对象。那么什么是cookie呢?Cookie是用户访问某些网站时,由Web服务器在客户端磁盘上写入的一些小文件,用于记录浏览者的个人信息、浏览器类型、何时访问该网站以及执行过哪些操作等。

Cookie的属性用于指定Cookie自身的有关信息,语法格式如下。

Response.Cookies(name).attribute = value

其中参数attribute指定属性的名称,可以是下列之一。

① Domain:只允许写。如果设置该属性,则Cookie将被发送到对该域的请求中去。

② Expires:只允许写,用于指定Cookie的过期日期。为了在会话结束后将Cookie存储在客户端磁盘上,必须设置该日期。如果此项属性的设置未超过当前日期,则在任务结束后Cookie将到期。

③ HasKeys:只允许读,用于确定Cookie是否包含关键字。

④ Path:只允许写。如果被指定,则Cookie将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。

⑤ Secure:只允许写,用于指定Cookie是否安全。

下面来学习有关Cookie的操作。

(1)设置Cookie的值

使用Response对象的Cookies集合可以设置客户端的Cookie值。如果指定的Cookie不存在,则创建它。若存在,则设置新的值并且将旧值删去。语法格式如下。

Response.Cookies(name)[(key)] = value

其中参数name指定Cookie的名称。参数value指定分配给Cookie的值。参数key是可选的,用于指定Cookie的关键字。若不指定key,则创建一个单值Cookie;若指定了key,则创建一个Cookie字典,而key将被设置为value。

创建单值Cookie的代码如下。

<%
Response. Cookies("Username")="zhangshihua" //
Response. Cookies("Username").Expires="July 29,2008"
%>

创建多值Cookie如:

<%
Response. Cookies("User")("Name")="chenfan"
  Response. Cookies("User")("Sex")="male"
  Response. Cookies("User")("Password")="20120601"
  Response. Cookies("User").Expires="June,1,2012"
%>

(2)输出Cookie中保存的值

Request.Cookies集合,用来提取存储在客户计算机Cookie中的值。

如:

<%=Request.Cookies("Username")%>

6. Application对象

Application对象是一个比较重要的对象,对Application对象的理解关键是:网站所有的用户公用一个Application对象,当网站服务器开启的时候,Application就被创建。利用Application这一特性,可以方便地创建聊天室和网站计数器等常用站点应用程序。

Application对象没有自己的属性,用户可以根据自己的需要定义属性,来保存一些信息,其基本语法是:Application(“自定义属性名”),这一点与Session定义一样。

如:

<%
Application("Greeting")="你好!"
response.write Application("Greeting")
%>

首先对自定义属性Application("Greeting")赋值,然后程序将其输出。执行完以后,该对象就被保存在服务器上。

或许阅读完本章,依然不明白这些东西和网站是如何具体联系起来的,那么也没关系,在本书后续章节将结合实战案例详细为你由浅入深地讲解网站程序设计的全过程。