ASP.NET教程之在ASP.net中网站会见量复杂统计办法
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)一名QQ密友问我团体网站会见量是怎样统计的,因为自己初学做网站,程度无限,所先容的办法多是笨办法,但在我网站上可以对付着利用,但愿人人多多指教。一名QQ密友问我团体网站会见量是怎样统计的,因为自己初学做网站,程度无限,所先容的办法多是笨办法,但在我网站上可以对付着利用,但愿人人多多指教。1、创建一个数据表IPStat用于寄存用户信息
我在IPStat表中寄存的用户信息只包含登任命户的IP(IP_Address),IP来历(IP_Src)和登录工夫(IP_DateTime),些表的信息自己只保留一天的信息,假如要统计每月的信息则要保留一个月。由于我不太懂对数据日记的操纵,以是创立此表,以是说我笨吧,哈哈。
2、在Global.asax中猎取用户信息
在Global.asax的Session_Start即新会话启用时猎取有关的信息,同时在这里完成在耳目数、会见总人数的增量统计,代码以下:
voidSession_Start(objectsender,EventArgse)
{
//猎取会见者的IP
stringipAddress=Request.ServerVariables["REMOTE_ADDR"];
//猎取会见者的来历
stringipSrc;
//判别是不是从搜刮引擎导航过去的
if(Request.UrlReferrer==null)
{
ipSrc="";
}
else
{
//猎取来历地点
ipSrc=Request.UrlReferrer.ToString();
}
//猎取会见工夫
DateTimeipDatetime=DateTime.Now;
//保留IP信息到数据库中
IPControlcont=newIPControl();
cont.AddIP(ipAddress,ipSrc,ipDatetime);
//猎取用户会见的页面
stringpageurl=Request.Url.ToString();
//判别会见的是不是是默许页
if(pageurl.EndsWith("IPStat.aspx"))
{
//锁定变量
Application.Lock();
//为页面会见量+1
Application["StatCount"]=int.Parse(Application["StatCount"].ToString())+1;
//解锁
Application.UnLock();
}
//锁定变量
Session.Timeout=10;//设定超时为10分钟
Application.Lock();
Application["countSession"]=Convert.ToInt32(Application["countSession"])+1; //会见总人数+1
Application["onlineWhx"]=(int)Application["onlineWhx"]+1;//在耳目数加+1
Session["login_name"]=null;
//解锁
Application.UnLock();
}
提示一句,别忘了上面的代码,以完成在用户离线时,将在耳目数减往1.
voidSession_End(objectsender,EventArgse)
{
//在会话停止时运转的代码。
//注重:只要在Web.config文件中的sessionstate形式设置为InProc时,才会激发Session_End事务。
假如会话形式设置为StateServer
//或SQLServer,则不会激发该事务。
//锁定变量
Application.Lock();
Application["onlineWhx"]=(int)Application["onlineWhx"]-1;//在耳目数减-1
Session["login_name"]=null;
//解锁
Application.UnLock();
}
3、将以上有关信息保留到数据库IPStat
创立了一个猎取IP数据信息的类IPControl(),用来完成对数据库IPStat数据的操纵,关于IPControl()类的内容,由于它是C#中对数据库的操纵,以解Sqlserver数据库,就可以看懂它,这里就不作先容了,请点击该链接检察。
为了完成将用户IP信息存进数据库,在下面代码中对IPControl()举行挪用
//保留IP信息到数据库中
IPControlcont=newIPControl();
cont.AddIP(ipAddress,ipSrc,ipDatetime);
参数ipAddress为用户IP,ipSrc为用户来历,ipDatetime为用户进进工夫。chinaitlab
说句实话,Java跨平台根本就不是外行人想想的那种,一次编译,处处运行。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。 微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。 asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦! 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。 Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
页:
[1]