java怎么统计网站访问量

Python021

java怎么统计网站访问量,第1张

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

步骤一、建一个表,表名任意,这里取名为: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() %>