网络程序设计概述

9 篇文章 0 订阅

第1章        网络程序设计概述

  1.1 网络程序设计语言的产生背景

*计算机网络的发展:局域网; 广域网;互联网
*网络的主要服务:WWW浏览、电子邮件、FTP服务、新闻组、Telnet远程登录等
*超文本标记语言:HTML Hypertext Markup Lanuage
HTML元素:文本、图像、超链接、表格 组合而成
特点:静态网页:网页一旦设计好即固定不变,除非重新修改网页;简单易用
程序构架:C/S构架:Client/Server:客户/服务器构架
如:各种信息管理系统:学校、银行、财务等
 B/S构架:Browser/Server:浏览器/服务器构架
电子商店、远程教育、办公系统等
传统方法:通过CGI(Common Gateway Interface)通用网关接口实现。需专业人士才能掌握该方法
ASP、PHP、JSP语言

 1.2 目前主要的网络程序设计语言

共性:将“脚本语言”嵌入到HTML文档中

1.2.1 ASP概述
*ASP:Active Server Page
*生产商:微软
*运行环境:Windows98+PWS 4.0 、Windows NT、Windows 2000
*脚本语言:VBScript 或 javascript(在服务器上运行)
*使用方法:内部对象+内部组件+第三方组件
*优点: 源于VB
嵌入HTML文档,直接解释运行;与浏览器无关
利用对象、组件技术,简单易用
*缺点:速度比HTML慢:服务器主读入所有源程序->编译->标准HTML
网络操作系统不支持ASP文件或支持不佳

1.2.2 PHP 概述
*语言:Perl语言
*运行环境:Unix Linux Windows
黄金组合:PHP + MySQL +Apache WEB服务器
*脚本语言:C 或 JAVA、Perl(在服务器上运行)
优点:免费;源代码开放;多平台支持、在服务器端运行;效率高
缺点:无大公司支持;安装复杂;学习有一定难度

1.2.3 JSP 概述

*JSP者JAVA Server Pages
*生产商:太阳微系统公司
*运行环境:所有服务器系统
*将JAVA程序段、JSP标记嵌入HTML中
优点:多平台支持;JAVA语言支持
缺点:开发环境;掌握难度

《ASP程序》课程 学习方法:

多阅读、多练习、多体会
*结合以前学习语言的方法:C语言、VB语言
ASP语言:与VB较接近(属高级语言类),直观,简单易学、易用
*尽管配套光盘已有本书已将所有例题;但建议大家能认认真真输一遍;尽量不要复制、粘贴(将别人的“拿”来不是真正程序员的做法,但借鉴一下可以);最起码将里面的关键语句要输一遍;另外在学习过程中,已经非常明白的语句,在练习过程中只要对程序的运行影响不大,为了加快学习进度可暂时不输入(因现在主要精力是在学习、体会知识而不是真正在设计)
*要真正成为一个程序设计人员:做事要有耐心、恒心;屁股要坐得住;几千、几万中符号中有一个错误符号,要有毅力将其找出来。
*计算机操作类课程;理论上都不难学,属大众化,基本上稍加练习就入门,即使没人指点只要稍加琢磨一下也就明白;但要“精”则需比较全部的知识,除了方法、技巧外,更需懂心理学、艺术等方面的知识;因为网页是一种视觉艺术,方法不难学但艺术修养不是一早一夕就能培养出来的,所心课余还看些心理学、撮影、绘画等知识,培养自己的审美观。

Web站点的规划和设计

Web站点:网站内容、网布布局与风格、组织材料

*确定目标访问者
明确自己关注的事情,要有自己的特色,与众不同的地方,有视觉冲击力;网站的定位

*组织网页材料
网站是用来做什么的?
哪些需要发布?
哪些材料访问者感兴趣?
哪些材料与网站的风格相匹配?
材料从哪里来?
材料:文安、图片、视频、音频、文件、小程序等
加工、整理、存储:图片大小、格式;特效等

*规划网站的结构
 总体结构  分支结构

*网页布局
基调
页面尺寸:不超过两屏
整体风格:风格保持一致;但又不类同
矩形:代表正式、规则
圆形:柔和、团结、温暖、安全
三角形:力量、权威、牢固、侵略
菱形:平衡、协调、公平

*网页布局方法:手工布局、软件布局

*网页布局的技术:
层叠样式表(CSS):精确定位
表格布局
框架布局

*颜色选择的原则:
选择互补色:尽量选择在自然环境中的组合颜色
保持一致:颜色要与WEB页采用的图像颜色协调一致
对比鲜明:确保文本、图片颜色和背景色对比鲜明
亮度适中:与整个WEB站点的基调一致
主次分明:背景图片的颜色不能喧宾夺主,颜色比较浅,只起衬托作用。

*图片文件格式:
GIF格式:非失真压缩技术,像素信息不丢失,丢失的只是图形的颜色,256色
 主要用途:透明效果、小图形
JPG/JPEG格式:失真式压缩方式,像素丢失,颜色不损失,24Bit色

HTML基础
*可视化编辑软件:FrontPage Dreamweaver
网页文件命名:

*不包含空格

*不包含特殊符号:如&,英文字母、数字、下划线

*名称区分大小写

*首页文件名:index.htm  index.html

2.1 构建HTML网页

1.HTML网页有基本构成
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
</body>
</html>

*html头部标记
*head
*title
*body
*<meta name=〃description〃 content=〃……文档的描述……〃>
<meta name=〃keywords〃 content=〃……搜索的关键词……〃>
<meta name=〃author〃 content=〃……作者……〃>
<meta http-equiv=〃refresh〃 content=5;URL=http://www.  …>
<meta http-equiv=〃Content-Type〃 content=〃text/html; charset=gb2312〃>

2.HTML标记的特点
纯文本文件:由标记符+文本构成
*标记符用<>括起,成对使用
<标记名>       </标记名>
*标记符的属性
<标记名 属性名=〃值〃   >
*空格分隔
*单引号或双引号〃〃
*可以嵌套

