ASP内置对象详细介绍

请求对象-Request

对象是一种复杂的数据类型,是由属性和方法构成的具有特定功能的集合,脚本语言一般都是基于对象的语言,都提供了功能强大的对象,其中有两个最为重要的对象就是Request请求对象和Response响应对象,请求对象Request用来与客户端交互,收集客户端信息或服务器端的环境变量,然后将收集的这些信息发送给服务器端或其它asp页面,称为发送请求,服务器收到请求后就会做出适当的响应,即:对这些信息进行处理,然后将结果返回给客户端浏览器,利用Request对象可以很容易的获取客户端的一些信息,Request对象获取信息的方法主要有下面几种;

form 方法,主要用来获取表单中的信息;
querystring方法,主要获取附加在url后面的信息;
servervariabes方法,主要获取客户的IP地址等环境变量;
cookices方法,主要用来获取客户浏览器或硬盘上的cookices信息;
clientcertificate方法,取得客户端浏览器的身份验证信息
BinaryRead方法,以二进制码方式读取客户端post数据

环境变量的概念: 环境指的是周围,环境变量指的是用来保存周围信息的变量;
服务器环境变量:指的是在服务器上用来保存服务器环境信息的变量,这些变量主要有
1 ALL_HTTP 保存的信息为:所有客户端发送的http报头
2 HTTP_REFERER 保存的信息为:客户使用的超连接的Internet地址
3 HTTP_USER_AGENT 保存的信息为:客户端使用的浏览器类型
4 URL 保存的信息为:url的基本段
5 QUERY_STRING 保存的信息为:url问号后面的内容
......

一 form方法
在html页面中使用表单标记form构造一个窗体,然后使用写入标记input在其上插入一系列的控件,这样就形成了一个完整的表单,在这个表单上用户填写一些信息,填写完毕后,用户通过点击提交按钮submit将信息上传到服务器或者其它的asp页面,表单向外发送数据的方式由method进行指定,当信息量较大时使用post,当信息量较少时使用get;
表单信息通过post方式发送时,服务器端或另一个asp页面就使用form方法接收;
表单信息通过get方式发送时,服务器端或另一个asp页面就使用querystring方法接收,

form方法应用格式:

Request.form("name")

上式中:

(1)Request是Asp的一个对象
(2)form则是Request对象所包含的对象集合,是Request对象获取信息的一种方法,在html页中也有一个form,但它是html页中的一个标记,它用来产生一个表单,我们可以这样说:Asp用form方法来获取html中form表单的信息;
(3)name是html中form表单的某个文本框、密码框,按钮,单选框,复选框,下拉框或者隐藏域等的名称;同时这个名称还必须是用post传递过来的;

示例1

(1)p1.htm

<html>
<head>
<title>asp简单程序</title>
</head>
<body>
<h2>请输入你的建议,然后点确定</h2>
<form action="pp.asp" method=post target="blank">
<input type="text" name="mytext" size="100"><p>
<input type="submit" name="mytype" value="提交">
</form>
</body>
</html>

示例解读;
使用form标记构造一个窗体,用input在表单中插入两个控件,其中文本控件的名称为mytext,这个名称与客户在该文本中输入的信息会在提交按钮点击后向pp.asp文件发送,发送的方式method必须是post,pp.asp文件是由form的属性action指定的;

(2)pp.asp

<html>
<head>
<title>asp简单程序</title>
</head>
<body>
<h2>收到用户一条建议是:</h2>
<%
dim ss
ss=Request.form("mytext")
response.write(ss) '
%><p>
<% response.write(now)%>
</body>
</html>

解读:
Request对象的form方法,收到p1.htm中表单内容为mytext的文本控件信息后,将信息保存到变量ss中,ss通过输出语句显示给用户;

 

示例2
p2.asp

<html>
<head>
<title>asp简单程序</title>
</head>
<body>

<form action="" method=post target="blank">
<input type="text" name="mytext1">
+
<input type="text" name="mytext2">
<p>
<input type="submit" value="确定">
</form>
<%
if Request.form("mytext1")<>""and Request.form("mytext2")<>""then
dim ss
ss=cint(Request.form("mytext1"))+cint(Request.form("mytext2"))
response.write("两数之和="&ss)
else
response.write("写入数字后按确定")
end if
%>

</body>
</html>

示例解读:
使用表单标记form定义了一个表单,接收这个表单数据文件的地址使用属性action进行指定,但是本例中 action="" 指定的是一个空值,表明你要使用当前文档的url,即:本文档中的脚本接收这些信息;
脚本if后面是两个条件,两个条件使用"逻辑与"运算符and连接,其含义是当条件1和条件2都为真时,if的条件才为真,
条件1 Request.form("mytext1")<>"" 使用Request对象获取表单form中的单行文本控件mytext1的内容,符号<>""表示文本不等于空值,对于本例这样比较长的表达式,通常把它保存到一个变量中,这样会使程序更易于阅读;如下所示:
<%
dim a,b,ss
a=Request.form("mytext1")
b=Request.form("mytext2")
if a<>"" and b<>"" then
ss=cint(a)+cint(b)
response.write("两数之和="&ss)
else
response.write("写入数字后按确定")
end if
%>

如果你不怕麻烦可以将上面复制,替换源文件中的脚本界定符之间的内容;
脚本中因为使用Request获取的是文本变量的内容,所以其数据是一个字符串类型的,对他们进行数值类型的加法,就得将其转换为数值类型的数据,cint就是这样的一个转换函数;

 

 

 

 

示例3
(1)p3.htm

<html>
<head>
<title>asp简单程序</title>
</head>
<body bgcolor="#CCCCFF">
<p align=center><font color="#990000" size="6" face="华文行楷" >欢迎光临闪客启航</font>
</p>
<p> &nbsp;&nbsp;&nbsp;&nbsp;“闪客启航”是一所成功的网络学校,成立两年来,在大成校长的领导下,由开始几个老师在一起的学术交流,到现在规范教学,从无到有不断发展壮大,为广大闪客一族提供了一个健康纯净的学习交流的平台;为了更好的为你服务,请你填写下面的调查表;
<p></p>

<form action="ppp.asp" method=post name="my_form" target="blank"><br>

