導航:首頁 > 編程語言 > java統計網站的訪問量

java統計網站的訪問量

發布時間:2022-11-22 07:35:33

java如何統計網站訪問量

步驟一、建一個表,表名任意,這里取名為:visitorcounter,表的結構如下所示:
+-------+------------------+------+-----+------------+----------------+
| 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() %>

❷ java統計瀏覽器訪問量

利用session創建計數用於記錄當前在線人數!離開時間只能依據session被殺死時的模糊時間,如果要獲得更准確的時間可以把session的存活期弄斷點,將用戶訪問記錄存儲到cookie里,我們只能依據用戶多久沒操作 session被幹掉來判斷用戶可能離開了,因為期間用戶不可能都對伺服器發出退出請求,盡管我們都設有退出的操作模塊!如果只是用於訪問量的話就不需要考慮session被殺死吧!只管記錄有多少遊客登入進來就行了!

❸ 網站統計不同區域的訪問量java 和mysql語句實現 。 謝謝!

大約要三張表
A表(地區名):
地區代碼 地區名 總訪問次數
1 廣東省 0
2 江蘇省 0
...

B表(日訪問表)
地區代碼 訪問時間 日訪問次數
1 20131224 0
8 20131224 0

C表(ip來源表)
序號 來訪IP 地區代碼 時間