2.2文本及版面风格控制

2.2.1 文本控制

1.字体控制
<font face=〃字体〃温表 size=〃字号〃 color=〃#RRGGBB〃>
*默认字号<basefont size=字号>          *<font size=+1> 在默认字号基础上,增大1号

2.标题字号 <H1>…………<H6>

3.字体效果
<b>加粗; <i>斜体; <u>下划线; <strike>中划线;  <blink>闪烁字;  <sup>上标; <sub>下标;

2.2.2 版面风格控制
1.网页整体风格控制
*网页背景色:bgcolor
*文本背景色:text
背景色:<body bgcolor=#RGB>      *安全色:数值相同 标准安全色:00 33 66 99 CC FF
*网页背景图:background
*bgproperties=FIXED :背景图不滚动
*背景图:<body background=〃图片名称〃> bgproperties=fixed 水印效果(图片不随滚动条而滚动)
* 链接色:<body link=#RGB vlink=#RGB alink=#RGB >
普通    访问过的  当前活动
**在Dreamweaver中设置“网页”属性

2.分段、换行控制
*分段:<p>
*换行:<br>
*禁止换行:<nobr>

3. 预格式化文本<pre>

4.画线:
<hr width=线宽 size=线高 align=left/center/right noshade>

2.3 图像、超链接和表格

2.3.1 图像、超链接

1图像标记
<img src=〃图像名称〃  alt=〃提示文字〃 width=〃宽度〃  height=〃高度〃 border=〃边框宽度〃
align=〃left/right/top/middle/bottom〃等  hspace=〃〃   vspace=〃〃 >与文本的间距

2.超链接
<a href=〃URL地址〃 >
<a href=〃mailto: Email地址〃 >
*锚点设置 <a name=〃…〃>
<a href=〃网页文件名#锚名〃>

2.3.2 表格
1 表格有组成:标题、表头、行、单元格
2.定义表格的标记符
* <table>
*<caption>标题
*<th>表头单元格
*<tr>产生一行
*<td>产生一格:<td> 单元格数据 </td>

3.表格标记符的属性
*<table>标记符的属性:
** width  height
** border
   bodercolor bodercolorlight bodercolordark
** bgcolor
** background
**单元格间距cellspacing 边距cellpadding
**align
 *<tr>标记符的属性:行
**bgcolor   *align
 *<td>标记符的属性:
bgcolor bordercolor width height
align valign(垂直方向对齐)
* 单元格的合并
rowspan=几行
colspan=几列

2.4 HTML的表单

2.4.1 表单的定义

1.表单的定义方法
<form name=〃表单名〃 action=〃URL〃 method=〃post/get 〃  enctype=〃编码方式〃>

2.表单的属性
* name属性:表单对象的名称
* document. 表单对象名.界面中对象名.属性名
* method=POST / GET>
  get方法:表单中的数据是附加在URL地址之后发送
http://localhost/index.asp?对象名=值&对象名=值
  get:有数据量限制:256个
POST:以文本方式传输
*enctype:编码方式 默认:URL
表单数据发送到邮箱时,enctype=〃text/plian〃
*action:处理表单数据的程序、文件

3.表单的方法
*提交:document.表单名.submit()
*复位:document.表单名.reset()

2.4.2 表单的界面对象

1.单行文本
<input type=〃text〃 name=〃对象名〃  value=初值  size=宽度  maxlength=字符总数 >

2.口令输入框: type=〃password〃

3.隐藏表单域: type=〃hidden〃

4.多行文本域:
<textarea  name=〃对象名〃  rows=行数 cols=列数 readonly>  ……初始文本……  <textarea>

5.列表框:
<select name=对象名 size=列表高度  multiple
<option value=值 selected> 值  </option>
size=1:下拉式 size=2或以上:滚动式

6.复选:<input type=〃checkbox〃 name=〃对象名〃checked value=〃值〃>选项文本

7. 单选:<input type=〃radio〃

8.命令按钮:
<input type=〃submit〃 name=〃对象名〃 value=〃按钮标题〃>
<input type=〃reset〃  name=  value=  >
<input type=〃button〃  name=  value=  οnclick=函数或语句>

列表标记:
*无序列表:<ul>
有序列表:<ol>
元素:<li type=disc圆/circle圆圈/square方块>----无序
<li type=1 A a I I等>----------------------有序
<ol start=起始编号>
*嵌入多媒体文件

1. <embed src=〃URL〃  width=宽  height=高  autostart=true/false loop=true>   </embed>
*动画文件:AVI 波形声音文件:WAV 音乐文件:MIDI

2. <img dysrc=〃视频文件〃 start=〃fileopen/mouseover〃>

3.播放背景音乐  <bgsound src=〃URL〃 loop=播放次数>       *-1:无限制

4.创建滚动文字
<marquee direction=left/right/up/down
behavior=scroll/slide/alternate
循环/单次/来回
loop=n width=  height=
scrollmount=滚动速度 scrolldelay=延迟时间
bgcolor=
*网页中使用内嵌框架
<iframe frameborder=yes/no height= width=
marginheight=顶边距  marginwidth=左右边距
scrolling=yes/no src=URL name=框架名称>

第3章AS脚本语言---VBScript

3.1脚本语言概述
脚本语言:介于HTML标识语言与高级语言之间的一种语言。
常用脚本语言:VBScript、javascript,系统默认:VBScript

3.2 VBScript代码的基本格式:
方法一:<%  程序代码   %>
方法二:<Script Language=〃VBScript〃 Runat=〃Server〃> 程序代码 </Script>
在服务器中运行,无Runat项则在客户端运行

3.3 VBScript的数据类型
只有一种数据类型:Variant(变体类型)
数据子类型:表3-1
一般会自动转换子类型,有时需强制转换数据的了类型

3.4 VBScript常量
Const 常量名=值
命名规则:第一个是字母、后为字母、数字、下划线等,中间不能有标点符号、运算符号,长度小于255个字符
例 Const Fh1=〃****〃   Const Sj=#2003-9-10#

