《【教学课件】第四章Session和Application对象.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章Session和Application对象.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第四章 Session和Application对象 Session对象记载某一特定的客户信息,不同的客户用不同的Session对象来记载 Application对象记载所有访问该应用程序的客户信息4.1 利用Session对象记载特定客户信息 Session对象记载某一特定的客户信息,不同的客户用不同的Session对象来记载 Session对象有效期:默认为20分钟,可设定 Session工作原理:在应用程序中,当客户端启动一个Session时,ASP会自动生成一个SessionID,并将该SessionID回送客户端浏览器,而浏览器则将该SessionID保存在Cookies中。当客户端再
2、次向服务器发出HTTP请求时。ASP检查申请表头的该SessionID,并回应相应该SessionID的该Session信息。4.1.1 Session对象简介 Session对象的属性 SessionID:存储用户的SessionID Timeout:Session的有效期长度 Session对象的方法 Abandon:清除Session对象 Session对象的事件 Session_OnStart:该Session“开始前”所执行的程序 Session_OnEnd:该Session“结束后”所执行的程序4.1.2 利用Session存储信息 格式:Session(“名字”)=变量/字符串
3、例如:Session用法示例%Dim user_name,ageuser_name=卓云 age=22Session(user_name)=user_name Session(age)=ageResponse.write 单击显示用户名%5-2.asp%Dim user_nameuser_name=Session(user_name)Response.Write user_name&您好,欢迎您Response.Write 您的年龄是&Session(Age)%4.1.4 利用Session存储数组信息 Session存储数组与存储单个变量的方法基本上一样的,但Session将传入的数组视为一
4、个整体,只能对整个数组进行整体存取,而不能对数组元素分别进行存取。例如:是不可以的。4.1.4 Session存储数组示例%Dim user_name()Redim user_name(5)user_name(0)=白芸user_name(1)=赵敏Session(arry_user_name)=user_name 传入数组到Session对象Response.Write 单击显示数组信息%4.1.4 Session存储数组示例%Dim user_name 注意声明方式,未加扩号user_name=Session(arry_user_name)返回Session数组元素Response.Wri
5、te user_name(0)&您好,欢迎您Response.Write user_name(1)&您好,欢迎您%4.1.5 Timeout属性 格式:Session.Timeout=例如:如设定值小于默认值20分钟,则仍以默认值为准。4.1.6 Abandon属性 格式:Session.Abandon 例如:4.2 利用Application对象记载所有客户信息 Session对象记载特定客户信息,而Application对象记载所有的客户信息。通过Application对象,所有的客户可以相互交流信息,典型的如聊天室,大家的发言均放在同一个Application对象中。这样一来,彼此就可以
6、看到发言内容。4.2.1 Application对象简介 Application对象是所有客户一起使用的。通过该对象,所有客户均可存取Application定义的同一名称的参数。Application对象的有效期没有限制,直到应用程序停止。Application对象的方法与事件 4.2.1 Application对象简介 Application对象的方法与事件 Lock:锁定Application对象 Unlock:解除锁定 Application_OnStart:该Application“开始前”所执行 的程序 Application_OnEnd:该Application“结束后”所执行 的
7、程序 4.2.2 利用Application存储信息 格式:Application(“名字”)=变量/字符串 例如:4.2.2 Application用法示例请发言:%If trim(request(pronunciation)Then Application.LockApplication(show)=request(pronunciation)&Application(show)Application.UnlockEnd ifResponse.Write Application(show)%4.2.2 Application用法示例4.2.2 Application用法示例计数器4.2.3
8、 利用Application存储数组信息 与利用Session存储数组类似,Application存储数组信息时也同样要将数组作为一个进行存取,而且要在存储前后使用Lock和Unlock。读取:%Dim user_nameUser_name=Application(“array_user_name”)Response.Write user_name(0)&”您好!”%4.2.3 利用Application存储数组信息(续)存储:4.3 Global.asa文件 Global.asa文件的功能是定义Session、Application对象事件所对应的程序。当Session或Applicatio
9、n第一次被调用或结束时,将运行该文件中对应的程序。注意(1)文件必须文本文件,文件名必须是Global.asa,且必须存放在应用程序的根目录下。(2)在Global.asa中,不能写成格式。(3)在Global.asa中,不能包含任何输出语句。Global.asa文件格式 Sub Application_OnStart 子程序 End Sub Sub Application_ OnEnd 子程序 End Sub Sub Session_OnStart 子程序 End Sub Sub Session_ OnEnd 子程序 End SubGlobal.asa示例:Sub Application_O
10、nStartApplication.LockApplication(user_online)=0Application.UnlockEnd SubSub Session_OnStartApplication.LockApplication(user_online)=Application(user_online)+1Application.Unlockend subSub Session_OnEndApplication.LockApplication(user_online)=Application(user_online)-1Application.UnlockEnd Sub5-7.asp
11、显示网站在线人数我的个人主页%Response.Write 当前共有&Application(user_online)&人在线%4.3.2 Global.asa示例第五章 ASP存取数据库本章重点:ASP与数据库连接的基本方法 ASP对数据库的在线操作方法5.1 数据库预备知识SQL ServerOracleAccess 由于使用标准SQL语言,存取Access数据库与存取SQL Server/Oracle数据库基本上是一样的,后台数据库的变化对ASP源程序没有什么影响,只需相应改变数据库的连接语句就可以了。5.1.1 建立Access数据库在Access数据库系统中示范5.1.2 设置数据源
12、在Windows系统中示范5.2 利用数据源存取组件存取数据库ODBC,Open DataBase Connection ADO,ActiveX Data Objects,提供Web页面与数据库结合的数据库技术,可以将传统的数据库后台管理模式放到前台的Web页面上来进行,是得数据库的存取更新简单、方便。Connection、Command和Recordset 三个对象5.2.1 数据库连接方法%注意:第三句打开的是数据源WWWlink,不是数据库WWWlink.bdb,数据源与数据库可以同名,也可以不同名。5.2.1 数据库连接方法(续)%5.2.2 利用Select语句查询记录Select
13、字段列表 From 数据表列表 Where 条件Order By 字段例:Select name,URL,intro From linkSelect*From linkSelect*From link Where name=“新浪”Select*From link Order By link_id5.2.2 利用Select语句查询记录例5.2.2 利用Select语句查询记录例 aref=http:/target=new_ a href=6-3.asp?link_id=删除 a href=6-4.asp?link_id=修改 5.2.2 利用Select语句查询记录例5.2.3 利用Inse
14、rt语句添加记录Insert Into 表名(字段1,字段2,)Values(字段值1,字段值2,)例如:Insert Into link(name,URL,intro)Values(“中国教科网”,,”中国教科网站”)网站名字网站网址网站简介%If Request(name)and Request(URL)and Request(intro)Thendim db set db=Server.Createobject(ADODB.Connection)db.Open DBQ=&Server.Mappath(wwwaccess.mdb)&;DRIVER=Microsoft Access Driv
15、er(*.mdb);Dim strSql,varName,varURL,varIntrovarName=Request(name)varURL=Request(URL)varIntro=Request(intro)StrSql=insert into link(name,URL,intro,submit_date)values(&varName&,&varURL&,&varIntro&,&Date()&)%带有查错功能:Dim strSql,varName,varURL,varIntrovarName=Request(name)varURL=Request(URL)varIntro=Reque
16、st(intro)StrSql=insert into link(name”sValues=“values(&varName&”If varURL”thenstrSql=strSql&”,URL”sValues=sValues&“,&varURL&”End If5.2.4 利用Delete语句删除记录Delete From 表名 Where 条件例如:Delete From link Where name=“网易”5.2.4 利用Delete语句删除记录例dim db set db=Server.Createobject(ADODB.Connection)db.Open DBQ=&Server
17、.Mappath(WWWAccess.mdb)&;DRIVER=Microsoft Access Driver(*.mdb);以下删除记录,注意这里是由6-1.asp传过来的要删除的记录的记录编号Dim varLink_id,strSqlvarLink_id=Request.QueryString(link_id)strSql=delete from link where link_id=&varLink_id db.Execute(strSql)这里利用Execute方法,删除记录Response.Redirect 6-1.asp 删除完毕,返回首页6-1.asp5.2.5 利用Update
18、语句修改记录Update 数据库表名 Set 字段1=值1,字段2=值2,Where 条件例如:Update link Set intro=“赢利网站”Where name=“新浪”网站名字input type=text name=name size=20 value=网站网址input type=text name=URL size=60 value=网站简介%如果上面的信息填全了,就修改记录,否则给出错误信息If Request(name)AND Request(URL)AND Request(intro)Then以下修改记录Dim varName,varUrl,varIntrovarNa
19、me=Request(“name”)varURL=Request(URL)varIntro=Request(intro)StrSql=update link set name=&varName&,URL=&varURL&,intro=&varIntro&where link_id=&varLink_iddb.Execute(strSql)这里利用Execute方法,修改记录Response.Redirect 6-1.asp 修改完毕,返回首页6-1.aspElseResponse.Write 请将所有信息填写完整End If%5.3.1 存取SQL数据库(一)5.3.1 存取SQL数据库(二)
20、5.3.2 对多个数据库进行操作 基本情况表TA:student_id,password,name 详细情况表TB:student_id,department,age 组合查询 显示学生的学号、姓名、年龄、系别 5.3.2 对多个数据库进行操作 基本情况表TA:student_id,password,name 详细情况表TB:student_id,department,age 组合查询 显示学生的学号、姓名、年龄、系别%以下建立Recordset对象实例rsDim strSql,rsstrSql=“Select TA.student_id,TA.name,TB.age,TB.department From TA,TB Where TA.student_id=TB.student_id”Set rs=db.Execute(strSql)以下显示数据库查询结果Response.Write“学号”&rs(“student_id”)&”Response.Write“姓名”&rs(“name”)&”Response.Write“年龄”&rs(age”)&”Response.Write“系别”&rs(“department”)&”%