第四讲 Asp 内置对象
description
Transcript of 第四讲 Asp 内置对象
第四讲 第四讲 AspAsp 内置对象内置对象
AspAsp 内置对象内置对象ASP 编程代码包括两部分: 1 、一种脚本语言 2 、一组内置对象
使用使用 VBSCRIPTVBSCRIPT 编写的编写的 ASPASP 程序:程序:<HTML><HTML><BODY><BODY><%<%
select case Request.Form("add")select case Request.Form("add")case "tsinghua"case "tsinghua"
Response.Redirect "http://www.tsinghua.edu.cn"Response.Redirect "http://www.tsinghua.edu.cn"case "yahoo"case "yahoo"
Response.Redirect "http://www.yahoo.com"Response.Redirect "http://www.yahoo.com"case "sina"case "sina"
Response.Redirect "http://www.sina.com.cn"Response.Redirect "http://www.sina.com.cn"end selectend select
%>%></BODY></BODY></HTML></HTML>
AspAsp 内置对象内置对象Active Server Pages (ASP) Active Server Pages (ASP) 结构五个重要的内建对象:结构五个重要的内建对象:
• Request Request • Response Response • Server Server • SessionSession• Application Application
RequestRequest 与与 ResponseResponse
浏览器浏览器 WEBWEB 服务器服务器HTTPHTTP 响应响应
TCP/IPTCP/IP
HTTPHTTP 请求请求
•Request Request 读用户的输入信息读用户的输入信息•Response Response 向用户输出信息向用户输出信息
RequestRequest
ResponseResponse
ASPASP
用户请求信息用户请求信息
反馈信息反馈信息
一、功能概述 :
Request Request 对象在 对象在 HTTP HTTP 请求期间,检索客户端浏览器传递请求期间,检索客户端浏览器传递给服务器的值 。给服务器的值 。语法语法Request[.Request[.collection|property|methodcollection|property|method](](variablevariable) )
集合集合 ::
ClientCertificateClientCertificate
存储在发送到 存储在发送到 HTTP HTTP 请求中客户端证书中的字段值。请求中客户端证书中的字段值。CookiesCookies HTTP HTTP 请求中被发送的 请求中被发送的 cookie cookie 的值。 的值。 FormForm HTTP HTTP 请求正文中表格元素的值。 请求正文中表格元素的值。
RequestRequest 对象对象
ServerVariablesServerVariables 预定的环境变量的值。 预定的环境变量的值。 QueryStringQueryString HTTP HTTP 中查询字符串中变量的值。 中查询字符串中变量的值。
属性属性TotalBytesTotalBytes 只允许读。指定客户端在请求正文中发送的字只允许读。指定客户端在请求正文中发送的字节总数。节总数。
方法方法BinaryReadBinaryRead 检索从客户端发送到服务器作为 检索从客户端发送到服务器作为 POST POST 请求的一请求的一部分的数据。部分的数据。
RequestRequest
querystringquerystring
当用当用 getget 方法提交表单,数据方法提交表单,数据被保存在被保存在 querystringquerystring 集合中集合中语法:语法:Request.querystring(Request.querystring( 变量)变量) .[index|.count].[index|.count]
Request Request 例子:例子:文件:文件: 4-6.htm4-6.htm
<html><html><body ><body ><form method="get" action="4-6.asp"><form method="get" action="4-6.asp"> 姓名: 姓名: <input type="text" name="name"> <br><input type="text" name="name"> <br> 密码: 密码: <input type="password" name="pwd"><br><input type="password" name="pwd"><br> 性别: 性别: <select name="gender"><select name="gender"> <option><option> 男男 </option></option> <option><option> 女女 </option></option> </select> <br></select> <br> <input type="submit" name="Submit" value="<input type="submit" name="Submit" value=" 提交提交 ">"> <input type="reset" name="Submit2" value="<input type="reset" name="Submit2" value=" 重置重置 ">"></form></form></body></body></html></html>
Request Request 例子:例子:文件:文件: 4-6.ASP4-6.ASP
<%@ Language=VBScript %><%@ Language=VBScript %><% <% Response.Expires=0 Response.Expires=0 Sname =Request.QueryString("name")Sname =Request.QueryString("name")Spwd =Request.QueryString("pwd") Spwd =Request.QueryString("pwd") SGender =Request.QueryString("gender")SGender =Request.QueryString("gender")%>%><HTML><HTML><BODY><BODY>姓名姓名 : <%= Sname%><Br><Br>: <%= Sname%><Br><Br>密码密码 : <%= Spwd%><Br><Br>: <%= Spwd%><Br><Br>性别性别 : <%= SGender%><Br><Br>: <%= SGender%><Br><Br>URLURL 后面的字符串后面的字符串 : <Br>: <Br><%= Request.ServerVariables("Query_String")%><%= Request.ServerVariables("Query_String")%></BODY></BODY></HTML></HTML>
RequestRequest
FormForm
当用当用 POSTPOST 方法提交表单,数据方法提交表单,数据被保存在被保存在 FormForm 集合中集合中
元素:表单元素名称元素:表单元素名称 Index:Index: 表单多值中表单多值中 1~request.form(1~request.form( 参数参数 ).Count).Count 中的一个中的一个 Count:Count: 集合中元素的个数集合中元素的个数
语法:语法: request.Form(request.Form( 元素)元素) [.index|.count][.index|.count]
RequestRequestForm Form 集合例子: 文件(集合例子: 文件( 4-7.htm4-7.htm ))
<html><html><body><body><form method="post" action="4-7.asp"><form method="post" action="4-7.asp"> 姓名: 姓名: <input type="text" name="yourname"><br><input type="text" name="yourname"><br> 性别: 性别: <select name="gender"><select name="gender"> <option><option> 男男 </option></option> <option><option> 女女 </option></option> </select> <br></select> <br> 爱好(可多选):爱好(可多选): <br> <br> <input name="hobby" type="checkbox" value="<input name="hobby" type="checkbox" value=" 电脑电脑 ">"> 电电脑脑 <input name="hobby" type="checkbox" value="<input name="hobby" type="checkbox" value=" 游戏游戏 ">"> 游游戏戏 <input name="hobby" type="checkbox" value="<input name="hobby" type="checkbox" value=" 体育体育 ">"> 体体育育 <input name="hobby" type="checkbox" value="<input name="hobby" type="checkbox" value=" 阅读阅读 ">"> 阅阅读读 <br><br> 留言: 留言: <textarea name="message"><textarea name="message"></textarea> <br></textarea> <br> <input type="submit" name="Submit" value="<input type="submit" name="Submit" value=" 提交提交 ">"> <input type="reset" name="Submit2" value="<input type="reset" name="Submit2" value=" 重置重置 ">"></form></form></body></body></html></html>
RequestRequestForm Form 集合例子: 文件(集合例子: 文件( 4-7.asp4-7.asp ))
<%@ Language=VBScript %><%@ Language=VBScript %><% <% Response.Expires=0Response.Expires=0SName = Request.Form("yourname") SName = Request.Form("yourname") SGender = Request.Form("gender")SGender = Request.Form("gender")SM =Request.Form("message")SM =Request.Form("message")SMsg = Replace(SM,vbcrlf,"<Br>" & vbcrlf) SMsg = Replace(SM,vbcrlf,"<Br>" & vbcrlf) %>%><HTML><HTML><BODY><BODY>姓名姓名 : <%= SName%><Br><Br>: <%= SName%><Br><Br>性别性别 : <%= SGender%><Br><Br>: <%= SGender%><Br><Br><% Response.Write "<% Response.Write " 爱好爱好 :<Br>":<Br>"For I = 1 to Request.Form("hobby").CountFor I = 1 to Request.Form("hobby").Count
Response.Write Request.Form("hobby")(I) & "<Response.Write Request.Form("hobby")(I) & "<Br>"Br>"NextNext%><Br>%><Br> 留言留言 : <Br>: <Br><%= SMsg%><%= SMsg%></BODY></BODY></HTML></HTML>
RequestRequest
ServerVariablesServerVariables
服务器的环境变量服务器的环境变量语法:语法: Request.ServerVariables(Request.ServerVariables( 服务器变量)服务器变量)
RequestRequest
CookieCookie
取得取得 HTTPHTTP 的的 cookiecookie 值值
语法:语法: request.Cookies(cookie)[.(request.Cookies(cookie)[.( 关键字关键字 )|.haskeys)|.haskeys
Mycookie1=sugarMycookie2=TYPE1=sugar&TYPE2=ginger
RequestRequest
Cookie Cookie 例子:例子:<% <% nickname=Request.Form("nick")nickname=Request.Form("nick")Response.Cookies("nick")=nicknameResponse.Cookies("nick")=nickname' ' 用 用 response response 对象将用户名写入 对象将用户名写入 Cookie Cookie 之中 之中 Response.Write " Response.Write " 欢迎 欢迎 "&Request.Cookies("nick")&" "&Request.Cookies("nick")&" 光临!光临! " " %> %> <html><html><head><head><title>cookie</title> <title>cookie</title> </head> </head> <body> <body> <form method="POST" action="4-8.asp"> <form method="POST" action="4-8.asp"> <p><input type="text" name="nick"> <p><input type="text" name="nick"> <input type="submit" value=" <input type="submit" value=" 提交 提交 " name="B1">" name="B1"><input type="reset" value=" <input type="reset" value=" 重填 重填 " name="B2"></p>" name="B2"></p></form> </form> </body></body></html></html>
<% dim Num Num=Request.Cookies("Visit_num") if Num>0 then Num=Num+1 Response.write " 您已是第 " & Num & " 次访问本站点了。 " else Response.write " 欢迎您首次访问本站。 " Num=1 end if Response.Cookies("Visit_num")=Num %>
有时在一个页面中可能需要定义很多个 Cookies 变量,为了更好地管理它,
在 Cookies 组件中常引入概念“子键”。引用它的语法如下: Request.Cookies(" 变更名 ")(" 子键名 ") 如下面的 Cookie 其中保存了三个键值: <% Response.Cookie("info")("Myname")="jeff" Response.Cookie("info")("Gender")="male" Response.Cookie("info")("Myheight")="172" %>
事实上客户机上的 Cookie 字典是以字符串的形式存在: info=Myname=jeff&Gender=male&Myheight=172 如果用户没有指定“子键”名而直接引用 Cookies 变量,将会返回一个包含 所有的“子键”名及值的字符串。例如上面这个例子包含三个“子键”:“Mynam e” 、“ Gender” 和“ Myheight” ,当用户没有指定其“子键”而直接通过Request.Co okies(“info”) 来引用时,则会得到下列字符串: info=Myname=jeff&Gender=male&Myheight=172
AspAsp 内置对象内置对象-----response
Response 对象 •Response 对象用于动态响应客户端请求( Reque
st ),并将动态生成的响应结果返回到客户端浏览器中。 •Response 的使用语法为:•Response.collection|property|method
• Response 对象的属性
属 性 功 能 说 明Buffer 表明页输出是否被缓冲CacheControl 决定代理服务器是否能缓存 ASP 生成的输出Charset 将字符集的名称添加到内容类型标题中ContentType 指定响应的 HTTP 内容类型Expires 在浏览器中缓存的页面超时前,指定缓存的时间ExpiresAbsolute 指定浏览器上缓存页面超时的日期和时间IsClientConnected 表明客户端是否与服务器断开Status 服务器返回的状态行的值
• Response 对象的方法 方 法 功 能 说 明
AddHeader 从名称到值设置 HTML 标题AppendToLog 在该请求的 Web 服务器日志条目后添加字符串BinaryWrite 将给出信息写入到当前 HTTP 输出中,并且不进行任何字符集转换Clear 清除任何缓冲的 HTML 输出End 停止处理 .asp 文件并返回当前的结果Flush 立即发送缓冲的输出Redirect 将重指示的信息发送到浏览器,尝试连接另一个 URLWrite 将变量作为字符串写入当前的 HTTP 输出
Response 对象• 11 .. WriteWrite 方法方法 :: 可以向浏览器输出动态信息。可以向浏览器输出动态信息。 格式:格式: Response.Write Response.Write 任何数据类型任何数据类型 Response.Write(Response.Write( 任何数据类型任何数据类型 ))
Response.write 基本用法:(一个简单例子) <%@Language=VBScript%><html><head><title>Response.Write 的基本用法 </title></head><body><%Response.Write"<p> 你好!! "t=now()Response.Write"<p> 现在是: "& t &"<br>"cht1=" 谢谢! "cht2=" 欢迎光临! "Response.Write cht1 & cht2%></body></html>
4-2.asp
第五讲数据库基础知识
讲解提纲• 7.1 数据库的基本概念• 7.2 建立 Access 数据库• 7.3 SQL 语言简介
7.1 数据库的基本概念
7.1.1 数据库管理技术的发展阶段• 人工管理• 文件管理• 数据库管理
7.1.2 数据库的基本术语• 字段、记录、值、表、数据库、数据模型
7.1.3 数据库管理系统• 大中型关系型数据库管理系统有 SQL Serve
r 、 IBM DB2 、 Oracle 、 SyBase 、 Informix 等,常用的小型数据库管理系统有 Access 、 Pradox 、 Foxpro 等。
• 在 ASP 中一般使用 SQL Server 或 Access 数据库。 • 本书主要使用 Sql server 。
7.2 建立 sql server 数据库
7.2.1 规划数据库• 主要是规划每一个表的字段和字段类型,不要有冗余。
7.2.2 新建一个数据库• 依次选择菜单命令【开始】、【程序】、【 Microsoft access 】就可以启动 Access200
0
7.2.3 新建和维护表 • 在上图双击【使用设计器创建表】选项,就可以打开新建表的设计视图。
在表中输入数据• 在主窗口中双击表名,就可以打开输入窗口
7.2.4 新建和维护查询 • 利用查询可以更方便的更改分析和处理数据。查询就好比是一张虚拟的表一样,用户可以像在表里操作一样,输入数据或浏览数据。 • 查询有很几种:简单查询、组合查询、计算查询和条件查询。现在就来建立一个简单查询,只显示姓名和 Email两个字段的内容。
新建简单查询• 在 Access 主窗口左侧选择”查询”按钮
显示查询内容• 在主窗口中双击查询名称
利用 SQL 语言建立查询 • 当进行左图时,直接单击【关闭】按钮,然后在主窗口中依次选择【视图】、【 SQ
L 视图】菜单命令,就会出现” SQL 视图”对话框。
7.3 SQL 语言简介 1 . Select 语句 查询数据2 . Insert 语句 添加记录3 . Delete 语句 删除记录4 . Update 语句 更新记录
7.3.1 Select 语句 •此时可以使用 Select 语句来取得满足特定条件的记录集。也就是说可以从数据库中查询有关记录。 • Select [Top( 数值 )] 字段列表 From 表 [W
here 条件 ] [Order By 字段 ] [Group By 字段 ]
Select 语句示例• Select * From users • Select real_name,email From users • Select Top 3 * From users • Select real_name,(submit_date+365) As new_
date From users • Select * From users Where submit_date<#200
3-11-1# AND real_name=“ 建波”
Select 语句示例• Select * From users Where real_name like “%勇%” • Select * From users Order By real_name DESC • Select Count(*) As total From users Where submit_d
ate<#2003-11-1# • Select users.real_name,day_log.log_date,day_log.IP
From users,day_log Where users.user_name=day_log.user_name
7.3.2 Insert 语句 • 向用户表 Uesrs 中增加新成员时,就需要将新用户的数据插入到表 users 中。此时,可以使用 SQL 语言中的 Insert 语句来实现这个功能。 • Insert Into 表 ( 字段 1, 字段 2,…) Values( 字段 1 的值 , 字段 2 的值 ,…)
Insert 语句示例• Insert Into users ( user_name, password,real_n
ame,tel,email,submit_date) Values(“mengmeng”,”123456”,”萌萌” ,”6887150”,”[email protected]”, #2003-11-2#)
Insert 语句示例• Insert Into users ( user_name ) Values(“liya”)• Insert Into users ( user_name, real_name ) Val
ues(“feiyun”,”费云” )• Insert Into users ( user_name, submit_date ) V
alues(“luofang”,#2003-12-5#)• Insert Into users ( user_name, age) Values(“zh
angpeng”,23)
7.3.3 Delete 语句 • 在 SQL 语言中,可以使用 Delete 语句来删除表中无用的纪录。 • Delete From 表 [Where 条件 ]
Delete 语句示例 • Delete From users Where user_name=“tutu” • Delete From users Where submit_date<#2003-
1-1# And real_name=“李亚” • Delete From users
7.3.4 Update 语句 • 可以使用 Update 语句来实现更新数据的功能• • Update 数据表名 Set 字段 1=字段值 1 ,字段 2=字段值 2 ,… [Where 条件 ]
Update 语句示例 • Update users Set tel=“8282999”,email=“jjshan
[email protected]” Where user_name=“jjshang”• Update users Set submit_date=#2003-1-1# Wh
ere submit_date<#2003-1-1#• Update users Set age=age+10
7.4 设置数据源
什么是数据源• 所谓数据源,就是数据源开放数据库连接
(ODBC ) ,利用它就可以访问来自多种数据库管理系统的数据。•比如,如果你有一个访问 Access 数据库的程序,数据源 (ODBC) 会允许您用同一个程序访问 SQL 数据库中的数据。至于具体访问细节你就不用关心,由 ODBC 来完成。
本讲练习• 按照本书讲述,自己建立一个 userinfo.md
b 数据库。• 然后自己练习 SQL 语句。• 最后为其建立数据源。