篇一:ASP基础知识
第4章 ASP基础知识
学习指导
ASP是一个编程环境,在其中可以混合使用HTML,脚本语言来创建服务器端功能强大的Internet应用程序。作为Web程序设计语言的组成部分,可以在HTML语言中直接嵌入来编制ASP程序。它以句法简单,容易使用,功能强大而成为当前流行的一种开发工具。只要在HTML语言,脚本语言基础上,了解ASP内置对象的属性和方法,一些控件的使用,就可以编写出ASP程序。
ASP作为Microsoft开发的服务器脚本环境,网络编制Web程序的最主要技术,通过学习本章,应该对ASP有个比较全面的了解,要能基本能读懂、能修改和会利用现成的ASP文件。
本章学习方法是在本书网站找到一些已经编制好的,比较简单的ASP文件,先运行一下,再读懂它,找到关键语句,进行适当修改后再试运行。 通过本章学习,要求能够做到:
?
?
?
? 掌握ASP基本语法要求。 基本能读懂ASP文件,并能根据需要修改源代码, 对于ASP主要内置对象、常用控件的基础知识,只要求有个大概的了解,在技术篇中用到时再在注释时说明或专门讲解。技术 能读懂、插入一些常见的公用文件。
4.1 ASP概述
ASP(Active Server Pages)称服务器端动态网页,是Microsoft开发的服务器脚本环境。通过ASP可以与前面介绍的HTML、脚本语言和一些组件相结合来创建动态、交互而且高效的Web应用程序,用来进行网络信息处理工作。由于ASP是微软开发的脚本语言技术,它嵌入到IIS中,因此,ASP成为Windows用户首选的一种信息系统开发环境。
4.1.1 ASP工作原理
当浏览器向Web服务器发出请求 .asp文件时,服务器端的脚本便开始运行,Web服务器调用ASP,用它从头至尾处理所请求的文件、执行脚本命令,并将Web页以HTML文件格式发送到浏览器。
因为脚本运行于Web服务器端而不是客户端,生成发送到浏览器的HTML页等工作便由Web服务器负责。所以ASP文件不能像HTML文件哪样直接被浏览器打开,而必须在服务器端运行环境下通过解释程序才能执
行。因为返回到浏览器的只是脚本的运行结果,所以Web服务器端脚本无法被预先复制,从而ASP可以防止用户查看源代码和复制脚本。
直译式语言环境,编程环境简单(纯文本文件形式而任何文本编辑器都能编辑),传输数据小,易于存取数据库等主要优点,加上语法结构简单、易学而成为当前采用最为普遍的Web应用程序。但是,ASP也存在运行速度和某些网络操作系统不支持等问题。
4.1.2 ASP的功能
动态网站对于Web开发者而言,不仅能获得用户的反馈信息,根据用户需求进行网站更新,还能够通过用户身份确认,实现信息的有偿提供,获取收益;对于用户,能增强在互联网的参与度,从被动的信息接受者转变为信息的获得者,用户能根据需要,迅速从网上找到有用的信息。
ASP的强大功能使它的技术成为当今世界网络上应用最多的服务器端脚本设计环境,其功能主要表现在以下方面。
(1)处理用户以表单形式提交的访问请求;对表单的响应可见2-1.htm与2-1.asp的例子。
(2)直接操作数据库,进行查询、插入、更新、删除等操作;
(3)记录客户端相关数据信息;
(4)实现多个页面间数据共享;
(5)在应用中嵌入Active X,COM组件和JavaApplet。
把以上这些功能综合起来,能实现网络信息处理和管理工作。
4.1.3 ASP基本语法
(1)ASP程序文件以.asp为结尾。服务器在解释Web页面时,如果是.htm或.html文档,则直接发送客户端,并不进行任何处理。如果是.asp文档,服务器会对客户端的请求进行处理后,将结果传送到客户端。
(2)字母不分大小写,除字符串外,必须在英文半角状态下输入标点符号,否则不能正常运行。
(3)ASP语句必须分行写,一条ASP语句就是一行,不能将多条ASP语句写在一行里,也不能将一条语句写在多行里,太长的语句加下划线作为续行符或者通过自动换行的方法。
(4)ASP语句经常与HTML标记结合使用,但是要用界定符隔开。ASP文档中所有的ASP语句及ASP脚本语句必须以<% %>标记来界定,如例1-1.asp中<% =now %>,要以每行界定一次,也可以多行界定一次。
(5)ASP调用有些脚本(例如VBScript)解释器会从指令中删除空白字符,在输出空白字符时要使用HTML不间断空格( )来实现。
4.1.4 ASP输出方法
1.用ASP内置对象的response
用ASP内置对象的response 输出的语法:
response.write"要写的内容"或response.write(变量名)
例4-2 Response.write的用法(ch4/example/4-2.asp)。 <%
Response.write("欢迎光临!")
%>
例4-3 循环语句(ch4/example/4-3.asp) <%@ LANGUAGE = VBScript %>
<HTML>
<HEAD>
<TITLE>循环语句的例子</TITLE>
</HEAD>
<BODY>
<%
'以下循环输出Hello everyone!字符串,字体由小变大
for i=1 to 5
response.write "<font size=" & i & "> Hello everyone! </font><br>"
next
%>
</BODY>
</HTML>
2.用="?"
可以用<% ="?" %>输出变量和字符串,其中“?”可以是一个字符串(要用双引号括起来)或者是一个变量。
例4-4 用<% = 变量 %>方法输出变量(ch4/example/4-4.asp)。
<% =欢迎光临!%>
用<% =? %>把变量“?”所代表的值显示在客户端的浏览器中。
4.2 ASP文件的基本组成
一般说来,ASP文件可以由HTML标记,脚本语言,内置对象和Active X服务器控件组成。
HTML标记
控制输出结果的效果,是ASP文件的“静态”内容。 脚本语言,可以使静态的HTML网页成为动态网页,默认的语言为VbScript。内置对象,可以提供并处理一般Web应用程序的标准机制,例如:取得客户端信息、响应信息、储存变量等,用来处理来自于不同客户端的需求,回应动态的内容给客户端。
Active X 服务器控件针对内置对象功能的不足,实现读写文本文件,建立数据库连接,取得浏览器信息,制作广告板,管理URL内容等。
4.2.1 ASP内置对象
ASP内置对象可以在程序中直接使用,包括Application,Request,Response,Server,Session,ObjectContext等6种。
1.Application对象
Application对象在应用程序内共享信息,它可以控制服务器端应用程序的启动和终止状态,并保存整个应用程序过程中的信息。提供所有访问这个站点的用户以共同信息,使得不同用户之间可以相互通讯。在ASP中,多个用户可以共享Application对象,因此,必须用lock和unlock方法来确保多个用户不能同时改变Application对象。
Application对象通常用来实现存储应用程序级变量,锁定与解锁全局变量,网站记数器等。
2.Request对象
Request对象用来收集客户端传入HTTP请求信息,主要从客户端的表单中用POST方法或GET方法传递的参数,Cookie和用户认证信息等ASP程序进行信息处理的原始数据。通过Request对象也可以访问发送到服务器端的二进制数据,如文件上传。
Request对象用得最多的是Form方法和QureyString方法,其语法格式分别为
Request.Form(“参数”)
在例 2-1.asp 中就是用Form方法获取参数。
例4-5 Form方法运用(example/4-5.asp) <%@ Language=VBScript %>
<HTML>
<HEAD>
<TITLE>选择</TITLE>
</HEAD>
<BODY>
请选择你所喜欢的直辖市<hr>
<FORM ACTION="order.asp">
<input name="city" type=checkbox value="北京">北京<Br>
<input name="city" type=checkbox value="天津">天津<Br>
<input name="city" type=checkbox value="上海">上海<Br>
<input name="city" type=checkbox value="重庆">重庆 <input type=submit value="提交"></FORM>
<hr>
<%
if Request.QueryString("city").Count=0 then
%>
你没有喜欢的直辖市
<%else%>
你喜欢
<%
for each city in Request.QueryString("city")
response.write "<br><font color=green>" & city & "</font> next
end if
%>
</BODY>
</HTML>
QureyString方法从查询字符串中读取用户提交的数据。其语法为: Request.QureyString(“参数”)
用QureyString方法获取参数与用Form方法获取参数一样。只需将例2-1.asp 中的Form更改成QureyString就可以。
例4-6 用QureyString方法获取参数(ch4/example/4-6.asp)。 <%
dim name,sex,love,xl,con
name=request.QureyString("t1")
%>
以下是你的资料请核对<br>
sex=request.QureyString("r1") love=request.QureyString("c1") xl=request.QureyString("d1") con=request..QureyString("s1")
篇二:ASP基础知识
一、Asp基本知识
1.Asp是Active Server Pages的简称,是解释型的脚本语言环境;
2.Asp的运行需要Windows操作系统,9x下需要安装PWS;而NT/2000/XP则需要安装Internet Information Server(简称IIS);
3.Asp和JSP的脚本标签是“<%%>”,PHP的则可以设定为多种;
4.Asp的注释符号是“'”;
5.使用附加组件,可以扩展Asp的功能。
from
例子:
HelloWorld_1.asp
<%="Hello,world"%>
效果:
Hello,world
HelloWorld_2.asp
<%
for i=1 to 10
response.write "Hello,world"
next
%>
效果:
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
注意:Asp不区分大小写;变量无需定义也可使用,转换方便;语法检查很松。
二、Asp内置对象的使用:
可以使用下面的任何ASP内置对象,而不必在ASP脚本中特别声明。
1. Request:
定义:可用来访问从浏览器发送到服务器的请求信息,可用此对象读取已输入HTML表单的信息。
集:
Cookies:含有浏览器cookies的值
Form:含有HTML表单域中的值
QueryString:含有查询字符串的值
ServerVariables:含有头和环境变量中的值
例子:
request_url.asp
<%
'获取用户输入,并存入变量
user_id=request.querystring("user_id")
user_name=request.querystring("user_name")
'判断用户输入是否正确
if user_id="" then
response.write "User_id is null,please check it"
response.end
end if
if user_name="" then
response.write "User_name is null,please check it"
response.end
end if
'打印变量
response.write user_id&"<br>"
response.write user_name
%>
效果:
当访问http://10.1.43.238/course/request_url.asp?user_name=j时: User_id is null,please check it
当访问http://10.1.43.238/course/request_url.asp?user_name=j&user_id=my_id时:
my_id
j
思考:变量是如何在URL中传递和被Asp页面获取的?
request_form.htm
<style type="text/css">
<!--
.input {background-color: #FFFFFF; border-bottom: black 1px solid;border-left: black 1px solid; border-right: black 1px solid;border-top: black 1px solid; color: #000000;font-family: Georgia; font-size: 9pt;color: midnightblue;}
a:link {color: #1B629C; text-decoration: none}
a:hover {color: #FF6600; text-decoration: underline}
a:visited {text-decoration: none}
-->
</style>
<center>
<form name="course" action="request_form.asp" method="post">
User_id:<input type="text" name="user_id" maxlength="20" class="input"><br><br>
User_name:<input type="text" name="user_name" maxlength="30" class="input">
</form>
<br><br>
<a href="javascript:document.course.submit();"> 提 交 </a>
</center>
request_form.asp
<%
'获取用户输入,并存入变量
user_id=request.form("user_id")
user_name=request.form("user_name")
'判断用户输入是否正确
if user_id="" then
response.write "User_id is null,please check it"
response.end
end if
if user_name="" then
response.write "User_name is null,please check it"
response.end
end if
'打印变量
response.write user_id&"<br>"
response.write user_name
%>
注意:form的action的指向,request_form.asp和request_url.asp在源代码上的区别?
2. Response:
定义:用来向浏览器回发信息,可用此对象从脚本向浏览器发送输出。
集:
Cookies:在浏览器中加入一个cookie
方法:
End:结束脚本的处理
Redirect:将浏览器引导至新页面
Write:向浏览器发送一个字符串
属性:
Buffer:缓存一个ASP
CacheControl:由代理服务器控制缓存
ContentType: 规定响应的内容类型
Expires:浏览器用相对时间控制缓存
ExpiresAbsolute:浏览器用绝对时间控制缓存
例子:
response_redirect.asp
<%
'去google看看吧
response.redirect "http://www2.google.com"
response.end
%>
response_cookies.asp
<%
'设置和读取cookies
response.cookies("time_now")=now()
response.write request.cookies("time_now")
%>
效果:
当访问http://10.1.43.238/course/response_cookies.asp时:
2002-9-1 16:20:40
response_buffer.asp
<%'response.buffer=true%>
<a href="a">a</a>
<%response.redirect "request_form.htm"%>
效果:
①.当关闭IIS的缓冲功能,访问该页面时出错
a
答复对象 错误 'ASP 0156 : 80004005'
头错
/course/response_buffer.asp,行3
HTTP 头已经写入到 客户浏览器。任何 HTTP 头的修改必须在写入页内容之前。 ②.当关闭IIS的缓冲功能,去掉文件第一行的注释,则页面重定向成功
③.当打开IIS的缓冲功能,无论是否去掉文件第一行的注释,页面重定向都成功
3. Server
定义:可在服务器上使用不同实体函数,如在时间到达前控制脚本执行的时间。还可用来创建其他对象。
方法:
CreateObject:创建一个对象实例
HTMLEncode:将字符串转化为使用特别的HTML字符
MapPath:把虚拟路径转化成物理路径
URLEncode:把字符串转化成URL编码的
ScriptTimeout:在终止前,一个脚本允许运行的秒数
例子:
server_htmlencode.asp
<%
'html encode
response.write server.htmlencode("a""time_now")
%>
效果:
a"time_now
查看源文件时显示为:a"time_now
思考:为什么不是a""time_now这种效果?源文件是怎么了?
server_mappath.asp
篇三:ASP基础知识点