关于网站页面访问量统计的问题

网站用的是分层结构【dao,service,restful展示,然后js通过ajax与restful交互,在前端用jQuery来展示出结果】,是用java写的。现在想实现一个功能,就是页面访问量。第一,能显示每天访问次数和总访问次数。第二,页面刷新后次数不会自动加1.第三,tomcat重启或者浏览器缓存清空时访问次数不会被初始化。

我现在想的是,建立一个数据库,然后用监听,当页面被打开之后就被监听到,然后在数据库里写入一次。再通过查询来显示出访问次数。
现在的问题在于,首先,数据库表使用频率这么高,一边写入,一边读取,出现锁表的可能性极大,这个问题该如何解决?
第二,如何保证每个页面都能统计到,因为页面很多,每个页面访问量肯定不同,如何做到分别精确统计。
第三,监听之前没接触过,这个该如何来写。是写在js里还是restful里。

希望,您能在帮忙介绍上述内容的时候写一个小小的demo,或者您有什么解决方案也可以分享给我。希望详细一些,因为说的太空不理解。最好能一步一步的讲一下,万分感谢。混分的就别来了,大不了不选择最佳答案也不会给你。
再次感谢。
补充一下,关于页面刷新后不会自动+1,指的是页面短期内一直刷新在同一个浏览器刷新不会被记录,在不同电脑一定间隔时间后点击该页面可以被记录
而且这是内部网站,第三方统计是不可行的。
所以麻烦复制粘贴的过过脑子再说

技术问题,还是去技术论坛吧


    关于页面刷新后不会自动+1,指的是页面短期内一直刷新在同一个浏览器刷新不会被记录,在不同电脑一定间隔时间后点击该页面可以被记录


关于这个需求,你又不是做投票软件,记录用户ip地址,用户刷新一次或点击就算一次点击,不用做的这么精确吧!


一般统计网页程序,都是内嵌js脚本,你建立一个用于统计的js公用文件,然后需要统计的页面都引用他。


请参考Piwik


<!-- Load Piwik.js from demo2 for continuous testing -->    
<script type="text/javascript">    
   document.write(unescape("%3Cscript src='" + (("https:" == document.location.protocol) ? "https://demo2.piwik.org/" : "http://demo2.piwik.org/") + "piwik.js' type='text/javascript'%3E%3C/script%3E"));    
</script><script type="text/javascript">    
try {    
var piwikTracker = Piwik.getTracker((("https:" == document.location.protocol) ? "https://demo.piwik.org/" : "http://demo.piwik.org/") + "piwik.php", 1);    
piwikTracker.setCookieDomain('*.piwik.org');    
if(document.domain != 'piwik.org') {    
 piwikTracker.setDocumentTitle(document.domain + "/" + document.title);    
}    
// Set the domain the visitor landed on, in the Custom Variable    
if(!piwikTracker.getCustomVariable(1)) {     
 piwikTracker.setCustomVariable(1, "Domain landed", document.domain );    
}    
piwikTracker.trackPageView();    
piwikTracker.enableLinkTracking();      
} catch( err ) {}    
</script><noscript><p><img src="http://demo.piwik.org/piwik.php?idsite=1" style="border:0" alt="" /></p></noscript>    
<!-- End Piwik Tag -->


每次页面加载完毕,js就往你后台发一个请求,这个请求包含了,比如说客户端访问的url,然后d电脑分辨率啊什么的,到服务器端,你能得到ip地址,解析一下http请求头,也能得到一些信息。


然后记录下来。

追问

现在可以做到在网站的某个模块统计访问量,比如公司A部门专门有一个模块,点击进去都是A部门的新闻信息,就是说统计点击A部门的次数是可以做到的。
但是A部门具体某一篇文章没办法统计,我现在不太明白的就是有人从后台重新上传一篇文章后,怎么显示这篇文章的统计量

追答

。。。你就统计一个点击量啊
你就在调用新闻详情的方法里面点击量+1,就行了啊

例如
// 1.获取新闻详情
getNewsInfo(int newsId)
// 2.新增新闻点击量
addClickById(int newsId);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-20
我们使用网站日志分析器无非是想知道:
1.百度蜘蛛一天来我们的网站的次数;(因为我们都希望越多越好)
2.百度蜘蛛都是什么时间来的;(知道这个就可以在百度蜘蛛来的时候更新文章,这样可以增加收录数量,减少收录时间)
3.网站哪些页面访问量大;
4.有多少访客访问了您的网站;
5.访客都从哪里来;
6.访客在您的网站停留了多长时间等等。
2
这些功能逆火网站日志分析器无疑都可以帮我们办到。它以报表,统计图的形式向我们展示日志的分析结果,并且分析出来的数据报表条理清晰,易于查看,让我们以最少的时间获取最多最精确地网站信息。
3
网站的总体访问情况,包括所有的访问量,使用带宽情况等;