3.5 VBScript变量
声明变量:Dime 变量名
强制声明:Option Explicit
变量作用域:过程级变量、全局变量(注:本网页中有效)

3.6 VBScript数组
Dim 数组名(元素总个数)
* 元素从0开始
*动态数组:Dim数组名()
ReDim数组名(元素总个数)

3.7 VBScript运算符
算术运算符、连接运算符、比较运算符、逻辑运算符

3.8 VBScript函数

3.8.1 转换函数 表3-3

3.8.2输入输出函数
*只能在客户端运行
1. MsgBox(prompt,button,title)
2. InputBox(prompt,title,default)   例3-1

3.8.3 字符串函数 表3-4

3.8.4 日期、时间函数 表3-5  例3-2

3.8.5 数学函数 表3-6

3.8.6 检验函数 表3-7

3.9 VBScript过程

3.9.1 Sub过程
定义: Sub 过程名(参数表)
……………
   End Sub
调用:Call  过程名(参数表)
过程名 参数表
例:3-3

3.9.2 Function 函数
定义: Function函数名(参数表)
……………
  End Function
调用:函数名(参数表)
*函数有返回值
*例3-4

3.10 使用条件语句 例3-5

3.10.1 If…Then…Else语句                      3.10.2 Select Case 语句
If 条件 Then
……
End If If 条件 Then
……
Else
……
End If
If 条件 Then
……
ElseIf 条件
……
Else
……
End If Select Case 表达式
    Case result 1
       ……
Case result 2
……
    Case Else
       ……
End Select

例3-6

3.11 使用循环语句
For Counter=start To end Step step
  ……
Next 强制退出
Exit For
Do While 条件
……
Loop Do
……
Loop While 条件 Exit Do
Do Until 条件
……
Loop Do
……
Loop Until 条件 Exit Do
For Each 元素In 集合
  ……
Next Exit For

第4章 Request和Response对象

4.1 对象知识简介
对象:把一些功能已封装好了,用户只管使用,不去理会内部是怎样进行具体操作的。
对象:属性、事件、方法

4.2 利用Request对象从客户端获得信息
*客户端:借助表单,向服务器发送信息

4.2.1 Request对象简介
获取方法:QuerySring、Form、Cookies、Server Variables、ClientCertificate
Request.获取方法(变量名)

4.2.2 使用Form获取方法
<form action=处理程序的网址
method=Get/Post
name=表单名
enctype=数据传送MIME类型
οnreset=按下Reset所调用的程序
οnsubmit=按下Submit所调用的程序
target=输出窗口名称>
  …………………表单元素………………
  </form>
例4-1
 Form获取----Post提交  例4-2 例4-3

4.2.3 使用QuerySring获取方法
* QuerySring获取-----Get提交   例4-4 4-5

4.3 利用Response对象向客户端输出信息

4.3.1 Response对象简介
方法:Write:向客户端发送信息
Redirect:引导客户端到另一URL


Cookies:设置Cookies值
属性:Buffer:设置缓冲信息
ContentType:控制送出的文件类型

4.3.2 使用Write方法输出信息
Response. Write 信息   或   =信息  例4-6

4.3.3 使用Redirect方法引导客户端到另一URL
Response. Redirect  URL

4.3.4 关于Buffer属性
Buffer为True时:页面输出在缓冲区,
  Flae时:到客户端浏览器
Response. Buffer=True

第5章 Session和Application对象

5.1 利用Session对象记载特定客户信息

5.1.1 Session对象简介

  *客户从一个页面跳到另一页面时,Session信息仍保留,即实现信息传递。
 * Session信息在有效期内存在(20分钟),客户不再次请求则自动结束。也可用Abandon强迫Session结束。
* 客户请求,服务器启动一个Session,产生一个SessionID,回送到客户端,保存于客房端Cookies;当客户再次请求,服务器会检查SessionID
*属性:SessionID:特定用户的SessionID
 Timeout:Session的有效期
方法:Abandon:清除Session
事件:Session_OnStart:
Session_OnEnd

5.1.2 利用Session存储信息
Session(〃Session名称〃)=值  例5-1 5-2

5.1.3利用Session存储数组信息
*数组:只能整体存入/取出  例5-3 5-4

5.1.4 Timeout属性
  Session. Timeout=时间

5.1.5 Abandon   Session.Abandon

5.2利用Application对象记载所有客户信息

5.2.1 Application对象简介
*所有用户可能使用Application对象中同名对象的数据
*一直存在,直到程序停止运行
*方法:Lock:锁定Application对象
Unlock:解除锁定
事件:Application_OnStart
Application_OnEnd

5.2.2 利用Application存储信息
Application.(〃Application名称〃)=值         例5-5

5.2.2 利用Application存储数组信息

5.3 Global.asa信息
* Global.asa文件:站点的根目录
*只有一个Global.asa文件
*不能写成<%  %>形式
*不能包含任何输出语句         例5-6  5-7

第7章ASP内部对象

7.1 概述    5个:Request Response Session Application Server

7.2 Request对象

获取客户端的信息、数据

*Request.数据集合|属性|方法(变量或字符串)
*获取方法:Form表7-2 (P79) QueryString
Cookie  ServerVariables ClientCertificate
*属性:TotalBytes
*方法:BinaryRead

7.2.1 Form获取方法 --------- Form表单用Post方法提交
Request.Form(〃表单界面中的对象名〃)(索引.count)
*索引:表单中有同名的多个对象时,通过该索引下标,反映相应对象
取值:

1----Request.Form(〃界面对象名〃).Count
*Count:功能一:表单界面中的对象的总个数
num = Request.Form.Count
应用例1:<% For Each name In Request.Form
  ……… %>

2: <% For n=1 To Request.Form.Count
Next %>

功能二:复选框对象,被选中的数目
     num = Request.Form(〃复选对象名〃).Count