请选择你喜欢的课程<br>
flash脚本课
<input type="checkbox" name=checkox1 value="flash脚本课"><br>
flash基础课
<input type="checkbox" name=checkox2 value="flash基础课"><br>
flash实例课
<input type="checkbox" name=checkox3 value="flash实例课"><br>
flash提高课
<input type="checkbox" name=checkox4 value="flash提高课"><br>
<!--
注意:多选框的名称name各自不同,这时用Request.form方法获取他们的结果是连续排列的,表示他们不是同一组数据,如果name取相同名称,其结果表示为一整组,在Request.form获取后显示的结果中会自动加上 逗号,如下面的 爱好 栏;
另外,对于多选框,单选框,下拉框中的value属性的值,是Request.form方法获取的对象;
-->

<p></p>
请选择你<font color="#ff0000" size="5">最</font>喜欢的课程<br>
flash脚本课
<input type="radio" name=radio value="flash脚本课"><br>
flash基础课
<input type="radio" name=radio value="flash基础课"><br>
flash实例课
<input type="radio" name=radio value="flash实例课"><br>
flash提高课
<input type="radio" name=radio value="flash提高课"><p></p>


<select name="my_work" >
<option value="1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;课程表

<option value="2">星期1:flash实例课,上课时间20:00,授课老师xxx
<option value="3">星期2:flash基础课,上课时间20:00,授课老师xxx
<option value="4">星期3:flash提高课,上课时间20:00,授课老师xxx
<option value="5">星期4:flash脚本课,上课时间20:00,授课老师xxx
<option value="6">星期5:flash研讨课,上课时间20:00,授课老师xxx
</select>

<h2 >请填写个人信息</h2>

姓名:<input type="text" name="my_name"><br>

性别:
<input type="Radio" name="my_Radi" value="女">女性
<input type="Radio" name="my_Radi" value="男" checked>男<br>
爱好:<input type="checkbox" name="my_love" value="运动">运动
<input type="checkbox" name="my_love" value="唱歌">唱歌
<input type="checkbox" name="my_love" value="吃零食">吃零食
<input type="checkbox" name="my_love" value="玩游戏">玩游戏
<input type="checkbox" name="my_love" value="看电影">看电影

<!-- 注意,上面的复选框名称是相同的 -->

<p></p>
请在下面填写你的建议<br>
<textarea name="introduce" cols="42" >
</textarea><br>

<p></p>
帐号:<input name="accounts" ><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="确定">
<input type="reset" value="清除">

</form>
</body>
</html>

 

 

 

(2)ppp.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<h2 align=center>下面是你填写的信息</h2>
<%

dim my_name,my_Radi,my_love,introduce,accounts,password,checkox1,checkox2,checkox3,checkox4,radio

checkox1=request.form("checkox1")
checkox2=request.form("checkox2")
checkox3=request.form("checkox3")
checkox4=request.form("checkox4")
radio=request.form("radio")
my_name=request.form("my_name")
my_Radi=request.form("my_Radi")
my_love=request.form("my_love")
introduce=request.form("introduce")
accounts=request.form("accounts")
password=request.form("password")
%>
<%response.write("你喜欢的课程:"&checkox1&checkox2&checkox3&checkox4)%><p></p>
<%response.write("你最喜欢的是:"&radio)%>
<p></p>

<%response.write("姓名:"&my_name)%><br>
<%response.write("性别:"&my_Radi)%><br>
<%response.write("爱好:"&my_love)%><br>
<%response.write("建议:"&introduce)%><p>
<%response.write("帐号:"&accounts)%><br>
<%response.write("密码:"&password)%>
</body>
</html>

 

 

................................................


二 QueryString方法

表单信息通过get方式发送时,另一个asp页面就可以使用querystring方法接收,querystring方法主要用来接收数据量较小的,标识在url后面的一些变量及其值,这些变量主要应用于网页之间的信息交流;

QueryString方法的格式为:

Request.querystring("name")

示例4
(1)p4.htm
<html>
<head><title>asp简单程序</title></head>
<body>
<h2 align=center>填写你的信息</h2>
<form action="pppp.asp" method="get" target="blank">
姓名:<input tpye="text" name="y_name"><br>
年龄:<input type="text" name="y_age" ><br>
<input type="submit" value="提交">
</form>
</body>
</html>

示例解读:
在姓名栏用汉语拼音填写 xiao li,年龄栏填写22,提交后就会在新的窗口中显示你填写的信息,这时我们观看地址栏,会看到变量通过?号附加在了url的后面,如下:
http://longka.flasher123.com/wwwroot/ch7/pppp.asp?y_name=xiao li&y_age=22

(2)pppp.asp

<html>
<head>
<title>asp简单程序</title>
</head>
<body>
<%
dim y_name,y_age
y_name=request.querystring("y_name")
y_age =request.querystring("y_age")
%>

<% response.write("你的名字:"&y_name)%><br>
<% response.write("你的年龄:"&y_age)%>
</body>
</html>

................................................

三 ServerVariables方法

ServerVariables方法用来获取服务器端或者客户端的一些信息,比如:服务器端的环境变量;

格式:
Request.ServerVariables("环境变量名")

下面是一些常用的环境变量,如要查看更多的请参阅其它资料

1  ALL_HTTP 保存的信息为:所有客户端发送的http报头
2  AUTH_TYPE 当访问被保护的脚本时,判断该用户是否合法
3  CONTENT_TYPE 内容的数据类型
4  GATEWAY_INTERFACE,服务器使用的CGI规格的修订版
5  HTTP_REFERER 保存的信息为:客户使用的超连接的Internet地址
6  HTTP_USER_AGENT 保存的信息为:客户端使用的浏览器类型
7  LOGN_USER,登陆widows NT的用户账号
8  QUERY_STRING 保存的信息为:url问号后面的内容
9  REMOTE_ADDR 客户端IP地址
10 REMOTE_HOST 客户端主机名
11 SERVER_NAME 服务器端的IP地址或名称
12 SCRIPT_NAME 当前asp文件的虚拟路径
13 URL 保存的信息为:url的基本段

 

示例5
p5.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
dim IP
IP=Request.ServerVariables("REMOTE_ADDR")
response.write("你的真实IP地址是:"&IP)
%>
</body>
</html>

示例6
p6.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
dim yurl
yurl=Request.ServerVariables("url")
response.write("相对url是:"&yurl)
%>
</body>
</html>

响应对象-Response

Response对象用于向客户端浏览器发送信息,和我们上一节学过的Request对象一起实现数据的收发, Response对象有一些方法和属性,如下所示:

一些方法
1 Response.write 为客户端输出信息
2 Response.end 中止asp程序并返回当时的状态
3 Response.redirect 引导客户浏览器到另一个页面
4 Response.Clear 清除缓冲区的html
5 BinaryWrite 输出二进制信息
6 Flush 返回缓冲区的数据

