步驟一、建一個表,表名任意,這里取名為: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") & "人次訪問過此頁面")
%>
這是計算總訪問量的這個數只會增加不會減少,當伺服器重啟時這個數會被清空