7.2.2 QueryString获取方法---------Get方法提交的数据
   url ? 界面对象名=值 &界面对象名=值

7.2.3 Cookies获取方法
   甜饼,是服务器发送到客户端浏览器的文本串句柄,保存的客户的硬盘(/Windows/Cookies文件夹)中,网站只能读取自己的Cookies
*后果:存在安全性隐患
Request.Cookies(〃CookiesName〃)(关键字).属性
*关键字:类似于数组的下标
判断是否存在关键字:Request.Cookies(〃CookiesName〃).Haskeys

7.2.4 ServerVariable获取方法
获取客户端或服务器的环境变量等有关信息
Request. ServerVariable(〃环境变量名称〃)
*P82 表7-6
例:Request. ServerVariable(〃REMOTE_ADDR〃) 客户端IP地址

7.2.5 ClientCertificate获取方法
身份验证信息:Request.ClientCertificate(关键字)

7.2.6 TotalBytes属性
客户端响应数据的大小:Request.TotalBytes

7.2.7 BinayRead方法
*以二进制方式获取数据
Request. BinayRead(字节大小)
*应用:图形、声音文件的上传

7.3 Response对象

7.3.1 设置Cookies
Response.Cookies(CookiesName) (关键字).属性=字符串
设置有效期 Response.Cookies().Expires= #日期#
*属性:
Response.Buffer=True  False
True:输出先保存在缓冲区中,当当前页面的所有服务器脚本都处理完毕 才一次性将其发送到客户端。
*Fluse 、End :也能将缓冲区内容发送
Response.ContentType=〃text/html〃 响应内容的类型
  〃image/jpg〃 〃image/gif〃
Response.Charset=〃gb2312〃 字符集
Response.Expires=3   3分钟后过期
Response.ExpiresAbsolute=#日期 时间#
Response.Status
方法:
Response.Write 字符串
Response. BinaryWrite 字符串
Response.Redirect url 重新定位到指定的URL
Response.End  结束对脚本的处理并将已处理的结果送浏览器
Response.Flush 将缓冲区中的内容发送给浏览器
Response.Clear 清除缓冲区中的内容
Response.AppendTolog 信息   将信息添加到IIS日记文件中去

7.3.2 BinaryWrite方法
二进制输出:Response.BinaryWrite 变量或字符串

7.4 Session对象

7.5 Application对象

7.6 Server对象

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

7.6.1 ScriptTimeout属性

Server.ScriptTimeout=秒数  设置脚本文件执行的最长时间
若在规定时间内,脚本还未执行完毕,将触发ScriptTimeout事件,并报告相应的错误信息。
例:Server.ScriptTimeout=120  *放在页面的开头

7.6.2 CreateObject方法
Set 变量=Server.CreateObject(ActiveX Server组件)
用于在服务器上创建一个已注册对象的实例
*在VBScript中,将一个对象赋组一个变量,必须用Set语句来实现.
例:Set db=Server.CreateObject(ADODB.Connection)
数据库链接对象的实例
Set FSO=Server.CreateObject(〃Scriptiong.FileSystemObject〃)
文件系统对象的实例
*对象实例:页面级的作用域,运行于服务器

7.6.3 HTMLEncode方法
  输出:ASCII形式的HTML文件

7.6.4 URLEncode方法
  输出:URL编码的文件

7.6.5 MapPath方法
Server.MapPath(虚拟路径字符串)
将虚拟路径转化为真实的物理路径
例:<% = Server.MapPath (〃/〃) %>
当前站点根目录的真实物理路径

*Execute方法   Server.Execute(〃url〃)
*Transfer方法  Server.Transfer(〃url〃)
停止执行当前网页,转到url对应的新网页

第6章ASP存取数据库

6.1 数据库预备知识

6.1.1 建立Access数据库

6.1.2设置数据源

 开始--->设置--->控制面板--->ODBC数据源(32位)
 系统DSN--->添加--->Microsoft Access Driver(*.mdb) --->完成
 数据源名: 描述:
选取--->。。。--->确定
*数据源:也可在程序中通过相应的语句打开,而不必象上述方法设置

6.2 利用数据库存取组件存取数据库
ADO:Connection、Command、Recordset对象及子对象
SQL语言:结构化查询语言

6.2.1 连接数据库
对数据库进行操作,首先要连上数据库,则需创建Connection对象
Set db =Server.Createobject(〃ADODB.Connection〃)
* Db.Open 〃数据源名称〃
* Db.Open 〃DBQ=〃 & Server.Mappath(〃数据库名〃)
& 〃;Driver={Microsoft Access Driver(*.mdb)} 〃
数据库物理路径  数据库类型

6.2.2 利用Select语句查询记录
Select  字段列表 From 数据库列表
   Where 条件   Order by 字段
*查询记录:
需用Connection对象的Execute方法打开一个Recredset对象
例6-1 (P66-67)
* do while not rs.Eof
* rs.MoveNext
* rs(〃字段名〃)

6.2.3 利用Insert语句添加记录
Insert Into 表名(字段1, 字段2, …) values(值1, 值2,…)
* 前后对应,类型要一致
*例6-2 (P68-70)
*一次只能插入一条记录

6.2.4 利用Delete语句删除记录
Delete From 数据表名  where 条件
*例6-3 (P72)

6.2.5 利用Update语句修改记录
Update 数据表名  Set 字段1=值1,字段2=值3,……
    Where 条件
*省略条件,将修改所有记录
*例6-4(P72-75)

6.3 深入讨论ADO

6.3.1 存取SQL数据库
db Open 〃Datebase=数据库名 ; Uid=用户名;Pwd=密码;
Driver={SQL Server}〃

6.3.2 对多个数据表进行操作

第8章ASP的内置组件

8.1 ASP组件概述
数据库存取组件、文件存取组件、广告轮显组件、浏览器兼容组件、文件超链接组件

8.2数据库存取组件

8.3文件存取组件