两个属性
1 Response.Buffer 设置缓冲,可选true,false
2 ContenType 控制文件的输出类型

 

一 Response.write(information)

information为要发送给客户的信息,可以是变量或字符串;

示例1

<html>
<head>
<title>asp简单程序</title>
</head>
<body>
<center>
<h2>欢迎光临</h2>
Asp测试
</center><br>
你的来访时间是:<% response.write(now) %><br>
<% response.write "你的来访时间是:"&"<br>"&now %>
<p></p>
<font size="5" color="#FF0000">
<% response.write "你的来访时间是:"&now %>
</font>
</body>
</html>

 

注意点:

1 输出格式是带有圆括号,换行符放在输出语句外面

<% response.write(now) %><br>

2 输出格式去掉圆括号,换行符放在输出语句里面
<% response.write "你的来访时间是:"&"<br>"&now %>

3 使用html代码改变输出语句字体
<font size="5" color="#FF0000">
<% response.write "你的来访时间是:"&now %>
</font>

 

二,Response.end


中止asp程序并返回当时的状况;

示例2

本例说明Response.end不仅中止了Vbscript还中止了html的执行

<html>
<head>
<title>asp简单程序</title>
</head>
<body>
<center>
<h2>欢迎光临</h2>
Asp测试
</center><br>
你的来访时间是:<% response.write(now) %><br>
另两句被中止了
<% Response.end %>
<% response.write "你的来访时间是:"&"<br>"&now %>
<p></p>
<font size="5" color="#FF0000">
<% response.write "你的来访时间是:"&now %>
</font>
哈哈

</body>
</html>


三 Response.redirect("url")

引导客户浏览器到另一个url时,我们通常使用超连接,但是使用超连接时必需通过点击超连接的标志,如果我们在某些情况下希望自动连接到其它页面,这时就可以使用redirect方法,自动引导又叫做"重定向",在使用重定向时一般还需要在文档的开头加上一句<% Response.Buffer=" True " %>;

 

四 Response.Buffer

Buffer是Response的一个属性,叫做缓冲器,缓冲器Buffer的取值为true和false,默认为false,当设置为true时,服务器端的数据会先输出到缓冲区,然后再从缓冲区输出至客户端,如果取默认状态下的false,则服务器端的数据会直接输出到客户端浏览器;

格式;
<% Response.Buffer=true %>

示例3

<% Response.Buffer=true %>
<html>
<head>
<title>asp简单程序</title>
</head>
<body>
<form action="" method=post target="blank">
你要到哪里去?<br>
闪客启航论坛
<input type="radio" name=radio value="闪客启航论坛"><br>
中国老三届论坛
<input type="radio" name=radio value="中国老三届论坛"><br>
<input type="submit" value="确定">
</form>
<%
if Request.form("radio")="闪客启航论坛" then
Response.redirect("http://bbs.flasher123.com/") '引导至闪客起航
elseif Request.form("radio")="中国老三届论坛" then
Response.redirect("http://bbs.cnlsj.com/") '中国老三届论坛
end if
%>
</body>
</html>

示例解读:

程序第一部分首先设置Response对象的缓冲器Buffer为真,这时数据会先保存到缓冲区内,然后再发送给客户的浏览器,第二部分使用html语言定义一个表单,表单中写入了三个按钮控件,用来接收客户的选择,第三部分使用条件语句判断客户是如何选择的,并将其选择使用重定向方法redirect引导至相应的url,本例旨在说明使用重定向方法redirect时一定要首先把缓冲器Buffer设为true,否则程序会输出错误信息;

 

五 Response.Clear

Clear方法用来清除在缓存区中的所有html页面,使用Clear方法和使用重定向方法redirect一样,也要首先把缓冲器Buffer设为真,在语句中使用清除方法Clear和使用中止方法end有点相反的味道,一个程序加入了end则end语句下面的程序就不再执行了,而一个程序中加入了Clear,则Clear前面的语句被清除,Clear后面的语句会继续执行;

示例4

<% Response.Buffer=true %>
<html>
<head>
<title>asp简单程序</title>
</head>
<body>
<center>
<h2>欢迎光临</h2>
Asp测试
</center><br>
你的来访时间是:<% response.write(now) %><br>
<% response.write "你的来访时间是:"&"<br>"&now %>
<p></p>
<% Response.Clear %>
上面的两句被清除了<br>
<font size="5" color="#FF0000">
<% response.write "你的来访时间是:"&now %>
</font>
哈哈
</body>
</html>

Cookies

Cookies是服务器端和客户端传递的http头部信息,这些信息被保存成文本格式的小文件,存贮在客户端的浏览器或硬盘上,客户可以用浏览器的工具对Cookie进行设置,以便决定是否使用它;
Cookies的存在形式有两种,一种是只在浏览器打开时存在,浏览器关闭后就消失了,这种方式的叫会话Cookies,另一种是把Cookies写入客户的硬盘中叫永久性Cookies当然这种永久是相对的,如果客户使用浏览器Internet选项中的工具删除它,或者硬盘被格式化了,保存的Cookies就没了,要应用Cookies首先是设置一个Cookies并把它写入客户的硬盘中;

 

一 设置Cookies

语法;

Response.Cookies("Cookies_name")[("key")|.property]=value
参数:
Cookie_name 为Cookies变量的名称
key 为可选参数,用字典把key翻译成中文则为"关键字",如果指定了关键字,则Cookies就是一个集合,并将value的值赋给这个关键字;
value为赋给Cookies_name的值
property为key的属性,指定Cookies自身的某些信息,如下所示:

property属性的取值:
1 Expires 指定 cookies 的过期时间
2 Domain 指定cookies 发送到的网域
3 Path 指定cookies送到的路径

 

二 访问Cookies

语法:

Request.Cookies("Cookie_name")[("key")|.property]

示例1

查看自己电脑中的Cookies,对于windwos xp参考下面路径找到Cookies文件夹,打开后我们就会看到很多Cookies文本文件,观察完毕后使用浏览器的工具删除之,然后去登陆闪客启航论坛,再去看看Cookies文件,是不是多了一些文本文件;

C:\Documents and Settings\...\Cookies

 

示例2-写入Cookies

<%
Response.Cookies("user_name")="longka"
Response.Cookies("user_name").expires=#2006-5-1#
%>
<html>
<head><title>asp简单程序</title></head>
<body>
试试Cookies
</body>
</html>

