当前位置:首页 » 密码管理 » java网站访问量统计

java网站访问量统计

发布时间: 2023-01-19 22:52:03

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

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怎么统计网站访问量

<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 和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 web 网站访问量统计 设计求解答

如果后续需要用到这部分数据,肯定是要做持久化的。 统计处理可以精细化到具体页面(这个要看表结构如何设计了) 页面处理建议在action中直接入库及访问数据展示~ 或js页面初始化时ajax入库

Ⅵ 一道java编程题求大神指点

importjava.util.concurrent.CopyOnWriteArrayList;
importjava.util.concurrent.TimeUnit;
importjava.util.concurrent.atomic.AtomicLong;

{

AtomicLongcount=newAtomicLong(0);
CopyOnWriteArrayList<Long>list=newCopyOnWriteArrayList<>();
//hr接口多线程访问
@Override
publicvoidhr(){
count.getAndAdd(1);
System.out.println(Thread.currentThread().getName()+"访问次数:"+count);
list.add(System.currentTimeMillis());
}

@Override
publicDateStatestate(){
DateStatedateState=newDateState();

intnum=0;
longnow=System.currentTimeMillis();

longs1=TimeUnit.SECONDS.toMillis(10);
longs2=TimeUnit.SECONDS.toMillis(60);
longm1=TimeUnit.MINUTES.toMillis(10);
longm2=TimeUnit.MINUTES.toMillis(60);

if(list.size()>0){
for(inti=list.size()-1;i>-1;i--){
longtime=now-list.get(i);
num++;
if(time<s1){
dateState.setLast10Second(num);
}
if(time<s2){
dateState.setLast60Second(num);
}
if(time<m1){
dateState.setLast10Minute(num);
}
if(time<m2){
dateState.setLast60Minute(num);
}else{
break;
}
}
}
System.out.println(dateState);
returndateState;
}

}
importjava.util.concurrent.ExecutorService;
importjava.util.concurrent.Executors;
importjava.util.concurrent.TimeUnit;

publicclassTestCount{
publicstaticvoidmain(String[]args){

AccessTaskaccessTask=newAccessTask();
ExecutorServicepool=Executors.newFixedThreadPool(20);

for(inti=0;i<100;i++){
try{
TimeUnit.SECONDS.sleep(2);
}catch(InterruptedExceptione){
e.printStackTrace();
}
pool.execute(newRunnable(){
@Override
publicvoidrun(){
accessTask.hr();
accessTask.state();

}
});
}
pool.shutdown();
}
}

Ⅶ Java 帖子的浏览量,总访问人数怎么统计

一般来说,如果是网页,完全没有必要自己去统计网站人数(自己统计可以放在application域中,定时同步到数据库),一般我们的解决方案是使用插件,各种各样的插件,比如cnzz的站长统计插件(总访问人数,ip,pv,up等),至于帖子的浏览量,就算同一个session只加一次比较好

Ⅷ 现在做一个java web的项目,要实现一个功能,就是实现访问量统计,每一次浏览网页访问量+1,最重要的是

给你个思路:比如要统计某一篇文章的访问次数。
你应该能获取这篇文章所在的数据库的记录;然后把记录的ID保存在当前的session中。判断当前session中是否有这个ID了,如果没有的话,把这条记录的访问记录加1(前提是这条记录有字段去记录对应的访问次数),如果有的话,啥都不操作。

保存在session中的话,如果在session有效期内,用户无论怎么刷新页面访问次数不会重复叠加,这样做有一个不好的地方就是如果session失效了,那么即使是同一台电脑再次访问这篇文章的话,记录还是会加1的。

因此有人提出保存在cookie中,只要用户不清理cookie,并且cookie设置永久不失效那么即使是同一台电脑在不同时间访问这个文章,那么之前已经统计过的话,这个是不会重复统计的。

两个方法都有优缺点,一般来说访问次数都是一个大概取值,所以上述两者其实都有人用的。

Ⅸ java怎么实统计在线人数,和访问量

简单的说个我的思路供你借鉴:
在线人数,我理解为当前应用的session数目,不过sevlert好像不提供获取全部session的方法,可以通过加一个sessionlistener来记录(创建就+1,销毁就-1)
访问量相对简单,你定义一个全局的计数器就好了,来一个(这个有很多种方法,比如:有一个新的session被创建)人你就+1

热点内容
国际服体验服如何换服务器 发布:2025-08-27 07:08:45 浏览:842
c语言socket编程 发布:2025-08-27 06:51:23 浏览:443
我的世界国际版最火的服务器 发布:2025-08-27 06:40:26 浏览:595
为什么登录小马镇显示密码错误 发布:2025-08-27 06:20:38 浏览:896
php订单号 发布:2025-08-27 06:20:37 浏览:617
我的世界服务器娘清理 发布:2025-08-27 06:19:08 浏览:799
kmp手机ftp 发布:2025-08-27 06:09:57 浏览:763
如何编写sql的lua脚本 发布:2025-08-27 05:50:30 浏览:920
ultraedit反编译 发布:2025-08-27 05:48:15 浏览:841
电源编程 发布:2025-08-27 05:42:18 浏览:628