第51章、Application应用
来源:互联网 发布:调音师用什么软件 编辑:程序博客网 时间:2024/06/06 01:06
【知识要点】
(1)了解不同页面之间的传值
(2)Application的应用
【问题提出】
我们希望使用Application统计网站的访问情况。
(1)页面单击数:页面被单击一次+1,不管是否是同一个用户多次单击页面。
(2)用户访问数:来了一个用户+1,一个用户打开多个页面不会影响这个数字。
【在线指导】
我们首先需要在Application_Start中去初始化两个变量。
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Application["PageClick"]=0;
Application["UserVisit"]=0;
}
用户访问数根据Session来判断,因此可以在Session_Start的时候去增加这个变量:
void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["UserVisit"]=(int)Application["UserVisit"]+1;
Application.UnLock();
}
我们看到,Application的使用方法和Session差不多。唯一要注意的是,Application的作用范围是整个应用程序,可能有很多用户在同一个时间访问Application造成并发混乱,因此在修改Application的时候需要先锁定Application,修改完成后再解锁。
页面单击数则在页面Page_Load的时候去修改。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Application.Lock();
Application["PageClick"] = (int)Application["PageClick"] + 1;
Application.UnLock();
Response.Write(string.Format("页面单击数:{0}<br/>", Application["PageClick"]));
Response.Write(string.Format("用户访问数:{0}<br/>", Application["UserVisit"]));
}
}
1、设计界面
(1)打开Hello项目,单击“启动页>最近使用的项目>Hello”。
(2)在“解决方案资源管理器”中添加“Global.asax”页面。
(3)在“解决方案资源管理器”中添加“Application-Session.aspx”页面。
2、添加代码
(1)双击Global.asax页面。
我们首先需要在Application_Start中去初始化两个变量。
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Application["PageClick"]=0;
Application["UserVisit"]=0;
}
用户访问数根据Session来判断,因此可以在Session_Start的时候去增加这个变量:
void Session_Start(object sender, EventArgs e)
{
Application.Lock();
Application["UserVisit"]=(int)Application["UserVisit"]+1;
Application.UnLock();
}
(2)双击Application-Session.aspx页面空白处。
我们在Page_Load()中间输入:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Application.Lock();
Application["PageClick"] = (int)Application["PageClick"] + 1;
Application.UnLock();
Response.Write(string.Format("页面单击数:{0}<br/>", Application["PageClick"]));
Response.Write(string.Format("用户访问数:{0}<br/>", Application["UserVisit"]));
}
}
讲解:
体会Application与Session的异同。
(3)选择“Application-Session.aspx”,单击右键菜单选择“从浏览器中查看……”。
(4)刷新“Application-Session.aspx”页面。
(5)关闭“Application-Session.aspx”页面,再次打开,试着再刷新几次。
因为Application的自我管理功能非常薄弱,它没有类似Session的超时机制。也就是说,Application中的数据只有通过手动删除或者修改才能释放内存,只要应用程序不停止,Application中的内容就不会消失。在下一节中,我们会看到,可以使用Cache实现类似Application的功能,同时Cache又有丰富而强大的自我管理机制。
在结束本节以前,让我们来根据第一节中提出的几个问题总结一下Application的特性。
· 存储的物理位置。服务器内存。
· 存储的类型限制。任意类型。
· 状态使用的范围。整个应用程序。
· 存储的大小限制。任意大小。
· 生命周期。应用程序开始的时候创建(准确来说是用户第一次请求某URL的时候创建),应用程序结束的时候销毁。
· 安全与性能。数据总是存储在服务端,安全性比较高,但不易存储过多数据。
· 优缺点与注意事项。检索数据速度快,但缺乏自我管理机制,数据不会自动释放。
- 第51章、Application应用
- Spring - Java/J2EE Application Framework 应用框架 第 1 章 简介
- Spring - Java/J2EE Application Framework 应用框架 第 3 章 Beans, BeanFactory和ApplicationContext
- Spring - Java/J2EE Application Framework 应用框架 第 6 章 集成AspectJ
- Spring - Java/J2EE Application Framework 应用框架 第 7 章 事务管理
- Spring - Java/J2EE Application Framework 应用框架 第 8 章 源代码级的元数据支持
- Spring - Java/J2EE Application Framework 应用框架 第 9 章 DAO支持
- Spring - Java/J2EE Application Framework 应用框架 第 10 章 使用JDBC进行数据访问
- Spring - Java/J2EE Application Framework 应用框架 第 11 章 使用ORM工具进行数据访问
- Spring - Java/J2EE Application Framework 应用框架 第 12 章 Web框架
- Spring - Java/J2EE Application Framework 应用框架 第 13 章 集成表现层
- Spring - Java/J2EE Application Framework 应用框架 第 14 章 JMS支持
- Spring - Java/J2EE Application Framework 应用框架 第 15 章 EJB的存取和实现
- Spring - Java/J2EE Application Framework 应用框架 第 4 章 属性编辑器,数据绑定,校验与BeanWeapper(Bean封装)
- Spring - Java/J2EE Application Framework 应用框架 第 5 章 Spring AOP: Spring之面向方面编程G
- Spring - Java/J2EE Application Framework 应用框架 第 5 章 Spring AOP: Spring之面向方面编程
- Spring - Java/J2EE Application Framework 应用框架 第 16 章 通过Spring使用远程访问和web服务
- Spring - Java/J2EE Application Framework 应用框架 第 17 章 使用Spring邮件抽象层发送Email
- HTTP请求原理介绍
- Java实现回溯法解决0-1背包问题
- 彻底完全卸载SQL Server 2005
- Windows Server 2008 R2为网站设置独立的匿名使用用户名
- CentOS网络配置
- 第51章、Application应用
- liferay Developer Mode
- SIFT
- java 通过jdbc连接sql2000
- 第52章、Cookies应用
- hdu 4309 Seikimatsu Occult Tonneru(网络流,4级)
- chmod命令详解 Permission denied
- WPF image控件图片白屏
- book