示例解读:
1 第一行设置了一个变量名为user_name的Cookies,并且给他赋值为字符串longka
2 第二行使用属性Expires指定了Cookies的有效期,如果我们不指定有效期则这个 Cookies就不会写入客户的硬盘,此时由第一句创建的Cookies只是临时保存在客户的 浏览器中,当浏览器关闭后,该Cookies就消失了,叫做会话Cookies
3 Response.Cookies方法必须用在所有html元素的最前面,如果你想在文件的任意地方使用它,则必须在文件的开始处加<% Response.Buffer=true %>,即:首先设置Response对象的缓冲器Buffer为真,把数据先保存到缓冲区,这和引导客户浏览器到另一个url的Response.redirect对象方法是类似的;
4 在自己的电脑中看看我们写入的Cookies文件

示例3-取回Cookies

<html>
<head><title>asp简单程序</title></head>
<body>
试试Cookies<br>
<%
dim a
a=request.cookies("user_name")
response.write("你写入的Cookies为:"&a)
%>
</body>
</html>

示例解读:
使用request.cookies方法,可以取回使用Response.Cookies方法写入客户硬盘中的信息

 

示例4-写入Cookies

<% Response.Buffer=true %>
<html>
<head><title>asp简单程序</title></head>
<body>
设置Cookies
<%
Response.Cookies("my_name")="aa"
Response.Cookies("you_name")="bb"
Response.Cookies("my_name").expires=#2006-5-1#

%>
</body>
</html>

示例5-取回Cookies

<html>
<head><title>asp简单程序</title></head>
<body>
取回Cookies<br>
<%
dim ap
ap=request.cookies("my_name")
response.write("你写入的Cookies为:"&ap)
%>
<br>
<%
dim bp
bp=request.cookies("you_name")
response.write("你写入的Cookies为:"&bp)
%>
</body>
</html>

示例解读;
示例4和示例5同时操作了两个cookies,经测试结果虽然是可行的,但是在asp中通常不这样进行操作,而是使用关键字设置和取回多个cookies,从下面的示例中我们可以看到要方便许多,特别是取回多个cookies时;

示例6-带关键字Cookies

<% Response.Buffer=true %>
<html>
<head><title>asp简单程序</title></head>
<body>
试试Cookies
<%
Response.Cookies("my_name")("my_name1")="aa1"
Response.Cookies("my_name")("my_name2")="aa2"
Response.Cookies("my_name")("my_name3")="aa3"
Response.Cookies("my_name").expires=#2006-5-1#
%>
</body>
</html>

示例7-返回

<html>
<head><title>asp简单程序</title></head>
<body>
试试Cookies<br>
<%
dim ass
ass=request.cookies("my_name")
response.write("你写入的Cookies为:"&ass)

%>
</body>
</html>

注:本例返回的是最近点击的示例4或示例6的值

示例8-几次光临

<%
dim num
num=request.cookies("ta_nam")
if num > "0" then
num=num+1
Response.write("你现在是第"&num&"次访问这里了")
else
Response.write("欢迎你首次访问这里")
num=1
end if
response.cookies("ta_nam")=num
response.cookies("ta_nam").expires=#2006-1-1#
%>

示例解读:

定义一个变量num用来保存获取的名为ta_nam的cookies,当你首次访问时ta_nam尚未写 入硬盘,num为空值,所以执行else后面的语句输出-欢迎你首次访问这里,输出完毕后,继续向下执行语句就会把response.cookies方法的ta_nam变量,写到客户硬盘中了,以后 再次访问,num总是会大于0,故执行num=num+1,计算出客户访问的次数;

会话对象-Session

我们在访问一个论坛的期间,叫做会话期间,在这个期间产生的各种信息叫做会话信息,Session就是用来处理会话信息的一个对象,在会话期间Session可以将变量,对象和数组保存到客户的Cookies中,所以如果客户禁用了Cookies,则Session的会话功能将不能使用,Session的使用格式很简单,如下:


一 Session的基本应用

Session("变量名")=赋值表达式

1 Session对象有两个属性:
(1)Session.SessionID 存贮用户的SessionID,在会话期间服务器会为每一个客户生成一个单独的标记即SessionID,它以长整形数据类型返回,可以用于 Web 页面的注册统计;

(2)Session.TimeOut 设置Session的有效时长,一个Session对象从保存到失效默认是20分钟,如果客户长时间不刷新页面或提交请求,Session对象就会自动结束,
TimeOut属性可以设置Session对象的有效时长,格式为:Session.TimeOut=整数(分);

2 Session对象有一个方法:
Session.Abandon 用于清除Session对象,
3 Session对象有两个事件;
(1)Session_OnStart 在Session对象开始之前调用这个程序
(2)Session_OnEnd 在Session对象结束之后调用这个程序


示例1

(1)写入Session

<html>
<head><title>asp简单程序</title></head>
<body>
创建Session对象并为该对象的变量your_name赋值
<%
Session("your_name")="小赵"
Session("your_age")=30
%>
</body>
</html>

(2)显示Session

<html>
<head><title>asp简单程序</title></head>
<body>
显示Session
<br>
获取并输出Session("your_name")的值
<%
response.write(Session("your_name"))
%>
<br>
<%
response.write(Session("your_age"))
%>
</body>
</html>

示例2

(1)p2-1.htm


创建一个表单并将表单的信息发送到p2-2.asp文件中
<html>
<body>
<form action="p2-2.asp" method=post >
用户姓名:
<input type="text" name="my_text1" size="19"><br>
用户密码:
<input type="password" name="password">
<input type="submit" name="mytype" value="提交">
</form>
</body>
</html>

(2)p2_2.asp


使用Request对象的form方法获取表单中文本框my_text1的值,并将该值保存到 Session对象的变量kk中

<html>
<body>
<%
Session("kk")=Request.form("my_text1")
response.write("你输入的姓名:"&Session("kk"))
%>
</body>
</html>

(3)p2-3.asp

<html>
<body>
<%
response.write("你输入的姓名:"&Session("kk"))
%>
</body>
</html>

示例p2-2.asp解读:
点击p2-1.htm中的提交按钮,则客户在表单中输入的信息发送给p2-2.asp文件并将其打 开,显示你输入的信息,p2-2.asp文件有两个功能,其一是接收表单发来的信息,这个由 Request.form("my_text1")完成,其二是在客户首次来访时创建Session对象,并对其赋 值和保存到Cookies中,再次来访时重新赋值,p2-3文件只有访问Cookies中Session对象 的功能,没有对其改写的功能;

 

示例p3-1.asp

设置 Session有效时长

