一起学~ASP.NET实例编程(一)(2)
昨天我们学习了AdRotator 控件(广告轮播器)今天我们再学一个知识点:
网站访问计数器
即用application对象保存在线用户人数。以及区别一下application和session
区别:application对象用于保存用户共用的数据信息,session对象保存每个用户的专有信息。
下面介绍下globa.asax文件。我们可以通过添加全局应用程序类来添加。
————————————————————————————————————
Gobal.asax是干什么的?
Global.asax文件也称为ASP.NET应用程序文件,它一般被放在根目录下。此文件中的代码不产生用户界面,也不相应单个页面的请求。
它主要是负责处理Application_Start,Application_End,Session_Start和Session_End事件的。
Global.asax中的事件
描述 事件函数
发生错误时激发 Application_Error
应用程序结束时激发 Application_End
会话结束时激发 Session_End
HTTP请求结束时激发 Application_EndRequest
会话启动时激发 Session_Start
应用程序批准HTTP请求时激发 Application_AuthenticateRequest
HTTP请求开始时激发 Application_BeginRequest
应用程序启动时激发 Application_Start
————————————————————————————————————
1 //全局应用程序类文件的代码如下:
2
3 <%@ Application Language="C#" %>
4 <%@ Import Namespace="System.IO"%>
5 <script runat="server">
6
7 void Application_Start(object sender, EventArgs e)
8 {
9 // 在应用程序启动时运行的代码
10 //将VisitCount.txt文件的路径保存在Application对象中
11 Application["strPath"] = Server.MapPath(null) + @"\VisitCount.txt";
12 string strPath = Application["strPath"].ToString();
13 if (File.Exists(strPath))
14 {
15 StreamReader sr = new StreamReader(strPath);//构造StreamReader流对象
16 String strCount;
17 strCount = sr.ReadToEnd();
18 if (strCount != "")
19 Application["count"] = Convert.ToInt32(strCount);
20 else
21 Application["count"] = 0;
22 sr.Close();
23 }
24 else
25 {
26 StreamWriter sw = File.CreateText(strPath);//创建文本文件,并且返回StreamWriter流
27 Application["count"] = 0;
28 sw.Write(Application["count"].ToString());
29 sw.Close();
30 }
31 }
32
33 void Application_End(object sender, EventArgs e)
34 {
35 // 在应用程序关闭时运行的代码
36
37 }
38
39 void Application_Error(object sender, EventArgs e)
40 {
41 // 在出现未处理的错误时运行的代码
42
43 }
44
45 void Session_Start(object sender, EventArgs e)
46 {
47 // 在新会话启动时运行的代码
48 string strPath = Application["strPath"].ToString();
49 Application.Lock();
50 Application["count"] = System.Convert.ToInt32(Application["count"]) + 1;
51 StreamWriter sw = new StreamWriter(strPath);
52 sw.Write(Application["count"].ToString());
53 sw.Close();
54 Application.UnLock();
55 }
56
57 void Session_End(object sender, EventArgs e)
58 {
59 // 在会话结束时运行的代码。
60 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
61 // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
62 // 或 SQLServer,则不会引发该事件。
63 }
64
65 </script>
66
67 //aspx文件如下:
68
69 protected void Page_Load(object sender, EventArgs e)
70 {
71 Response.Write("你是第" + Application["count"].ToString() + "位登陆本页面者!");
72 }
73
74
____________________________________________________________________________________________
ASP.NET中文件操作
System.IO
•Directory :用于创建、移动和枚举通过目录和子目录
•File :用于创建、复制、删除、移动和打开文件
•Path:对包含文件或目录路径信息的String 实例执行操作
•StreamReader、StreamWriter:以一种特定的编码读写字符
-------------------------------------------------------------------------------------
文件操作概述
• 任何一种编程技术,都少不了对文件的操作。
• 由于ASP.NET使用了.NET平台同一的类库,因而其对文件的操作的功能非常强大
•.NET提供了一些专门用于文件操作的类库,比如File、FileStream、BinaryReader、BinaryWriter、StreamReader、StreamWriter等。