8.3.1 FileSystemObject对象的方法:表8-3

8.3.2 TextStream对象的属性和方法:表8-4 8-5

8.3.3 新建文本文件
 set FileSystem对象实例=Server.CreateObject(〃Scripting.FileSystemObject〃)
Set TextStream对象实例=FileSystem对象实例.CreateTextFile=Filename,overwrite)  例8-1

8.3.4 文本文件的读取或或添加
Set TextStream对象实例=FileSystem对象实例.OpenTextFile( Filename,iomode,create)

例8-2 8-3

8.3.5 文件的复制、移动和删除
FileSystem对象实例.CopyFile 源文件,目标文件,overwrite
FileSystem对象实例.MoveFile 源文件,目标文件
FileSystem对象实例.DeleteFile 文件
FileSystem对象实例.FileExists (文件)

例:8-4
8.3.6 文件夹的新建、复制、移动和删除
FileSystem对象实例.CreteFolder文件夹
FileSystem对象实例.CopyFolder源文件夹,目标文件夹,overwrite
FileSystem对象实例.MoveFolder 源文件夹,目标文件夹
FileSystem对象实例.DeleteFolder 文件夹
FileSystem对象实例. FolderExists (文件夹)

例:8-5
8.3.7 显示指定文件夹下的所有内容

例:8-6

8.4广告轮显组件
*广告信息放在一个专门的文本文件内

8.4.1 广告轮显组件的组成
* 广告信息文本文件
* 超链接处理文件
* 显示广告图片文件

8.4.2 广告轮显组件的属性和方法
表8-9 8-10
例:8-9.ASP

8.5浏览器兼容组件

8.6文件超链接组件

8.6.1 文件超链接组件的组成
* 超链接数据文件:每个网站分行输入;TAB键分开;不要http://
* 显示超链接文件

8.6.2 文件超链接组件的方法
例8-12

第9章数据库存取组件

9.1 ASP读取数据库的方法
例9-1

9.2 建立数据库和设置数据源

9.2.1 建立数据库

9.2.2 设置数据源

9.3 SQL语言简介

9.3.1 Select语句
Select Top(数值) 字段列表 From 数据库列表(P110)
   Where 条件   Order by 字段
* Top(数值):前多少条记录
*字段列表:逗号分隔  *
*Desc:降序   Asc:升序
*派生字段 P112
函数: Count(*)
*模糊查询 P112  %琳%

9.3.2 Insert语句
Insert Into 表名(字段1, 字段2, …) values(值1, 值2,…)
*一一对应
*逗号分隔
*字符型、日期型的值,要用引号括起来
*DEFAULT缺省值
*NULL空值

9.3.3 Delete语句
Delete From 数据表名  where 条件
*省略where 条件 ,则删除所有记录

9.3.4 Update语句
Update 数据表名  Set 字段1=值1,字段2=值3,……
    Where 条件
*省略where 条件 ,则更新所有数据

9.3.5 Create Table语句
Create Table数据表名(字段名称 字段类型,……)
例: Create Table temp1(Name char(100),age Int,birthday Date)
Create Table temp2(Name char(100) Not NULL ,age Int)

9.3.6 Alter Table语句
添加记录:Alter Table数据表名 Add Column字段名称 字段类型
删除字段:Alter Table数据表名 Drop Column字段名

9.3.7 Drop Table语句
Drop Table 数据表

9.3.8 用ASP维护数据表实例
例:9-2

9.4 ADO的内部对象

三个主要对象: Connection、Command、Recordset
1.利用Connection对象建立与数据库连接
2.然后用Command对象进行查询
3.最后在得到Recordset对象中进行具体操作

9.5 Connection对象
Connection对象:连接对象,用来和数据库建立连接
只有建立连接后,才可用Command对象、Recordset对象对数据库进行各种操作

9.5.1 建立Connection对象
Set Connection对象=Server.CreateObject(〃ADODB.Connection〃)

Connection对象.Open 连接字符串或变量

*表9-5: 分号分隔
*创建没有ODBC数据的连接
Set db =Server.Createobject(〃ADODB.Connection〃)
* Db.Open 〃Dbq=   ;
Driver={Microsoft Access Driver(*.mdb) }〃
* Db.Open 〃Dbq=〃 & Server.Mappath(〃数据库名〃) &
  〃; Driver={Microsoft Access Driver(*.mdb) }〃
创建有ODBC数据源的连接
db.Open 〃Dsn=数据源名〃 或 db.Open 〃数据源名〃
创建基于OLE DB的连接
db.Open 〃Provider=Microsoft>Jet.OLEDB.4.0 ;
     Source=数据库名 〃
* 创建没有ODBC数据源的连接
db.Open 〃Database=数据库名; Uid=用户名; Pwd=密码 ;
Driver={SQL SERVER}〃
*创建有ODBC数据源的连接
db.Open 〃Dsn=数据源名 ; Uid=用户名; Pwd=密码 〃
*创建基于OLE DB的连接
db.Open 〃Provider=SQLOLEDB ; Database=数据库名; Uid=用户名; Pwd=密码〃
教材118-200

9.5.2 Connection对象的属性
表9-6(P121)
⑴CommandTimeout:最长执行时间
⑵ConnectionString:指定Connection对象的数据库连接信息
⑶ConnectionTimeout
⑷DefaultDatabase
⑸Mode:连接数据库的权限:表9-7
⑹Version
9.5.3 Connection对象的方法
⑴Open:
⑵Close:db.Close  Set db=Nothing
⑶Execute
*Set Recordset对象=Connection对象. Execute(select) P123
*Connection对象. Execute(SQL字符串)
*Connection对象. Execute(SQL字符串),number
 Number:返回此操作影响的记录的条数

事务处理
⑷BeginTrans
Connection对象. BeginTrans
⑸CommitTrans
Connection对象. CommitTrans
⑹RollbackTrans
Connection对象. RollbackTrans
9.5.4 利用Connection对象存取数据库 例:9-3(P124-125)
9.6 Command对象
Command对象:命令对象,用来对数据库进行查询,将查询结果存入Recordset对象中。