<% Response.Buffer=true %>
<html>
<head><title>asp简单程序</title></head>
<body>
<form action="" method=post >
设置时长:输入代表分钟的数字<br>
<input type="text" name="m_text" size="19"><br>
<input type="submit" name="mytype" value="设置">
<input type="Hidden" name="ss" value="688">
</form>
<%
if Request.form("m_text")<>"" then
dim aa_s
aa_s=cint(Request.form("m_text"))
Session.Timeout=aa_s
end if
%>
<%
if Request.form("ss")="688" then
Response.redirect("p3-2.asp")
end if
%>
</body>
</html>

 

示例p3-2.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%response.write("你的Session.SessionID为:"&Session.SessionID)%><br>
<%response.write("你的Session.Timeout时长为:"&Session.Timeout)%>
</body>
</html>

 

示例4

(1)p4-1.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
if Session("ss_name")<>"" then
response.write("热烈欢迎"&Session("ss_name")&"的到来")
else
%>
<form action="p4-2.asp" method=post %>
用户姓名:
<input type="text" name="my_text1" size="19"><br>
用户密码:
<input type="password" name="password">
<input type="submit" name="mytype" value="提交">
</form>
<%
end if
%>
</body>
</html>

示例解读:
程序使用条件语句判断客户是否已经在Cookies中保存了姓名,如果Session ("ss_name")不为空值,说明已经提交了姓名,则输出欢迎信息,否则就构造一个表单,供 客户在文本框输入姓名并提交;

(2)p4-2.asp

<html>
<body>
<p>
<%
Session("ss_name")=Request.form("my_text1")
Session("password")=Request.form("password")
if Session("ss_name")<>"" then
response.write("注册成功,欢迎"&Session("ss_name")&"的到来")
else
response.write("你需要返回去提交你的姓名")
end if
%>
</p>
<p><a href="p4-1.asp">返回
</a></p>
</body>
</html>

示例解读:
本页接收p4-1.asp表单中的信息,并把其保存到Cookies中,使用条件语句判断 Session的值,输出相应的语句

 

 

 

示例5

<html>
<body>
<%
dim my_array(3) '定义数组
my_array(0)="小李" '为数组元素赋值
my_array(1)="小王"
my_array(2)="小红"
my_array(3)="小黄"
Session("m_y_array")=my_array '将数组保存到Session对象中
%>
<%response.write (Session("m_y_array")(0)) %>
<br>
<%response.write (Session("m_y_array")(1)) %>
<br>
<%response.write (Session("m_y_array")(2)) %>
<br>
<%response.write (Session("m_y_array")(3)) %>
<br>
</body>
</html>

共享对象-Application 

Application是asp的内置对象,主要用来保存变量和其它对象,Application保存的内容对所有客户都是可见的,也就是说所有用户都可以访问它,这和Session有较大不同,Session对象记载的信息是特定的,每个客户只能访问自己的Session,不能访问他人的Session,数据之间是不能共享的,这种情况类似于局部变量和全局变量的概念;

一 Application对象

1 定义属性
为Application对象定义属性非常简单,如下所示:

格式:
Application("属性")=值

示例p1.asp

<%
Application("my_a1")="a"
Application("my_a2")="b"
Application("my_a3")=5
response.write(Application("my_a1"))
response.write(Application("my_a2"))
response.write(Application("my_a3"))
%>

2 Contents集合

当为Application对象定义多个属性时,这些属性就构成了属性集合,属性集合的名称用Contents表示,下面的示例和上面的示例结果是一样的,只是上面的隐藏了Contents集合;

示例p2-1.asp

<%
Application.Contents("my_a1")="a"
Application.Contents("my_a2")="b"
Application.Contents("my_a3")="c"
response.write(Application.Contents("my_a1"))
response.write(Application.Contents("my_a2"))
response.write(Application.Contents("my_a3"))
%>

示例p2-2.asp
使用for...in循环语句可以枚举Contents集合的元素和访问每个元素的值

<%
Application.Contents("my_b1")="q"
Application.Contents("my_b2")="w"
Application.Contents("my_b3")="s"
for each key in Application.Contents
response.write(key&"="&Application(key))
next
%>

3 Contents集合的方法

Contents集合有两个用于删除Application对象的方法,他们是:
Application.Contents.remove "属性名" 用于删除指定的属性
Application.Contents.removeAll 用于删除所有属性

示例3

<% Application.Contents.removeAll %>

 

4 两个方法:
(1)Application.lock 锁定Application对象,使其它用户无权访问
(2)Application.unlock 解除锁定

因为Appliction是多用户的,如果有两个客户同时更改Application的值就会出问题,此时使用锁定和解除锁定的方法,可以解决多用户的数据写入问题,在修改之前进行锁定,完毕后解除锁定就可以了

示例p4.asp

<%
Application.lock
Application("callin_number")=Application("callin_number")+1
Application.unlock
response.write("你是第"&Application("callin_number")&"位来访者")
%>

5 两个事件
(1)Application_OnStart 在第一个请求Application的页面被调用时触发,Application的自动触发只用一次,就是第一个用户的第一次请求,而不是象 Session对象那样在每一个新用户请求后就触发;
(2)Application_OnEnd 该Application结束后调用
这两个事件必须定义在Global.asa文件中

 

二 Global.asa文件

Asp应用程序的概念:Asp应用程序和其它语言中的应用程序在概念上有点区别,在其它语言中,应用程序指的是能够完成某些功能的可执行文件,而在asp中指的是添加了虚拟目录的文件夹,这个文件夹也就是一个网站,通常一个网站有很多asp文件组成,这些文件的集合就是asp的应用程序;
Session对象和Application对象都有两个事件,要使用他们的事件,就必须首先在Global.asa文件文件中声明,该文件对于用户来说是不可见的,文件名也是固定的,并且该文件还必须放在应用程序的根目录下,每个应用程序只能拥有一个Global.asa文件;

应用语法:

<script language="vbscript" runat="server">
sub Application_OnStart
end sub
sub Application_OnEnd
end sub
sub session_OnStart
end sub
sub session_OnEnd
end sub
</script>

这个文件必须保存为Global.asa,放到根目录中,如果你不想使用Session对象和Application对象中的事件,也可以不要这个文件;

访问人数和在线人数统计示例
(1)Global.asa
<script language="vbscript" runat="server">
sub Application_OnStart
Application.lock
Application("on_all")=0
Application("on_line")=0
Application.unlock
end sub
sub Session_OnStart
Application.lock
Application("on_all")= Application("on_all")+1
Application("on_line")=Application("on_line")+1
Application.unlock
end sub
sub Session_OnEnd
Application.lock
Application("on_line")=Application("on_line")-1
Application.unlock
end sub
</script>

