程序原理:
//1. 要将Application["user_sessions"]的值放到数据库中,不然,当服务器关闭时这个值就会被删除。
//2. 在Global.asax文件中 根根Session 来设置Application["user_sessions"]值的加减.
//3. 也要注意在web.config文件中设置Session 在下面讲了。
//4. 建立一个数据库表。
//5. 在数据库表中设初始值(可以设大一点)。以便访问量让别人看起来访问量会很大。
//6. 将获得的新的Application["user_sessions"]的值 Update到数据库表中。
//========显示访问的人数
<script language="c#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
this.visitors.Text = "本站当前有: <br>" + Application["user_sessions"].ToString() + "" + "<br> 位访问者 !";
}
</script>
//====Global.asax文件
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Web;
5
using System.Web.SessionState;
6
7
namespace BYD_SPCSystem
8

{
9
/**//// <summary>
10
/// Global 的摘要说明。
11
/// </summary>
12
public class Global : System.Web.HttpApplication
13
{
14
/**//// <summary>
15
/// 必需的设计器变量。
16
/// </summary>
17
private System.ComponentModel.IContainer components = null;
18
19
public Global()
20
{
21
InitializeComponent();
22
}
23
24
protected void Application_Start(Object sender, EventArgs e)
25
{
26
//在HttpApplication 类的第一个实例被创建时,该事件被触发。它允许你创建可以由所有HttpApplication 实例访问的对象。
27
Application["user_sessions"] = 100;
28
}
29
30
protected void Session_Start(Object sender, EventArgs e)
31
{
32
//session的生存期是多长,是可以设定的,Session.timeout=X(分钟)
33
//在一个新用户访问应用程序 Web 站点时,该事件被触发。
34
Application.Lock();
35
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
36
Application.UnLock();
37
38
}
39
40
protected void Application_BeginRequest(Object sender, EventArgs e)
41
{
42
43
}
44
45
protected void Application_EndRequest(Object sender, EventArgs e)
46
{
47
48
}
49
50
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
51
{
52
53
}
54
55
protected void Application_Error(Object sender, EventArgs e)
56
{
57
58
}
59
60
protected void Session_End(Object sender, EventArgs e)
61
{
62
//在一个用户的会话超时、结束或他们离开应用程序 Web 站点时,该事件被触发。
63
Application.Lock();
64
Application["user_sessions"] = (int)Application["user_sessions"]-1;
65
Application.UnLock();
66
}
67
68
protected void Application_End(Object sender, EventArgs e)
69
{
70
71
}
72
73
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
74
/**//// <summary>
75
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
76
/// 此方法的内容。
77
/// </summary>
78
private void InitializeComponent()
79
{
80
this.components = new System.ComponentModel.Container();
81
}
82
#endregion
83
}
84
}
85
86
//=====web.config文件


1
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"
2
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
3
cookieless="true" timeout="20"/>
//删除Session
//================1. 关闭网页时加载另一个页面
<script type="text/javascript">
var obj = new Object();
obj.name="i5tt";
function window.onunload()
{
window.showModalDialog("ClosePage.aspx",obj,"dialogWidth=200px;dialogHeight=100px");
}
</script>
//========2. 清空Session
<%Session.Clear(); Session.Abandon(); %>
//========3. 将这个页面关闭.
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("<script language='javascript'>window.close();</script>");
}
//========4. 注意这样清除Session的话,在每次刷新页面时都会将Session自动清空,因为Session是在页面加载时清空的。
-->1. 刷新是用来更新当前数据的显示信息
-->2. 重新提交页面.