第9章 动态网站设计:ASP基础
9.1 ASP简介(P276)
客户端 浏览器 Windows98 |
HTTP Request 请求 ——————→ ←—————— HTTP Response 响应 |
Web 服务器 Windows2000 IIS5.0 ASP |
ODBC ——————→ ←—————— SQL 查询结果 |
SQL 数据库 服务器 |
1.动态网站的几种设计方法
(3)ActiveX Data Object(ADO)
ActiveX:控件,实现特殊功能的部件。
与ASP结合建立提供数据资源的网页。
(4)ASP技术(P277)
服务器端脚本环境,内含于Windows2000 IIS5.0。
ASP的运行环境、ASP文件的保存和浏览
(5)ASP的运行环境
* 动态服务器网页ASP:服务器端的编写环境,
用于创建和运行动态的交互式Web服务器应用程序。
ASP文件中可以包含HTML命令、脚本命令以及COM组件调用。
服务器处理收到的ASP文件中的服务器端脚本,如连接数据库。
* Windows 2000 Server 平台上使用IIS 5.0
添加/删除程序—添加/删除 Windwos 组件—
Internet信息服务(IIS);
测试:IE 5.0 地址栏输入:http://localhost
* Windows NT Server 4.0 平台上安装IIS 4.0
Windows NT Server 4.0 的 Option Pack 中附有IIS 4.0
* Windows 98/Me 平台上安装PWS 4.0
Windows 98/Me光盘\add-ons\pws中附有 PWS 4.0;
先安装Windows 98,另行安装PWS 4.0。
(6)保存和浏览ASP文件
* 将ASP文件保存在WWW站点的根目录中
安装IIS后,C:\Inetpub\wwwroot\wzss.asp(网站搜索)
* 浏览该ASP文件时,在IE地址栏中输入
http://主机名/wzss.asp
本机浏览该ASP文件时,在IE地址栏中输入
http://localhost/wzss.asp
* 将ASP文件保存在Web共享文件夹中
设置Web共享文件夹:
右击文件夹ddxie—共享;
文件夹属性—Web选项卡—
共享点在—默认Web站点—共享这个文件夹。
将ASP文件保存在Web共享文件夹中;
* 浏览该ASP文件时,在IE地址栏中输入
http://主机名/ddxie/wzss.asp
2.ASP特点
使用VBScript,JScript脚本语言,结合HTML代码。
无须编译直接在服务器端执行,用FrontPage编辑。
* .asp文本包括:HTML、VBScript、JScript、SQL、ASP语法。
举例:ASP文件中使用两种脚本语言
<!-HTML语言-!>
<HTML>
<BODY>
<TABLE>
<!-ASP语句-!>
<% Call Sample %>
<!-定界符:%……%,调子过程-!>
</TABLE>
<% Call ViewDate %>
<!-调函数-!>
</BODY>
</HTML>
<!-VBScript脚本语言-!>
<SCTIPT LANGUAGE=VBSscript RUNAT=Server>
Sub Sample
Response.Write"<TR><TD>Call</TD><<TD>Me</TD></TR>"
<!-TR表行,TD表格数据-!>
End Sub
</SCRIPT>
<!-JScript脚本语言-!>
<SCTIPT LANGUAGE=JSscript RUNAT=Server>
function ViewDate()
{ vax x
x = new Date()
Response.Write(x.toString())
}
</SCRIPT>
举例:ASP文件中使用表单 hygl.asp
<HTML>
<BODY>
欢迎光临WEB站点,请填写以下信息:
<FORM METHOD="POST" ACTION="hygl.asp">
<P>姓:<INPUT NAME="xing" SIZE="4">
<P>名:<INPUT NAME="ming" SIZE="4">
<P>称呼:<INPUT NAME="cf" TYPE=RADIO VALUE="xs">先生
<INPUT NAME="cf" TYPE=RADIO VALUE="xj">小姐
<P><INPUT TYPE=SUBMIT><INPUT TYPE=RESET>
</FORM>
<% cf=request.form("cf") if cf="xs" then %>
欢迎您<%=requsest.form("xing")%>先生。
<% elseif cf="xj" then %>
欢迎您<%=requsest.form("xing")%>小姐。
<% else %>
欢迎您<%=requsest.form("xing")& " "&requsest.form("ming")%>。
<% elseif %>
</BODY>
</HTML>
3.表单制作
(1)使用FrontPage HTML视图编辑ASP源代码
FrontPage编辑区—
HTML视图—输入ASP源代码—
普通视图—查看表单。
例如:欢迎光临 hygl.asp
欢迎光临WEB站点,请填写以下信息:
<% cf=request.form("cf") if cf="xs" then %> 欢迎您<%=requsest.form("xing")%>先生。 <% elseif cf="xj" then %> 欢迎您<%=requsest.form("xing")%>小姐。 <% else %> 欢迎您<%=requsest.form("xing")& " "&requsest.form("ming")%>。 <% elseif %>
(2)使用FrontPage菜单制作表单
FrontPage编辑区—
普通视图—制作表单—插入表单、单行文本框、
滚动文本框、复选框、单选按钮、下拉菜单、按钮。
HTML视图—查看源代码。
例如:欢迎光临 hygl.htm
9.2 在ASP中应用脚本语言
9.2.1 脚本语言简述(P282)
* HTML——脚本语言——Java,C++。
* 脚本引擎:安装在服务器端,处理脚本的COM对象。
ASP为脚本引擎提供主机环境,
并把.asp文件中的脚本交给脚本引擎处理。
9.2.2 脚本基础知识(P283)
1.设置主脚本语言
如<%@LANGUAGE=JScript%>
主脚本语言:处理在分界符<%……%>内部命令,默认是VBScript。
4.包括注释
VBScript注释符:
REM ……
'……
<!-……-!>
JScript注释符://……
6.变量和常量(P285)
举例:全局和局域变量
<%
Dim Y=1 //显式定义全局变量
Call SetLocalVariable //调用设置局域变量的子过程
Response.Write Y //返回值全局变量
Sub SetLocalVariable //设置局域变量的子过程
Dim Y //显式定义局域变量
Y=2
End Sub %>
* 字符串:"123",
数值:123,
日期时间:#11-12-2002#,
9.在脚本中包含其他文件(P288)
格式:<!-# include virtual|file="filename"->
虚拟目录 文件名
虚拟目录 virtual |
文件名 filename |
包含文件 include |
\Dir1 | file11.asp | file="file12.asp"
virtual="Dir2/file2.asp" |
file12.asp | ||
\Dir2 | file2.asp |
9.2.3 VBScript 的基本语法(P289)
1.VBScript 数据类型
变体型Variant:数字、字符串信息。
2.VBScript 中的条件语句(P290)
if...then ...else
select case
3.循环语句
do...loop 直到条件为“真”时循环。
while...wend 当条件为“真”时循环。
for..next 指定循环次数。
for each...next 对于每项或每个元素重复执行。
4.过程和函数(P293)
* 过程 Sub
函数 Function
* "&……&" 替换后转成字符。
MsgBox和InputBox:提示用户输入信息(Messege)的文本框。
9.3 ASP的内建对象
9.3.1 基本概念(P294)
* Active Server动态交互服务器:
组件应用程序管理、数据库访问等。
* ASP(Active Server Pages):
在服务器上运行ActiveX脚本和ActiveX组件的服务器方脚本环境。
* ActiveX:多语言软件组件在同一网络环境中互操作。
* ADO(Active Data Object):Active数据对象。
* DSN(Data Source Name):数据源名称。
* event:操作键盘、鼠标的事件。
* object:对象是包含操作和数据的变量,对象=操作+数据。
* ODBC(Open DataBase Connection):开放数据库连接。
* SQL(Structured Query Language):结构化查询语言。
定义和访问关系型数据库的国际标准。
* 组件:包含在动态链接库 .dll或可执行文件中的可执行代码。
* 用ASP的Server.createObject方法创建对象实例。
举例:set db=Server.createObject("ADODB.Connection")
9.3.2 ASP的内建对象 Request(P295)
* Request 对象:服务器端获取客户端发送的HTTP信息。
* 语法:Request[.集合|属性|方法](变量)
* 常用对象语法:
1.Form 表单
检索HTTP请求正文中的表格元素的值。
Request.Form(element) [(index)|.Count]
表格元素 访问某个 元素个数
2.QueryString 集合检索 HTTP
查询字符串中(? )后变量(string)的值(this is a sample)。
(1) 超链接样式:string sample
(2) 超链接HTML源文件:
< A HREF="example.asp? string=this is a sample">
string sample
</A>
(3) 超链接源:string sample
(4) 超链接目标:example.asp?string=this is a sample
(5) 超链接结果:this is a sample
3.Cookies 标签(P296)
Web站点在客户机硬盘上留下标识客户的标记。
9.3.3 ASP的内建对象 Response
* Response 对象:控制发送给用户的信息。
* 语法:Response[.集合|属性|方法]
9.3.6 ASP的内建对象 Server(P304)
* Server 对象:提供对服务器上的方法和属性的访问。
* 语法:Server[.属性|方法]
(4)CreateObject 方法(P305)
创建ActiveX组件实例,实现数据库连接、文件访问等功能。
* 语法:Server.CreateObject("Component Name")
9.4 ASP 的常用组件—Database Access组件(P306)
* 用ASP访问远程虚拟主机的数据库要求:
远程虚拟主机支持ASP访问SQL数据库。
用DSN-less方法,
在ASP文件中指定远端虚拟主机上数据库文件的位置;
数据库文件大,如,wzk_Data.MDB 1MB;
* 访问数据库:
通过调用ASP内建的ActiveX组件连接数据库和在线访问数据库。
* ASP可安装的Database Access组件:
提供用ActiveX DataObjects(ADO)对数据库的访问。
* 通过ADO连接和操作Web数据库的步骤(P308)
1.指定要连接的数据库
(1)用DSN方法在本机建立系统数据源名称。
开始—程序—管理工具—数据源(ODBC);
SystemDSN—添加DSN入口—Microsoft Access Drive;
Data Source Name:如网站域名库 wzymk;
浏览—数据库存放位置,如 F:\ddxie;
ASP程序中指定DSN:<%connstr="DSN"%>
(2)用DSN-less方法
在ASP文件中指定远端虚拟主机上数据库文件的位置。
<%connstr=" '连接字符
DBQ="+ server.mappath("database/source.mdb")+" ;
'数据库查询 映射物理目录(P305)
DefaultDir=;
DRIVER={Microsoft Access Driver(*.mdb)};
DriverId=25;
FILE=MS Access;
ImplicitCommitSync=Yes; '隐含提交
MaxBufferSize=512;
MaxScanRows=8; '最大扫描行数
PageTimeout=5; '页面超时控制5分钟(P303)
SafeTransactions=0;
Threads=3; '线程
UserCommitSync=Yes;
"%>
* 打开数据库:创建ActiveX组件实例,连接和访问数据库。
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open connstr
%>
2.执行SQL指令RecordSet,取变量名rs。
在数据库表中查询网站类别为“文件教育”的记录。
<%
sql=
"select * from database where 网站类别 like '文件教育%%'"
set rs = Conn.Execute(sql)
%>
3.使用 RecordSet属性和方法,并显示执行的结果。