示例解读:
创建Global.asa文件放在根目录中,该文件用来定义当Session和Application对象第一次被调用或结束时触发的两个事件,当第一个请求触发Application的事件时,初始化on_all和on_line两个变量,Application的事件只触发一次,以后Session对象会在每一个用户发出请求后触发Session_OnStart事件,从而使实现相应变量的值进行加减,其中<script language="vbscript" runat="server">表示默认的asp语言是Vbscript,runat="server"指在服务器端运行;

(2)(查看访问人次)

p5.asp

<html>
<body>
<%
response.write("访问总人数:")&Application("on_all")
response.write("在线的人数:")&Application("on_line")

%>
</html>
</body>

 

清空在线人数

<%
Application.lock
Application("on_line")=0
Application.unlock
%>

服务器对象-Server

专门用来处理服务器特定任务的对象称Server对象,所谓的特定任务主要指的是 与服务器环境有关的一些任务,Server对象的语法如下:

Server.property|method

Server对象的属性和方法:
一个属性
Server.Scripttimeout 指定程序运行的时间

一些方法
Server.Htmlencode 转换指定的html代码
Server.Createobject 建立一个对象实例
Server.Execute 执行一个asp文件
Server.Getlasterror 返回一个错误代码
Server.Mappath 将相对路径转换为绝对路径
Server.Transfer 向其它asp文件发送信息
Server.Urlencode 以url形式转化指定的代码

一 Server.Scripttimeout属性

Scripttimeout属性用来指定程序的最大运行时间,默认是90秒,主要用来防止可能产生的死循环;

示例s1.asp

<%
Server.Scripttimeout=200
'设置程序在200秒后停止运行
%>

<%
response.write Server.Scripttimeout
'查看所设置的程序运行时间
%>

二 Server.Htmlencode 方法


某些字符如尖括号,引号,空格等有时会被浏览器错误解释,此时可以用这个方法 进行转换,当要在页面上输出html语句时,使用该方法转换也很方便;

示例s2-1.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
response.write "<a href='http://bbs.flasher123.com/'>闪客启航</a>"
response.write "<br>"
response.write Server.Htmlencode("<a href='http://bbs.flasher123.com/'>闪 客启航</a>")
%>
<br>
"<a href='http://bbs.flasher123.com/'>闪客启航</a>"
</body>
</html>

 

示例s2-2.asp


<%
response.write "<html>"
response.write Server.Htmlencode("<html>")
response.write "</html>"
%>

三 Server.Urlencode方法


Server.Urlencode方法与Server.Htmlencode方法是类似的,它主要用来对url字符串进行编码;

应用格式:

Server.URLencode(string)
string要转化的字符串

示例s3_1.asp

<html>
<head><title>asp简单程序</title></head>
<body>
<%
response.write Server.Htmlencode("http://bbs.flasher123.com/")
response.write "<p>"
response.write "http://bbs.flasher123.com/"
response.write "<p>"
response.write Server.URLencode("http://bbs.flasher123.com/")
response.write "<p>"
%>
</body>
</html>
显示结果:
http://bbs.flasher123.com/

http://bbs.flasher123.com/

http%3A%2F%2Fbbs%2Eflasher123%2Ecom%2F

(这一行就是Server.Urlencode方法编码的结果)

 

四 Server.Mappath 方法
Server.Mappath方法将指定的虚拟或相对路径映射到服务器上相应的物理目录上,返回在url中指定的文件的完整物理路径;


应用格式:
Server.Mappath(path)

参数path为虚拟路径字符串

示例4-1.asp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<a href="s2-2.asp" target="_blank">连接同一文件夹中的本地示例文件"s2- 2.asp"</a><br>
<a href="../ch8/p3.asp" target="_blank">连接不同文件夹中的本地示例文件&quot;p 3.asp&quot;</a>
<!--
&lt;对应 <
&gt;对应 >
&quot;对应 "
-->
<%
dim a,b
a=Server.Mappath("s2-2.asp")
b=Server.Mappath("../ch8/p3.asp")
response.write a
response.write "<br>"
response.write b
%>
</body>
</html>
结果显示:
e:\www_root\user_flasher123.com\vhost\HomeDir\longka_flasher123_com\web\wwwroot\a_asp\aa\ch12\s2-2.asp
e:\www_root\user_flasher123.com\vhost\HomeDir\longka_flasher123_com\web\wwwroot\a_asp\aa\ch8\p3.asp

 

五 Server.Execute方法

应用格式:
Server.Execute(path)
path为所要执行的asp页面的路径;

Server.Execute方法用来停止当前的网页,转到另一个网页执行,执行完毕后再返回来继续执行这个页面的语句;

示例s5-1.asp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<%
Server.Scripttimeout=200
response.write Server.Scripttimeout
response.write "<br>"
response.write Server.Htmlencode("<a href='http://bbs.flasher123.com/'>闪客启航</a>")
response.write "<br>"
response.write Server.URLencode("http://bbs.flasher123.com/")
response.write "<br>"
response.write Server.Execute("pp5-2.asp")
response.write "<br>"
response.write Server.Mappath("s2-2.asp")
%>
</body>
</html>

示例pp5-2.asp
<%
dim a,b,c
a=2
b=3
c=a^2+b^2
response.write "a和b的平方和是:" & c
%>

 

六 Server.Transfer

应用格式:
Server.Transfer(path)
path为所要执行的asp页面的路径;

Server.Transfer 执行另一个asp文件,完成后停止;

示例s6-1.asp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<%
Server.Scripttimeout=200
response.write Server.Scripttimeout
response.write Server.Transfer("pp5-2.asp")
response.write Server.Mappath("s2-2.asp")
%>
</body>
</html>

 

七 Server.Createobject

是Server对象中最重要的方法,主要用来建立和返回一个已注册组件实例;
应用格式:

Set Server.Createobject(Objname)

Objname为某个ActiveX组件的名称

文件存取组件

第一节 系统文件对象FileSystemObject

在asp中要对文本文件进行操作,可以使用FileSystemObject对象来实现

=============================================================
一 创建系统文件对象
=============================================================
系统文件对象FileSystemObject主要用来对文件和文件夹进行创建,打开,复制,删除等操作

语法
dim FSO

Set FSO=Server.CreateObject("Scripting.FileSystemObject")

FileSystemObject对象有一些方法,简述如下

一 文件File操作方法:

1 CreatTextFile 新建文件

2 OpenTextFile 打开文件

3 GetFile 返回一个File对象

4 CopyFile 复制文件