9.6.1 建立Command对象
Set Command对象=Server.Createobject(〃ADODB.Command〃)
Command对象.ActiveConnection=Connection对象
例: Set db= Server.Createobject(〃ADODB.Connection〃)
  db.Open=数据库名
Set cmd= Server.Createobject(〃ADODB.Command〃)
cmd.ActiveConnection=db
9.6.2 Command对象的属性(P127)
⑴ActiveConnection
Command对象.ActiveConnection=Connection对象
⑵CommandText
Command对象.CommandText=SQL语句、数据表名、查询名、存储过程名
⑶CommandType
Command对象.CommandType=类型值(表9-10)
⑷CommandTimeout
⑸PrePared
Command对象. PrePared=True | False
9.6.3 Command对象的方法
⑴Execute
Set Recordset对象=Command对象.Execute
Command对象.Execute
Set Recordset对象=Command对象.Execute number ,parater,option
表9-12(P130)

⑵CreateParameter
9.6.4 利用Command对象存取数据库
例9-4(P130-131)
9.6.5 非参数查询
例9-5(P132-133)
9.6.6 参数查询
9.6.7 Parameters集合和Parameter对象
1. Parameters集合的属性:Count
number=Command对象. Parameters.Count

2. Parameters集合的方法
⑴Append方法
Command对象.Parameters.Append  Parameter对象
⑵Delete
Command对象.Parameters.Delete(index)
⑶Item
Set Parameter对象=Command对象.Parameters.Item(index)
⑷Refresh
Command对象.Parameters.Refresh

3. 建立Parameter对象
Set Parameter对象=Command对象.
CreateParameter(name,type,direction,size,value)
4. Parameter对象的属性 P137 表9-17
⑴Name
⑵Type
⑶Direction
⑷Size
⑸value
⑹Attributes
4. Parameter对象的方法
Parameter对象.AppendChunk(文本、数据)
9.7 Recordset对象
Recordset对象:包含所有要查询的数据

9.7.1 建立Recordset对象
Set Recordset对象=Server.CreateObject(“ADODB.Recordset”)
Recordset对象.Open
sourse,ActiveConnect,CursorType,LockType,Option

9.7.2 Recordset对象的属性
1.Source
2.ActiveConnect:
3.CursorType:指针类型
4.LockType:锁定类型
5.MaxRecors:最大记录数
6.CursorLocation:记录集在客户端/服务器处理
7.Filter:
8.RecordCount:记录总数
9.Bof
10.Eof
11.PageSize:每一页的记录数
12.PageCount:总页数
13.AbsolutePage:设置指针位于哪一页
14.AbsolutePosition:设置指针的绝对位置

9.7.3 Recordset对象的方法
方法:表9-26(P147)
1.Open
2. Close
3. Requery:重新打开记录集(即先关闭再打开)
4. MoveFirst
5. MovePrevious
6. MoveNext
7. MoveLast
8. Move --- AbsolutePosition AbsolutePage
RecordSet对象.Move number ,start
9. AddNew
RecordSet对象.AddNew 字段名数组,字段值数组
10.Delete
11.Update:AddNew Delete后必须UpDate才真正更新数据库

12.CancelUpdate
13.GetRows:返回n条记录 -1:全部
14.Resync:客户端记录集与服务器同步更新

9.7.4 利用Recordset对象查询记录
例9-7 [P150]
9.7.5 分页显示数据
例9-8 PageSize PageCount AbsolutePage [P151]
9.7.6 利用Recordset对象更新数据库
例9-9 Addnew  Delete  Update [P153]

9.7.7 Fields集合和Field对象 P155
1. Fields集合的属性:Count  P156
* var = Connection对象.Fields.Count 字段个数

2.Fields集合的方法tem
Set Fields对象= Connection对象.Fields.Item(字段名或索引值)

3.Fields对象的属性  P157 表9-28 9-29
表9-28(P157)
var= Field对象.value 或 var=Field对象
例9-11
4.Fields对象的方法:AppendChunk
在当前字段的数据末尾添加数据
Fields对象。AppendChunk 数据


9.8 Errors集合和Error对象
9.8.1 Errors集合的属性
*属性:Count 错误个数
var = Connection对象.Errors. Count

9.8.2 Errors集合的方法 表9-30(P160)
1. Item:建立Error对象
Set Error对象=Connection对象.Errors.Item(错误索引值)
* 错误索引值:0---Errors.Count-1
*Item:可省略
2.Clear
Connection对象.Errors.Clear

9.8.3 Error对象的属性
*程序运行过程的错误信息,会存于一个Error对象中:
错误的描述、可能的原因、处理措施等
例:var=Error对象.Desecription
表9-31 Error对象的常用属性 9-32 错误编号 (P160)
9.8.4 On Error Resume Next
*碰到错误时,跳过去,继续执行下一句;否则则会显示错误信息,而无法进行相应的处理。
*一般用在程序调试的时候,成功后即删除该语句

Request.ServerVariables("URL")这是获取当前网址的意思

 

 

我自己曾想写一篇关于Cookie的文章,特别是Client端Script同Server端ASP通过Cookie交互的问题可能会困扰大家。其实是如
果你对Cookie有深入的理解,特别是对域和路径的概念比较清晰的话,就不会有问题了。
另外想提示的一点是request.ServerVariables("HTTP_COOKIE")得到Cookie和Request.Cookies得到的结果可能会有所不同。
大家思考一下为什么,会对ASP的学习提高有所帮助的。

Request.Cookies,粒子:

<TABLE BORDER="2">
<THEAD>
<TH>Cookie Name</TH>
<TH>Cookie Value</TH>
<TH>Cookie HasKeys</TH>
</THEAD>
<%
Dim Item
For Each Item in Request.Cookies
%>
<TR>
<TD><% = Item %></TD>
<TD><% = Request.Cookies(Item) %></TD>
<TD><% = Request.Cookies(Item).HasKeys %></TD>
</TR>
<TR>
<%
  If Request.Cookies(Item).HasKeys Then
    For Each strSubKey In Request.Cookies(Item)
