第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

 

欢迎光临WEB站点

请填写以下信息:

姓:

名:

称呼: 先生 小姐

欢迎您,

 

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属性和方法,并显示执行的结果。