5 MoveFile 移动文件

6 DeleteFile 删除文件

7 FileExists 判断文件是否存在

8 GetFileName 返回文件名

9 GetExtensionName 返回文件扩展名

二 文件夹Folder操作方法:

1 CreateFolder 新建一个文件夹

2 CopyFolder 复制文件夹

3 GetFolder 返回Folder对象

4 MoveFolder 移动文件夹

5 DeleteFolder 删除文件夹

6 FolderExists 判断文件夹是否存在

7 GetParentFolderName 返回上一级文件夹名称

 

=============================================================
二 CreatTextFile方法与TextStream对象
=============================================================
在FileSystemObject对象上调用CreatTextFile方法,就可以创建一个新文件,实际应用中,在调用CreatTextFile方法时,通常会用Set语句为该方法创建一个引用实例,这个实例一般叫做文本流对象,用TextStream表示,可以简称TS,其创建语法如下:

dim TS
Set TS=FSO.CreatTextFile(filename,[OverWrite],[Unicode])

参数
(1) filename指定要建立的文件名及其路径
(2) OverWrite布尔值,默认为ture,,为False时不允许覆盖同名文件.
(3) Unicode布尔值,默认为False,用于创建ASCII文件,为ture时将创建Unicode文件.

文本流对象TS有一个光标,和打开记事本的光标类似,用来指示敲入字符将要出现的位置,同时指出要读取字符的位置,文本流对象TS有自己的属性和方法

TS对象的属性与方法:

1 AtEndOfline 属性
只读布尔值,当光标在当前行的末尾时,其值为ture,否则为flase
2 AtEndOfStream 属性
只读布尔值,当光标在文本流末尾时,其值为ture,否则为flase
3 Column 属性
只读整数,统计从行首到当前光标位置之间的字符数
4 Line 属性
只读整数,指明光标所在行在整个文件中的行号

5 Close 方法: 关闭文件

6 Read(Number)方法: 从光标开始读取一定数目的字符

7 ReadAll 方法: 读取文件所有数据

8 ReadLine 方法: 读取一行数据

9 Skip(Number) 方法:将光标的位置移动一定数目的字符串长度

10 SkipLines(Number) 方法:将光标的位置移动一定数目的行数

11 Write(string) 方法:将字符串写入流中

12 Writeline([string])方法:将文本串写入流中

13 Writeblankline(Number)方法:将一定数目的空行写入流中

 

=============================================================
三 OpenTextFile方法与TextStream对象
=============================================================
在FileSystemObject对象FSO上调用OpenTextFile方法,同样可以创建一个TextStream对象,实际应用中,在调用OpenTextFile方法时,通常会用Set语句为该方法创建一个文本流实例,我们用变量TS表示它

语法
dim TS
Set TS=FSO.OpenTextFile(filename,[IOmode],[Creat],[Format])
参数
(1) filename 指定要打开的文件名及其路径
(2) IOmode 可选常量,1为只读(默认),2为可写,8为可添加
(3) Creat 可选布尔值,指定打开文件时如果文件不存在是否要创建该文件,true是,false为否(默认)
(4) Format指定文件格式,-2系统默认,-1为Unicode,0为ASCII

=============================================================
文件存取组件基本练习1
=============================================================
示例1 创建文件添加内容newfile.asp
-------------------------------------------------------------
<html>
<head>
<title>创建文件</title>
</head>
<body>
<%
'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
'调用CreatTextFile方法,创建新文件并且允许覆盖同名文件
dim TS
'Set TS=FSO.CreateTextFile("c:\Inetpub\wwwroot\10ActiveX\test.txt",true)

Set TS=FSO.CreateTextFile(Server.Mappath("test.txt"))

TS.WriteLine("aa")
TS.WriteLine("bb")
TS.Write("cc")
TS.Write("dd")
TS.WriteLine() '输出空字符串时会插入换行符
TS.Write("ss")

TS.Close
Response.Write "新文件创建成功"
%>
</body>
</html>

 

-------------------------------------------------------------
示例2 判断文件是否存在file_estimate.asp
-------------------------------------------------------------
<html>
<head>
<title>判断文件是否存在</title>
</head>
<body>
<%
'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
'调用FileExists方法判断文件test.txt是否存在
'if FSO.FileExists("c:\Inetpub\wwwroot\10ActiveX\test.txt") then
if FSO.FileExists(Server.Mappath("test.txt")) then
Response.Write "文件存在"
else
Response.Write "文件不存在"
end if

%>
</body>
</html>

 

-------------------------------------------------------------
示例3 逐行读取已有文件Open_ReadLine.asp
-------------------------------------------------------------
<html>
<head>
<title>读取已有文件</title>
</head>
<body>
<%
'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
'在对象FSO上调用OpenTextFile方法创建TextStream对象
dim TS
'Set TS=FSO.OpenTextFile("c:\Inetpub\wwwroot\10ActiveX\test.txt")

Set TS=FSO.OpenTextFile(Server.Mappath("test.txt"))

'光标不在文本流末尾时执行循环
Do While Not TS.AtEndOfStream
Response.Write "<h2>"
'逐行读取
Response.Write TS.ReadLine
Response.Write "<br>"
Response.Write "</h2>"
Loop
TS.Close
%>
</body>
</html>

-------------------------------------------------------------
示例4 读取文件所有内容ReadAll.asp
-------------------------------------------------------------

<html>
<head>
<title>读取已有文件所有内容</title>
</head>
<body>
<%
'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
'在对象FSO上调用OpenTextFile方法创建TextStream对象
dim TS
Set TS=FSO.OpenTextFile(Server.Mappath("test.txt"),1)

Response.Write TS.ReadAll
TS.Close
%>
</body>
</html>

------------------------------------------------------------

示例5 清空文件所有内容clear.asp
------------------------------------------------------------
<html>
<head>
<title>清空文件所有内容</title>
</head>
<body>
<%
'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
'在对象FSO上调用OpenTextFile方法创建TextStream对象
dim TS
'打开文件时将文件属性设置为可写(2),则文件内容将被清空
Set TS=FSO.OpenTextFile(Server.Mappath("test.txt"),2)
TS.Close
Response.Write "文件内容已被清空"
%>
</body>
</html>

------------------------------------------------------------

示例6 判断文件内容是否为空content.asp
------------------------------------------------------------
<html>
<head>
<title>判断文件内容是否为空</title>
</head>
<body>
<%
'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
'在对象FSO上调用OpenTextFile方法创建TextStream对象
dim TS
Set TS=FSO.OpenTextFile(Server.Mappath("test.txt"),1)

