步骤一、建一个表,表名任意,这里取名为:er,表的结构如下所示:
+-------+------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+------------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| vdate | date | NO | | 2000-01-01 | |
| vnum | int(11) | NO | | 0 | |
+-------+------------------+------+-----+------------+----------------+
步骤二、建立一个java类,名字也为:visitorcounter,类的内容如下:
package com.hdzx.pub;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
public class VisitorCounter {
private final static String TABLE_NAME = "visitorcounter";
private static String today = null;
private static long today_num = 0;
private static long total_num = 0;
//加载访问量
public static void loadNum(){
if(total_num<1)
loadTotalNum();
if(today_num<1)
loadToadyNum();
}
//加载今日访问量
private static void loadToadyNum() {
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if(today==null)
today = getTodayDate();
String sql = "select vnum from "+TABLE_NAME+" where vdate='"+today+"'";
try {
db = new DBConnect();
rs = db.executeQuery(sql);
if(rs.next()){
today_num = rs.getLong("vnum");
}
else
{
sql = "insert into "+TABLE_NAME+"(vdate,vnum) values('"+today+"',0)";
db.executeUpdate(sql);
today_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
today_num = 0;
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:获得访问人数");
}
}
//加载总访问量
private static void loadTotalNum() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
DBConnect db = null;
ResultSet rs = null;
if(today==null)
today = getTodayDate();
String sql = "select vnum from "+TABLE_NAME+" where id=1";
try {
db = new DBConnect();
rs = db.executeQuery(sql);
if(rs.next()){
total_num = rs.getLong("vnum");
}
else
{
total_num = 0;
}
} catch (Exception e) {
// TODO: handle exception
total_num = 0;
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:获得访问人数");
}
}
//增加总的访问量
private static int incTotalCounter(){
int k = 0;
DBConnect db = null;
loadNum();
total_num = total_num+1;
String sql = "update "+TABLE_NAME+" set vnum="+total_num+" where id=1";
try {
db = new DBConnect();
k = db.executeUpdate(sql);
} catch (Exception e) {
// TODO: handle exception
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加访问人数");
}
return k;
}
//增加今日的访问量
public static int incTodayCounter(){
int k = 0;
DBConnect db = null;
String sql = null;
loadNum();
today_num += 1;
sql = "update "+TABLE_NAME+" set vnum="+today_num+" where vdate='"+today+"'";
try {
db = new DBConnect();
k = db.executeUpdate(sql);
if(k > 0)
incTotalCounter();
} catch (Exception e) {
// TODO: handle exception
System.out.println("com.hdzx.pub~VisitorCounter.incTotalCounter:增加访问人数");
}
return k;
}
//获得今天的日期
private static String getTodayDate(){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(new Date());
}
///获得今日访问量
public static long getTodayNum(){
loadNum();
return today_num;
}
//获得总的访问量
public static long getTotalNum(){
loadNum();
return total_num;
}
}
步骤三、经过以上的步骤后,在页面中加入以下的代码,就可以实现网站访问量的统计工作:
if(session.isNew())
{
VisitorCounter.incTodayCounter();
}
%>
今日访问量:<%=VisitorCounter.getTodayNum() %><br/>
总的访问量: <%=VisitorCounter.getTotalNum() %>
B. 网站访问量统计java代码怎样写
<DIV class="h">
<%-- 记录网站访问次数 --%>
<%
Integer counter = (Integer)application.getAttribute("counter"); //先从application里面获取计数器的key的值
if(counter==null){
//如果该值为null,说明第一次访问
application.setAttribute("counter",1);
counter=(Integer)application.getAttribute("counter");
}else {
//如果该值不为空,取出来进行累加
int i = counter.intValue();
i++;
application.setAttribute("counter",i);//累加后再放进去
}
%>
<% User user =(User)session.getAttribute("users"); %>
<%="欢迎"+user.getName() %> |您是第<%=counter.intValue()%>位访客
</DIV>
谢谢~
C. 网站访问量统计java代码
public class Counter {
private int count;
// 每访问一次,计数器自加一
public int getCount() {
return ++count;
}
public void setCount(int count) {
this.count = count;
}
}
<%-- 定义一个 session 范围内的计数器 记录个人访问信息 --%>
<jsp:useBean id="personCount" class="com.helloweenvsfei.jspweb.bean.Counter" scope="session" />
<%-- 定义一个 application 范围内的计数器 记录所有人的访问信息 --%>
<jsp:useBean id="totalCount" class="com.helloweenvsfei.jspweb.bean.Counter" scope="application" />
<div align="center">
<form action="method.jsp" method="get">
<fieldset style='width: 300'>
<legend>计数器</legend>
<table align="center" width="400">
<tr>
<td width=150 align="right" style="font-weight:bold; ">您的访问次数:</td>
<td>
<%-- 获取个人的 访问次数 --%>
<jsp:getProperty name="personCount" property="count" /> 次
</td>
</tr>
<tr>
<td width=150 align="right" style="font-weight:bold; ">总共的访问次数:</td>
<td>
<%-- 获取所有人的 访问次数 --%>
<jsp:getProperty name="totalCount" property="count" /> 次
</td>
</tr>
</table>
</fieldset>
</form>
</div>
希望你能帮到你
D. 网站常用统计代码(PV,UV)分别代表什么意思
PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的版主要指标。
高手对pv的解权释是,一个访问者在24小时(0点到24点)内到底看了你网站几个页面。这里需要强调:同一个人浏览你网站同一个页面,不重复计算pv量,点100次也算1次。说白了,pv就是一个访问者打开了你的几个页面。
PV之于网站,就像收视率之于电视,从某种程度上已成为投资者衡量商业网站表现的最重要尺度。
pv的计算:当一个访问者访问的时候,记录他所访问的页面和对应的IP,然后确定这个IP今天访问了这个页面没有。如果你的网站到了23点,单纯IP有60万条的话,每个访问者平均访问了3个页面,那么pv表的记录就要有180万条。
uv(unique visitor),指访问某个站点或点击某条新闻的不同IP地址的人数。
在同一天内,uv只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数。独立IP访问者提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。
E. 如何用javascript和txt文件写一个网页访问量统计代码
如果用javascript的话,并且用数据库来存储统计变量的话,用ajax方式。
如果用session存储统计变量的话,可以通过用服务器端编程语言把session值取出后付给javascript变量来获得session值。
<script language="javascript" type="text/javascript">
var sessionvalue;
sessionvalue= "<%=(Session["NAME"]+1).ToString() %>";
function getsession()
{ alert(sessionvalue); }
</script>
其中<%=(Session["NAME"]+1).ToString() %>这个部分是服务器段脚本取出session的过程,Session["NAME"]存储的就是本次操作之前的浏览量,这样能够达到访问页面即加一次统计量的目的。
函数getsession()的作用是将目前的浏览量输出,你可以选择适当的位置调用getsession()这个函数
两种方法都需要与服务器端进行交互,而你想做的把这个值存储在txt中的做法不是很通用。
F. 有统计网站访问量的代码吗
假定数据存在 abc.mdb中
abc.mdb中字段如下:
序号(自动)
日期(访客进入时间)
电脑(IP地址)
来自(如果访客从www.0086it.com/?f=hello 进入本站,那会显示“hello”)
地址(通过对IP地址分析后知道的地址(如:中国网通或北京大学))
在网站首页中插入以下代码:
《%
if session("0086it")<>1 then
'上面一行防止刷新给统计造成不准。
dsntemp=server.mappath("abc.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&dsntemp
set rs=server.createobject("adodb.recordset")
rs.open "db",conn,1,3
rs.addnew
rs("日期")=now()
rs("电脑")=request.servervariables("remote_addr")
rs("来自")=request.querystring("f")&"◆"&request.serverVariables("Http_REFERER")
rs("地址")=session("laizi")
'session("laizi")的值的取得不作具体介绍,是由另一程序将访者ip地址与另外一个数据库对比中得出来“详细汉字地名,相当于IP地址查询软件中的功能)
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
session("0086it")=1
end if
%》
这样,每次访客访问我站,就可以记录他的信息。
当然,我还需要有一个程序来读后台。
程序如下:
《%
'**********************************
'
' 访 客 统 计 系 统'
'
' 程序设计 : 姜川
' [email protected]
' COPY请保留以上信息
'
'*********************************
'
response.expires=0
Response.Buffer=True
dim id
id=request.querystring("id")
if id="" then
id=50
end if
%》
《html》
《style type="text/css"》
《link rel="stylesheet" href="../css/one.css" type="text/css"》
《!--
.jiangc { font-size: 9pt; line-height: 12pt}
a { color: #FF0000; text-decoration: none}
a:hover { text-decoration: underline}
--》
《/style》
《body bgcolor="#FFFFFF"》
《%
dsntemp=server.mappath("abc.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;password=hello;dbq="&dsntemp
if request.querystring("cha")《》"" then
sql ="select * from db where 来自 like '%"&request.form("cha")&"%' order by 日期 DESC"
else
sql ="select * from db order by 序号 DESC"
end if
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
%》
《p align="center"》《br》
《font face="黑体"》访 问 统 计 系 统《/font》《/p》
《table width="700" border="0" cellspacing="1" cellpadding="0" align="center" class="jiangc" bgcolor="#000000"》
《form name="form1" method="post" action="?cha=1"》 《tr》
《td height="24" bgcolor="#ECF9FF" align="center"》 [ 共 《font color=red》《%=rs.recordcount%》《/font》
条记录 ] 列出最近 《a href="?id=100"》100《/a》 《a href="?id=300"》300《/a》 《a href="?id=500"》500《/a》
《a href="?id=1000"》1000《/a》 《a href="?id=3000"》3000《/a》 《a href="?id=5000"》5000《/a》
《a href="?ID=《%=rs.recordcount%》&ID2=all"》所有《/a》 记录
《input type="text" name="cha" class="jiangc" size="12"》
《input type="submit" name="Submit" value="查" class="jiangc"》
《/td》
《/tr》 《/form》
《/table》
《table width="100%" border="0" cellspacing="0"》
《tr》
《td height=2》《/td》
《/tr》
《/table》
《table border="0" cellspacing="1" cellpadding="2" bordercolorlight="#CCCCCC" bordercolordark="#FFFFFF" class="jiangc" align="center" bgcolor="#999999"》
《tr bgcolor="#CCCCCC"》
《td》 序号《/td》
《td》记录中总编号《/td》
《td》访问者进入日期《br》
0000000000000000000《/td》
《td》 访问者电脑IP地址《/td》
《td》 地区《/td》
《td》 来自《/td》
《/tr》
《%
while not rs.eof and i《 cint(id)
i=i+1
%》
《tr bgcolor="#FFFFFF"》
《td align="center"》《font color=cccccc》《%=i%》《/font》《/td》
《td align="center"》 《%=rs("序号")%》 《/td》
《td》
《%
if rs("日期") 》 date() then
response.write "《font color=red》"&rs("日期")&"《/font》"
else
response.write rs("日期")
end if%》
《/td》
《td》
《%if rs("电脑")="221.215.99.61" then response.write "*" else response.write rs("电脑") end if%》
《/td》
《td》
《%=rs("地址")%》
《/td》
《td》
《%if instr(rs("来自"),"◆")《》0 then
response.write "《a href='"&right(rs("来自"),len(rs("来自"))-instr(rs("来自"),"◆"))&"' target='_blank'》"&rs("来自")&"《/a》"
end if%》
《/td》
《/tr》
《%
rs.movenext
wend
%》
《/table》
《br》
《table width="700" border="0" cellspacing="1" cellpadding="10" align="center" class="jiangc" bgcolor="#CCCCCC" bordercolor="#0000CC"》
《tr》
《td bgcolor="#EFEFEF"》备 注:《%if request.querystring("id2")=all then%》只列出最近的 《font color=red》《%=id%》《/font》 条记录《br》
《%else%》
系统列出了所有访问记录《br》
《%end if%》
设 计:[email protected](MSN)《br》
设计日期:2003年03月《/td》
《/tr》
《/table》
《/html》
G. html的统计访客人数的代码
静态页面的程序本身是不能调用数据库来实现当前页面访问量统计的,包括实现被访问次数、访问次数增加等功能。但是静态页面如果没有这么一个功能,却又总觉得比动态页面少了些什么。
通过js后台ajax请求修改访问数。
基于jquery:
<script>
$(function() {
$.get('update.php?id=1',{r:Math.random()});
//当然$.post()、$.ajax()等都可以咯。
//然后要记得加一个随机数,因为如果不加的话,有的浏览器会认为是同一个请求,然后不请求。
});
</script>
这样写:
<script src="update.php?id=1"></script>
经测试,这样也是可行的。
至于文章的id,在静态化的过程中,可以直接赋值到页面要请求的网址参数后。
update.php的话,就是连接数据库,通过传过来的文章id,更新访问量的处理咯。
如果要实现在静态页面马上显示更新的数目的话:
方法一需要在ajax请求后调用回调函数,然后update.php返回新的访问量,然后在回调函数中定位到显示访问量位置,替换成新的访问量。
代码实现:
$(function() {
$.get('update.php?id=1',{r:Math.random()},function(num) {
$('#hit').html(num);
});
});
方法二则需要在update.php中,添加一句话:
document.write(<?php echo $num; ?>);
H. 利用asp中的application对象编写一段代码,实现页面的访问量的统计
<script language="VBScript" type="text/VBScript" runat="server">
sub Application_OnStart
Application.Lock
Application("APP_OnLine")=0
Application.Unlock
end sub
sub Session_OnStart
Application.Lock
Application("APP_OnLine")=Application("APP_OnLine")+1
Application.Unlock
end sub
sub Session_OnEnd
Application.Lock
Application("APP_OnLine")=Application("APP_OnLine")-1
Application.Unlock
end sub
</script>
上面的命名为 Global.asa 放在站点根目录可以实现统计在线人数,如果你是要实现页面的访问量的统计那么用下面的代码放在需要统计的ASP页面里
<%
Application.Lock
if Application("APP_OnLine")="" then Application("APP_OnLine")=0
Application("APP_OnLine")=Application("APP_OnLine")+1
Application.Unlock
Response.Write("已经有" & Application("APP_OnLine") & "人次访问过此页面")
%>
这是计算总访问量的这个数只会增加不会减少,当服务器重启时这个数会被清空