處理流程基本上就是
1、先取用戶ip,從ip庫中查詢出用戶地區(這種代碼隨處可以找到,比如http://zhaoshijie.iteye.com/blog/1171132)一般就是純真ip庫,有了地區後,從A表中查出地區代碼
2、向C表中添加記錄
3、然後查一下B表有沒有當日該地區記錄,如果沒有就在B表中新增一條,如果有就將B表對應的次數加1,然後A表中對應地區代碼次數統計也加1
然後比如你要查2013年12月24日的各地區統計就可以是
select * from a,b where a.地區代碼=b.地區代碼 and b.訪問時間=20131224

❹ 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>

❺ 現在做一個java web的項目,要實現一個功能,就是實現訪問量統計,每一次瀏覽網頁訪問量+1,最重要的是

給你個思路:比如要統計某一篇文章的訪問次數。
你應該能獲取這篇文章所在的資料庫的記錄;然後把記錄的ID保存在當前的session中。判斷當前session中是否有這個ID了,如果沒有的話,把這條記錄的訪問記錄加1(前提是這條記錄有欄位去記錄對應的訪問次數),如果有的話,啥都不操作。

保存在session中的話,如果在session有效期內,用戶無論怎麼刷新頁面訪問次數不會重復疊加,這樣做有一個不好的地方就是如果session失效了,那麼即使是同一台電腦再次訪問這篇文章的話,記錄還是會加1的。

因此有人提出保存在cookie中,只要用戶不清理cookie,並且cookie設置永久不失效那麼即使是同一台電腦在不同時間訪問這個文章,那麼之前已經統計過的話,這個是不會重復統計的。

兩個方法都有優缺點,一般來說訪問次數都是一個大概取值,所以上述兩者其實都有人用的。

❻ java web 網站訪問量統計 設計求解答

如果後續需要用到這部分數據,肯定是要做持久化的。 統計處理可以精細化到具體頁面(這個要看錶結構如何設計了) 頁面處理建議在action中直接入庫及訪問數據展示~ 或js頁面初始化時ajax入庫

❼ java 如何根據ip 地址統計訪客的訪問的次數

在web.xml中加入獲取訪客的filter,然後獲取IP地址,查詢資料庫此IP是否有記錄,如果無記錄,則進行訪問計數+1,並更新資料庫相應數據,這樣就可以達到計算次數的操作了

❽ Java中怎樣記錄瀏覽次數

寫一個過濾器,將所有的相關的訪問攔截下來,在過濾器中,獲取需要統計的訪問地址,每訪問一次,就次數加一,然後數據保存。

❾ 網站訪問量統計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>
希望你能幫到你

❿ java網頁中怎樣統計在線人數

1.用session超時,session為null就表示下線了

2.也可以採用資料庫中設置 臨時表 來處理
一個用戶登陸時向表中插進一條記錄,用戶離開時候刪除該記錄
如想統計在線人數,簡單地執行
select count(*) from table... 即可

3.application對象中可以記住現在的人數,application的生命周期和伺服器的生命周期一樣長。

4.還有一種方法要用到一個文件global.jsa ,方法是(在JSP中)是sessionDestroy(),其中它是以session對象為參數的。還有要把global.jsa文件必須房子和JSP程序相同的文件目錄內才行。

5.網頁自動刷新的代碼是:
在文件頭部加上
<meta http-equiv="refresh" content="15">
刷新間隔時間是15秒

6.在session中加入監聽類,類的示例代碼如下:

onLineUser.java
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.*;

public class onLineUser implements HttpSessionBindingListener {
public onLineUser(){
}

private Vector users=new Vector();
public int getCount(){
users.trimToSize();
return users.capacity();
}
public boolean existUser(String userName){
users.trimToSize();
boolean existUser=false;
for (int i=0;i<users.capacity();i++ )
{
if (userName.equals((String)users.get(i)))
{
existUser=true;
break;
}
}
return existUser;
}

public boolean deleteUser(String userName) {
users.trimToSize();
if(existUser(userName)){
int currUserIndex=-1;
for(int i=0;i<users.capacity();i++){
if(userName.equals((String)users.get(i))){
currUserIndex=i;
break;
}
}
if (currUserIndex!=-1){
users.remove(currUserIndex);
users.trimToSize();
return true;
}
}
return false;
}

public Vector getOnLineUser()
{
return users;
}
public void valueBound(HttpSessionBindingEvent e) {
users.trimToSize();
if(!existUser(e.getName())){
users.add(e.getName());
System.out.print(e.getName()+"\t 登入到系統\t"+(new Date()));
System.out.println(" 在線用戶數為:"+getCount());
}else
System.out.println(e.getName()+"已經存在");
}

public void valueUnbound(HttpSessionBindingEvent e) {
users.trimToSize();
String userName=e.getName();
deleteUser(userName);
System.out.print(userName+"\t 退出系統\t"+(new Date()));
System.out.println(" 在線用戶數為:"+getCount());
}
}

jsp:
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*" %>
<jsp:useBean id="onlineuser" class="temp.jb.onLineUser" scope="application"/>
<html>
<head>
</head>
<body onUnload="postMessage()">
<center>
<p><h1>登陸成功,歡迎訪問</h1></p>
</center>
<% session = request.getSession(false); %>
<%
String username=request.getParameter("username");
if (onlineuser.existUser(username)){
out.println("用戶<font color=red>"+username+"</font>已經登陸!");
}else{
session.setMaxInactiveInterval(50); //Sesion有效時長,以秒為單位
session.setAttribute(username,onlineuser);
out.println("歡迎新用戶:<font color=red>"+username+"</font>登陸到系統!");
}
out.println("<br>當前在線用戶人數:<font color=red>"+onlineuser.getCount()+"</font><br>");
String ip = request.getRemoteAddr();
out.println("<br>IP:<font color=red>"+ip+"</font><br>");
Vector vt=onlineuser.getOnLineUser();
Enumeration e = vt.elements();
out.println("在線用戶列表");
out.println("<table border=1>");
out.println("<tr><td>用戶名</td></tr>");
while(e.hasMoreElements()){
out.println("<tr><td>");
out.println((String)e.nextElement()+"<br>");
out.println("</td></tr>");
}
out.println("</table>");

%>
<center>
<p> </p>
[<a href="javascript:window.close()">關閉窗口</a>]
<%
out.println("<p><a href='logout.jsp?username="+username+"'>退出系統</a></p>");
%>
</center>
<Script>
function postMessage(){
<%onlineuser.deleteUser(request.getParameter("username"));%>
}
</Script>
</body>
</html>

閱讀全文

與java統計網站的訪問量相關的資料

熱點內容
下班之後的程序員 瀏覽:69
檢測支持ssl加密演算法 瀏覽:340
衢州發布新聞什麼APP 瀏覽:80
中國移動長沙dns伺服器地址 瀏覽:249
wifi密碼加密了怎麼破解嗎 瀏覽:596
linux命令cpu使用率 瀏覽:67
linux實用命令 瀏覽:238
傳奇引擎修改在線時間命令 瀏覽:109
php取域名中間 瀏覽:897
cad命令欄太小 瀏覽:830
php開發環境搭建eclipse 瀏覽:480
qt文件夾名稱大全 瀏覽:212
金山雲伺服器架構 瀏覽:230
安卓系統筆記本怎麼切換系統 瀏覽:618
u盤加密快2個小時還沒有搞完 瀏覽:93
小米有品商家版app叫什麼 瀏覽:94
行命令調用 瀏覽:436
菜鳥裹裹員用什麼app 瀏覽:273
窮查理寶典pdf下載 瀏覽:514
csgo您已被禁用此伺服器怎麼辦 瀏覽:398