if TS.AtEndOfStream then
Response.Write "文件无内容"
else
Response.Write "文件内容显示如下:<br>"
Response.Write TS.ReadAll
end if

TS.Close
%>
</body>
</html>

 

-------------------------------------------------------------
示例7 文本计数器visit_number.asp
-------------------------------------------------------------
<html>
<head>
<title>文本计数器</title>
</head>
<body>
<%
'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
'声明一个变量,保存要创建或打开的文件及其路径
MyFile=Server.Mappath("num.txt")
dim TS
'以只读方式打开文件,如果文件不存在就创建它
Set TS=FSO.OpenTextFile(MyFile,1,true)
'判断文件内容是否为空,如果为true则写入1

if TS.AtEndOfStream then
Set TS=FSO.OpenTextFile(MyFile,2)
TS.Write(1)
TS.Close
Response.Write "你访问本页的次数为1"
else
'声明一个变量,保存访问次数
dim visit_number
'读取原有访问次数,并将其转换为长整型数据
Set TS=FSO.OpenTextFile(MyFile,1)
visit_number=Clng(TS.ReadLine)
TS.Close
'将访问次数加1
visit_number=visit_number+1
'将新的访问次数写回文件中
Set TS=FSO.OpenTextFile(MyFile,2)
TS.Write(visit_number)
TS.Close
Set TS=FSO.OpenTextFile(MyFile,1)
visit_number=Clng(TS.ReadLine)
Response.Write "本页的访问次数为"&visit_number
TS.Close

end if

%>
</body>
</html>

 

=============================================================

留言板1 speech.asp
=============================================================
speech.asp
---------------------------------
<html>
<head>
<title>简单文本文件留言板</title>
</head>
<body bgcolor="#E0EeE0">

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;简单文本文件留言板
<form method="post" action="Writer.asp" name="form1" >
主题:
<input type="text" name="title" size="40">**
<p></p>
内容:
<textarea name="body" rows="2" cols="38" >
</textarea>
<p></p>
姓名:
<input type="text" name="name" size="20">**
<input type="submit" value="提交" size="10">
</form>
<hr>
注意: 本留言板保存10条最新记录,多余留言会自动删除
<p></p>
<hr>

<%

dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")

'读取显示所有文件内容
For k=1 To 10
'在对象FSO上调用OpenTextFile方法创建TextStream对象
Set TS=FSO.OpenTextFile(Server.Mappath("test"&k&".txt"))

'光标不在文本流末尾时执行循环
Do While Not TS.AtEndOfStream

'逐行读取

Response.Write TS.ReadLine
Response.Write "<br>"
Loop
Response.Write "<hr>"
Next
TS.Close

%>

</body>
</html>

----------------------------------------------
Writer.asp
----------------------------------------------

<%
Response.Buffer=true

if Trim(Request.form("title"))<>"" and Trim(Request.form("body"))<>"" and Trim(Request.form("name"))<>"" then

dim title,body,name
title=Trim(Request.form("title"))
body=Trim(Request.form("body"))
name=Trim(Request.form("name"))

'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")

'调用CreatTextFile方法,创建新文件并且允许覆盖同名文件
dim TS
Set TS=FSO.CreateTextFile(Server.Mappath("test0.txt"))
'将表单信息写入文本
TS.WriteLine("主题:"&title)
TS.WriteLine("内容:"&body)
Response.Write "<br>"
TS.WriteLine("发言人:"&name)
TS.WriteLine("发言时间:"&now())
TS.Close

'循环语句将一个文件内容移动到下一个文件中
For i=9 To 0 step -1
Set TS=FSO.OpenTextFile(Server.Mappath("test"& i &".txt"),1)
dim tt
tt=Trim(TS.ReadAll)
TS.Close
'将以上数据写回文件中
Set TS=FSO.OpenTextFile(Server.Mappath("test"&i+1&".txt"),2)
TS.Write(tt)
TS.Close
Next

end if

Response.redirect("speech.asp")

%>

 

 

=============================================================

留言板2 leave_word.asp
=============================================================

<html>
<head>
<title>简单留言板</title>
</head>
<body bgcolor="#CCCCFF">

简单留言板
<form method="post" action="" name="form1" >
主题:
<input type="text" name="title" size="40">**
<p></p>
内容:
<textarea name="body" rows="2" cols="38" >
</textarea>
<p></p>
姓名:
<input type="text" name="name" size="20">**
<input type="submit" value="提交" size="10">
</form>

<%
dim title,body,name
title=Trim(Request.form("title"))
body=Trim(Request.form("body"))
name=Trim(Request.form("name"))
dim myPageCounter
'创建计数器组件实例
Set myPageCounter=Server.CreateObject("MSWC.PageCounter")
'获取当前页访问次数
dim VisitNumber
VisitNumber=myPageCounter.Hits
Response.Write "当前页访问次数"&VisitNumber

'创建FileSystemObject对象
dim FSO
Set FSO=Server.CreateObject("Scripting.FileSystemObject")

if title<>"" and body<>"" and name<>"" then
'调用计数器组件的PageHit方法,将当前页访问次数加1
myPageCounter.PageHit
'如果访问次数大于9,设置访问次数为0
if VisitNumber>9 then
myPageCounter.Reset
end if

Response.Write "<p></p>"
'调用CreatTextFile方法,创建新文件并且允许覆盖同名文件
dim TS
Set TS=FSO.CreateTextFile(Server.Mappath("test"&VisitNumber&".txt"))

'将表单信息写入文本
TS.WriteLine("主题:"&title)
TS.WriteLine("内容:"&body)
Response.Write "<br>"
TS.WriteLine("发言人:"&name)
TS.Close
end if
%>

<hr size=3 width=100%>

<%
if FSO.FileExists(Server.Mappath("test1.txt")) then
Response.Write "本留言板只保留最新10条留言,超过时旧留言会自动删除"
Response.Write "<p></p>"
Response.Write "<hr>"
For i=1 To 10
'在对象FSO上调用OpenTextFile方法创建TextStream对象
Set TS=FSO.OpenTextFile(Server.Mappath("test"&i&".txt"))

'光标不在文本流末尾时执行循环
Do While Not TS.AtEndOfStream

'逐行读取

Response.Write TS.ReadLine
Response.Write "<br>"
Loop
Response.Write "<p></p>"
Response.Write "<hr>"
Next
TS.Close

end if

%>

</body>
</html>

 

 

 

 



 

posted on 2007-08-10 11:03  挖豆  阅读(776)  评论(0编辑  收藏  举报