%>
<TD>&bnsp;</TD>
<TD>&bnsp;</TD>
<TD><% = Request.Cookies(strKey)(strSubKey) %></TD>
<%
Next
End If
Next
%>
</TABLE>

request.ServerVariables("HTTP_COOKIE"),粒子:
<TABLE BORDER="2">
<THEAD>
<TH>Cookie Name</TH>
<TH>Cookie Value</TH>
</THEAD>
<%
Dim Item,sp,i,d
sp = split(request.ServerVariables("HTTP_COOKIE"),"; ",-1,1)
' Loop through the cookie collection displaying each cookie we find

For i=0 to UBound(sp)
d = split(cstr(sp(i)),"=",-1,1)
%>
<TR>
<TD><% = d(0) %></TD>
<TD><% if UBound(d)=1 then Response.Write(d(1)) else Response.Write "&nbsp;" %></TD>
</TR>
<%
Next
%>
</TABLE>
重粒子@Y2K0814
--------------------------------------------------------
下面是甘冀平翻译的<ASP中Cookie使用指南>
原文出处:http://www.asptoday.com/articles/19990915.htm

   实际上,在web开发中,cookie仅仅是一个文本文件,当用户访问站点时,它就被存储在用户使用的计算机上,其中,保存了
一些信息,当用户日后再次访问这个站点时,web可以将这些信息提取出来。

   尽管现在听起来cookie没有什么激动人心的,但实际上利用它,你能实现许多有意义的功能!比如说:你可以在站点上放置
一个调查问答表,询问访问者最喜欢的颜色和字体,然后根据这些定制用户的web界面。并且,你还可以保存访问者的登录密码,这
样,当访问者再次访问这个站点时,不用再输入密码进行登录。

   当然,cookie也有一些不足。首先,由于利用cookie的功能可以编程实现一些不良企图,所以大多数的浏览器中都有安全设
定,其中可以设置是否允许或者接受cookie,因此这就不能保证随时能使用cookie。再者,访问者可能有意或者无意地删除
cookie。当访问者的机器遇到“蓝屏”死机时,或者重新格式化硬盘、安装系统后,原来保存的cookie将全部丢失。最后一点,有
一些最初始的浏览器并不能支持cookie。

   利用cooklie能做什么?

   有2种使用cookie的基本方式:
1、将cookie写入访问者的计算机(使用 RESPONSE 命令)
2、从访问者的计算机中取回cookie(使用 REQUEST 命令)

   创建cookie的基本语法

   Response.Cookies("CookieName")=value

   执行下面的代码将会在访问者的计算机中创建一个cookie,名字=VisitorName,值=Ken
Response.Cookies("VisitorName")="Ken"

   执行下面的代码将会在访问者的计算机中创建一个cookie,名字=VisitorName,值=表单中UserName的值
Response.Cookies("VisitorName")=Request.Form("UserName")

   读取cookie的基本语法

   Request.Cookies("CookieName")

   可以将Request值当作一个变量看待,执行下面的代码,将取回名字为KensCookie的cookie值,并存入变量MyVar:
MyVar=Request.Cookies("KensCookie")

   执行下面的代码,将判断名字为KensCookie的cookie值是否为“Yes”:
If Request.Cookies("KensCookie")="Yes" then

   功能丰富的cookie

   你可以扩展上面的代码成为Cookie子关键值(CookieSubName),代码如下:
Response.Cookies("VisitorName")("FirstName")="Ken"
Response.Cookies("VisitorName")("LastName")="Baumbach"

   讲解例子前,最后讨论2个概念:命令约定和使用到期时间。

   命名约定

   同其他变量的命名一样,合适地、独特地命名cookie,有利于在程序中前后连贯地使用它。你可以使用下面的1个或者2个
cookie属性进行cookie变量的命名:

   域属性(Domain):域属性表明cookie由哪个网站产生或者读取,默认情况下,cookie的域属性设置为产生它的网站,但你
也可以根据需要改变它。相关代码如下:Response.Cookies("CookieName").Domain = "www.mydomain.com"

   路径属性(Path):路径属性可以实现更多的安全要求,通过设置网站上精确的路径,就能限制cookie的使用范围。例如:
Response.Cookies("CookieName").Path = "/maindir/subdir/path"

   使用到期时间

   通常情况下,当浏览器关闭时,一个cookie就不存在了。但是在许多时候,比如下面将要讨论的web站点例子,我们希望能更
长时间地在访问者的计算机上保存cookie。很幸运,有这样的实现方法。下面的代码,就可以设置cookie的使用到期时间为2010年
1月1日:
Response.Cookies("CookieName").Expires=#January 01, 2010#

   执行下面的代码,将设定cookie的过期时间为“cookie的创建时间+365日”:
Response.Cookies("CookieName")=Date+365

   使用cookie的实际例子(非常精彩)

   现在开始讨论实际的例子。假设:你想做一个调查,每个人初次访问时需要填写好信息,但是当日后再访问时,就不需要再那
么做。利用cookie,就可以非常圆满地解决这个问题,而大可不必用到数据库。

< %@ LANGUAGE="VBSCRIPT" %  >
< %
Survey=Request.Cookies("KensSurvey")
If Survey ="" then
  Response.Cookies("KensSurvey")="x"
  Response.Cookies("KensSurvey").Expires=#January 01, 2010#
  Response.Redirect "survey.asp"
Else
'rest of the page
End if
% >
   好,下面开始从头讨论上面的代码。

   首先,初始设置页面,并读取名字为KensSurvey的cookie值:


< %@ LANGUAGE="VBSCRIPT" % >
< %
Survey=Request.Cookies("KensSurvey")
   然后,判断是否已经存在cookie值:

If Survey ="" then
   如果不存在, 就创建并设置cookie,并转到页面survey.asp。 当下一次访问时,因为存在cookie值,就不会再转到
survey.asp 页面。

   Response.Cookies("KensSurvey")="x"
   Response.Cookies("KensSurvey").Expires=#January 01, 2010#
   Response.Redirect "survey.asp"
   如果cookie已经存在,那么访问者将执行页面中剩余的代码:

'rest of the page

End if
% >
   例子2

   这里有另外一个简单的例子:当访问者第1次浏览某个站点时,向他们显示欢迎信息。代码如下:

< %@ LANGUAGE="VBSCRIPT" % >
< %
RequestName = Request.Form("Name")
RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
If RequestName <  >"" or RequestLeaveMeAlone <  >"" then
  Response.Cookies("MySiteVisitorName") = RequestName
  Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#
  Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone
  Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#
End if   
VisitorName = request.cookies("MySiteVisitorName")
LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")

If VisitorName ="" and LeaveMeAlone ="" then
% >
  < HTML > < HEAD > < /HEAD >
  < body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
  < DIV ALIGN="CENTER" >
  < form action="index.asp" method="POST" >
  < H2 >Let's be friends< /H2 >
  What's your name (leave blank and hit the Submit button if you don't want us to know)?
  < input type="text" name="name" >< BR >< BR >
  < input type="hidden" name="LeaveMeAlone" value="x" >
  < input type="submit" value="Submit" >
  < /FORM >
  < /DIV >
  < /BODY >
< %
End if
If VisitorName <  > "" then
   Response.write "Hi, " & VisitorName & "!  I hope you are having a great day!"
End if
'rest of the page
% >
   好,现在来看看上面的代码实现执行了什么。首先,设置页面。然后,检查表单变量(在同一个页面中)。如果表单变量存
在,就创建cookie,并设置到期时间。

< %@ LANGUAGE="VBSCRIPT" % >
< %
RequestName = Request.Form("Name")
RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
If RequestName <  >"" or RequestLeaveMeAlone <  >"" then
  Response.Cookies("MySiteVisitorName") = RequestName
  Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#
  Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone
  Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#
End if   

   接着,读取cookie:

VisitorName = request.cookies("MySiteVisitorName")
LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")
   如果cookie在访问者的计算机上不存在,就创建一个表单,询问相关信息:

If VisitorName ="" and LeaveMeAlone ="" then
% >
  < HTML >
  < HEAD >
  < /HEAD >
  < body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
  < DIV ALIGN="CENTER" >
  < form action="index.asp" method="POST" >
  < H2 >Let's be friends< /H2 >
  What's your name (leave blank and hit the Submit button if you don't want us to know)?
  < input type="text" name="name" >< br >< br >
  < input type="hidden" name="LeaveMeAlone" value="x" >
  < input type="submit" value="Submit" >
  < /FORM >
  < /DIV >
  < /BODY >
< %
End if
   如果cookie已经存在,并且用户名字存在,就显示给访问者一个欢迎界面,然后执行其余的代码。

If VisitorName <  > "" then
  Response.write "Hi, " & VisitorName & "!  I hope you are having a great day!"
End if
'rest of the page
% >
   尽管上面的这个例子很简单,但可以从中扩展许多富有创造力的应用。你可以在表单中加入许多功能,以便定制化web站点。
你还可以让访问者定制网站的色彩、字体,以至于其他web元素。有可能的话,你可以询问访问者的生日,当访问者在那一天来访
时,你就可以显示“生日快乐”的信息给他。

   如你所见,cookie的扩展性是无穷的,这篇文章仅仅是抛砖引玉。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一共包括10个以上的聊天程序版本!绝对物有所值! 为感谢大家长期的支持,我将下载所需的资源分下调为2。网络聊天程序设计(可选)  实验要求 1、分析典型网络聊天应用软件(如QQ、MSN等)的实现原理,模拟设计一套网络聊天应用程序,必须实现以下功能: ①按照C/S结构分别设计服务端程序和客户端程序; ②服务端通过图形用户界面实现对服务器的控制,负责维护用户帐户和用户群,并维护用户信息、维持客户端之间的端对端通信和群聊通信、适时维护用户在线信息,并能够发送广播消息。 2、增加尽可能多的功能,用户界面友好,操作简便,代码设计遵从程序设计规范,易读性强,对关键过程和代码进行标注说明。 3、程序设计过程遵从软件工程规范,有需求分析、系统设计和详细设计过程,有相应的规范化说明文档。  实验提示 1、客户端之间的通信是通过服务器进行转发的,对于两个客户端,服务器需要创建两个套接字分别维持与客户端之间的连接。当客户端需要向另一个客户发送消息时,它首先将消息发送到服务器,由服务器根据目标用户帐户转发到目标主机。 2、群聊是采用多播技术实现的,也可以采用单播技术实现,但是服务器开销会增加。具体说来,若采用组播技术,当服务端收到来自一个客户端的消息后,向预先分配的该组组播地址转发该消息。若采用单播技术,服务端需要向该组内的所有客户端一一转发该消息。 3、广播消息通过广播方式发送由服务端创建的消息。 4、服务端根据客户的连接和断开情况,实时向其它客户端发送用户在线信息。 实验题目二:自选网络通信程序设计(可选)  实验要求 可以自选与网络通信相关的设计题目,要求如下: 1、在确定实验题目、设计内容以及设计功能指标要求后,向实验指导教师提交书面申请,由实验指导教师根据所选实验题目的难度和工作量确定立题后方能开始实验。 2、选择的实验题目必须具有一定综合性,并能够利用网络通信原理加以解决,同时需要具备一定的工作量。 3、设计的结果要求用户界面友好,操作简便,代码设计遵从程序设计规范,易读性强,对关键过程和代码进行标注说明。 4、程序设计过程遵从软件工程规范,有需求分析、系统设计和详细设计过程,有相应的规范化说明文档。 5、严禁抄袭别人成果,但可以部分借鉴。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值