Transcript ASP.NET对象
第五章 ASP.NET对象
褚龙现
[email protected]
软件学院
回顾内容
Server对象
Application对象
软件学院
回顾– Server对象的方法
方法名
功能说明
HtmlEncode
对显示字符串进行编码
UrlEncode
对指定字符串以URL格式编码
MapPath
将虚拟路径转换为物理路径
Execute
使用另一页执行当前请求
Transfer
终止当前页,执行新页面
软件学院
回顾– Application存储信息
Application中信息是应用程序共享
的,对其进行写操作时一般作加锁
处理。
Application.Lock();
Application[“age”]=25;
Application.UnLock();
软件学院
回顾– Application读取信息
在访问Application信息时,为了防
止访问不存在的对象信息,一般先
作判断
If(Application[“age”]!=null)
{
//Application[“age”]
}
软件学院
教学目标
掌握Session对象
掌握Cookies对象
理解Application对象应用实例
理解Session对象应用实例
软件学院
教学重难点
重点
Session和Cookies对象使用方法
难点
Cookies对象
软件学院
5.6 Session对象
Session对象的主要作用是在服
务器端存储特定信息,这些信息
都是局部的,是特定于某一个用
户的。
Session中的信息也被称为会话
状态。
软件学院
5.6 Session对象
Session对象可以实现在网站内
部不同页面之间共享信息,但共
享的信息属于特定用户。
在浏览器第一次请求应用程序的
某个页面时,会话开始;在会话
超时或被关闭时,会话结束。
软件学院
5.6.1 Session生命周期
Session的生命周期是有限的,默认为20分
钟,可以通过Session对象的Timeout属性
设置。在生命周期内,Session值有效,若
用户在大于生命周期的时间里没有再访问应
用程序,Session会自动过期,此时Session
对象被释放,其存储的信息不再有效。
软件学院
5.6.2 使用Session对象
如果要使用Session对象,必须
保证页面的@Page指令中的属性
EnableSessionState值为True
或ReadOnly,并在Web.config
文件中对Session进行了正确配
置。
软件学院
5.6.2 使用Session对象
Session中存储信息
Session中读取信息
Session中删除信息
软件学院
Session存储信息
Session是一个集合对象,是存储
信息的容器,信息在集合中是以对
象的形式存放的。每条信息对应一
个对象名和一个对象值。
添加新对象的方法
Add(string name,object value)
Session[“name”]=value
软件学院
Session读取信息
Session中的信息可以通过对象名
称索引或对象在集合中的位置数字
索引来访问。
访问信息
Session[0]
Session[“age”]
软件学院
Session读取信息
在访问Session信息时,为了防止
访问不存在的对象信息,一般先作
判断
If(Session[“age”]!=null)
{
//Session[“age”]
}
软件学院
删除Session信息
Session中的对象不再使用时可以
显示地删除。
删除信息
Session.Remove(“age”);
Session.RemoveAll();
Session.Clear();
软件学院
5.6.3 配置Session
使用Session前一般需要修改配置文件
<configuration>
<system.web>
<sessionState mode=“Inproc”
cookieless=“false” timeout=“20”>
</sessionState>
</system.web>
</configuration>
软件学院
5.6.3 配置Session
<sessionState>标记的属性
cookieless属性可选,指示会话是否使用客
户端cookie
timeout属性可选,指定在放弃一个会话前
该会话处于空闲状态的分钟数,默认20
mode属性必须有,指定在哪里存储会话状
态
软件学院
5.7 Cookies对象
Cookie是一小段文本信息,伴随
着用户请求同页面一起在Web服
务器和浏览器之间传递。
用户每次访问站点时,Web应用
程序都可以读取Cookie包含的信
息。
软件学院
5.7.1 Cookie使用限制
大多数浏览器支持最大4096字节的
Cookie,不能保存大量数据;
浏览器限制每个站点可以在用户计
算机上保存的Cookie数;
用户可以设置自己的浏览器,拒绝
接受Cookie。
软件学院
5.7.2 设置Cookie
使用Response对象的Cookies属性
设置Cookie信息,使用Request对象
的Cookies属性读取Cookie信息。
Cookie对象由HttpCookie类实现
软件学院
5.7.2 设置Cookie
Cookie对象的常用属性
属性名
Name
Expires
Domain
HasKeys
Path
Secure
Value
Values
说明
获取或设置Cookie的名称
获取或设置Cookie的过期日期和时间
获取或设置Cookie关联的域
获取一个值,指示Cookie是否具有子键
获取或设置要与Cookie一起传输的虚拟路径
获取或设置一个值,指示是否安全传输
获取或设置单个Cookie值
获取在单个Cookie对象中包含的键值对集合
软件学院
5.7.2 设置Cookie
[例1]设置Cookie名为userage,有效期3天
Response.Cookies[“userage”].Value
=18.ToString();
Response.Cookies[“userage”].Expires
=DateTime.Now.AddDays(3);
软件学院
5.7.2 设置Cookie
[例2]设置多值Cookie名为user,有效期3天
Response.Cookies[“user”][“username”]
=“张三”;
Response.Cookies[“user”][“userage”]
=18.ToString();
Response.Cookies[“user”].Expires
=DateTime.Now.AddDays(3);
软件学院
Application应用实例—聊天室
软件学院
Application应用实例—聊天室
软件学院
Application应用实例—聊天室
所需页面
Send.aspx:用于发送信息
Main.aspx:用于显示信息,并且定时
刷新
Index.htm:主页面用于分割浏览器,
将浏览器分为上下两部分,上面显示聊
天内容,下面完成信息发送功能
软件学院
Application应用实例—聊天室
功能设计思路
定义一个全局变量用于存放聊天内容,且该变
量为所有用户共享
在发送页面中输入个人聊天内容,同时可以通
过按钮事件将聊天内容添加到全局变量中
在显示页面显示全局变量的内容,并且定时刷
新页面使得用户看到最新内容
将发送页面与显示页面合成到一个页面
软件学院
Application应用实例—聊天室
全局变量定义
全局变量使用Application定义
当应用程序启动时定义全局变量
添加Global.asax文件用来实现应用程
序启动事件
软件学院
Application应用实例—聊天室
Send.aspx页面相关功能实现
界面设计:两个文本框和一个按钮
程序实现:按钮事件中完成以下功能
1. 获取用户输入信息并设置信息样式
2. 将信息添加到全局变量中,注意加锁
3. 清空内容文本框
软件学院
Application应用实例—聊天室
Main.aspx页面相关功能实现
界面设计:一个标签
程序实现:页面加载时实现以下功能
1. 标签显示全局变量的内容
2. 将页面设置为定时刷新,设置方法
<meta http-equiv="refresh" content="4;" />
软件学院
Application应用实例—聊天室
相关页面组合
创建主页面index.htm
使用框架实现页面组合
<frameset rows="*,150">
<frame src="main.aspx"></frame>
<frame src="send.aspx"></frame>
</frameset>
软件学院
Session应用实例—用户权限检查
问题描述
网站中有部分页面只有通过成功登录的用户
才能访问,当这些页面被请求时如何判断该用户
是否通过了登录?
解决方法
使用Session对象实现。用户登录成功则记
Session变量,然后在保护页面中判断Session中
的值是否是已经记录的值即可。
软件学院
Session应用实例—用户权限检查
所需页面
Default.aspx:主页面,用于提供正常
登录的入口
Login.aspx:登录页面,用于用户登录
Member.aspx:受保护的页面
软件学院
Session应用实例—用户权限检查
功能设计思路
网站中添加三个页面,主页面、保护页面和登录页面
主页面中提供正常登录的入口,可以用超链接
登录页面包含必须的用户名和密码文本框以及按钮
登录按钮事件中判断登录是否成功,若成功则定义该
用户的Session变量,如保存用户名
在保护页面加载时判断Session变量,如果Session中
是用户名则证明用户已经成功登录,否则跳转到登录
页面
软件学院
下次课讲解内容
关系数据库设计
软件学院