- 浏览: 205350 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (231)
- C++学习 (41)
- vc学习 (25)
- vc异常 (4)
- Flex (2)
- Ext (0)
- java学习笔记 (15)
- mysql学习笔记 (1)
- ibatis学习笔记 (7)
- struts1学习笔记 (1)
- hibernate学习笔记 (3)
- javascript学习笔记 (8)
- eclipse快捷键 (2)
- 英语学习 (1)
- cmd (1)
- eclipse 配置 (2)
- 其他 (4)
- JAVASE (34)
- firefox (1)
- linux (8)
- Apache (6)
- cms (22)
- jsuc (10)
- html (3)
- css (1)
- 作图 (2)
- vs2012 (2)
- 编码转换 (12)
- work_unicode (1)
- work_webbrowser (1)
- work_trade_quotes_login (1)
- c#学习 (38)
- wpf学习 (31)
- wpf快速学习 (1)
- VB学习 (1)
- NSIS (4)
- log4cpp (3)
- 学习web (1)
- 经验 (1)
- c_汇编 (1)
最新评论
阅读:<script type="text/javascript" src="NavServlet?method=click&articleId=${param.articleId }"></script>
//更新文章点击量记录,在一个小时之内同一个IP的连续点击,将不重复计算点击量! public void click(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String articleId = request.getParameter("articleId"); //首先,从ServletContext中取出一个Map Map visitors = (Map)getServletContext().getAttribute("visitors"); if(visitors == null){ visitors = new ConcurrentHashMap(); getServletContext().setAttribute("visitors", visitors); } //得到客户端IP地址 String clickIp = request.getRemoteAddr(); String key = articleId+"_"+clickIp; //以文章ID和用户IP为键 Date lastVisitTime = (Date)visitors.get(key); Article a = articleDao.findArticleById(Integer.parseInt(articleId)); int clickNumber = a.getClickNumber(); //旧的点击量 /** * 没有访问记录、或最后一次访问在一个小时之前,需再次记录访问量 * 否则,无需再次记录访问量 */ if(lastVisitTime == null || !withinOneHour(lastVisitTime)){ //更新点击量 clickNumber = articleDao.updateClickNumber(Integer.parseInt(articleId)); visitors.put(key, new Date()); } response.setContentType("text/javascript"); response.getWriter().println("document.write('"+clickNumber+"')"); } /** * 将lastVisitTime和现在的时间相比,判断其是否在一个小时之内 * @param lastVisitTime * @return */ private boolean withinOneHour(Date lastVisitTime){ //现在的时间 Calendar now = Calendar.getInstance(); //上次访问时间 Calendar last = Calendar.getInstance(); last.setTime(lastVisitTime); last.add(Calendar.HOUR_OF_DAY, 1); if(last.before(now)){ return false; } return true; } public int updateClickNumber(int articleId) { SqlSession session = MyBatisUtil.getSession(); int clickNumber = 0; try { clickNumber = (Integer)session.selectOne(Article.class.getName()+".selectClickNumber", articleId); clickNumber = clickNumber + 1; Article a = new Article(); a.setId(articleId); a.setClickNumber(clickNumber); session.update(Article.class.getName()+".updateClickNumber", a); session.commit(); } catch (Exception e) { e.printStackTrace(); session.rollback(); } finally{ session.close(); } return clickNumber; }
<!-- 更新文章的点击量 --> <select id="selectClickNumber" parameterType="int" resultType="int"> select clickNumber from t_article where id = #{id} </select> <update id="updateClickNumber" parameterType="Article"> update t_article set clickNumber = #{clickNumber} where id = #{id} </update>
发表评论
-
显示上传的文件,图片则显示,附件则提供下载
2012-12-13 17:22 753package cn.com.leadfar.cms.back ... -
文件上传进行封装
2012-12-12 17:37 904BaseServlet.java if(isMultipar ... -
网页显示附件链接提供下载,显示图片提供下载
2012-12-12 17:34 1028网页显示附件链接提供下载,显示图片提供下载 packag ... -
浏览选择文件
2012-12-12 17:22 831浏览选择文件 <input type=" ... -
后台编辑文章,插入图片,插入文章链接提供下载
2012-12-12 17:20 757function insertFile(value){ v ... -
文件上传
2012-12-07 14:56 772文件上传 < ... -
ckeditor使用
2012-12-07 13:50 689<script type="text/java ... -
MyBatis生成GeneratedKeys
2012-11-27 15:55 1025生成GeneratedKeys<insert id=&q ... -
contentType,pageEncoding
2012-11-22 15:36 680contentType,pageEncoding -
BeanUtils
2012-11-22 15:36 610需要用到两个jar包:commons-beanutils.ja ... -
ThreadLocal
2012-11-22 15:34 532ThreadLocal 则保存其他线程各自的变量,不会相互影响 ... -
服务器端包含
2012-11-22 15:33 694<jsp:include page="Na ... -
编写jstl函数
2012-11-22 15:29 7211) 函数 package cn.com.leadfar. ... -
提交前验证
2012-11-21 17:18 718<form action="MemberSer ... -
history.go(-1)返回上一页
2012-11-21 17:16 916<A href="javascript:his ... -
referer引用页面
2012-11-21 17:15 755referer引用页面 在网站上有多处可供登录的网页,要求在 ... -
将login窗口平铺到整个窗口
2012-11-21 17:13 705将login窗口平铺到整个窗口 if(window.pare ... -
null强制转换
2012-11-20 16:38 682null强制转换 PagerVO pv = articleD ... -
load-on-startup
2012-11-20 16:36 727load-on-startup <servlet ... -
html,for鼠标聚焦
2012-11-20 16:32 707html,for鼠标聚焦 <label for= ...
相关推荐
《点击量统计系统详解》 在信息技术领域,点击量统计系统是数据分析的重要组成部分,它能够帮助企业、网站管理员以及内容创作者了解用户行为,优化网站性能,提高用户体验,进而提升业务表现。本文将深入探讨点击量...
网站点击量统计网站点击量统计网站点击量统计网站点击量统计网站点击量统计网站点击量统计网站点击量统计网站点击量统计网站点击量统计网站点击量统计网站点击量统计
本文介绍了一个简单的Ajax实现方式,用于统计网站上的产品点击量和新闻点击量。通过这种方式,不仅可以提高用户体验,还可以实时地收集用户行为数据,为网站运营提供数据支持。开发者可以根据实际需求调整代码逻辑,...
基于spark streaming的实时点击量统计文档+源码+优秀项目+全部资料.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下...
在构建点击统计系统时,C#被用来编写服务器端的业务逻辑,例如数据验证、计算点击率、生成报表等。此外,C#还支持LINQ(Language Integrated Query),使得数据查询更加简洁高效。 点击量统计是系统的核心部分。这...
"织梦文章统计点击量"是该系统的一个功能,旨在帮助网站管理员追踪和分析用户对文章的阅读兴趣,从而优化内容策略。这个功能通过JavaScript实现,允许在文章页面上实时记录和显示点击次数。 要在织梦网站上实现文章...
在给定的标题和描述中,我们关注的是一个利用ASP编写的单个链接点击量统计插件。这个插件的设计目标是通用性,能够与各种程序集成,以追踪和记录用户对特定链接的点击行为。 首先,我们来看`tongji.asp`。这可能是...
资源名称:.NET计数统计系统源码合集资源目录:【】Afritxia在线用户统计、在线编辑器、验证码图片【】Asp.net简单防刷新图片计数器源码VS2005 SQL2000【】CCSTAT多用户流量统计系统v1.3【】CCSTAT多用户流量统计...
总之,Struts2框架提供了灵活的机制来实现网站访问总人数统计,通过拦截器、Action和数据持久化等手段,我们可以构建一个高效、可靠的点击率统计系统。通过深入理解Struts2的工作原理和提供的工具,开发者可以更好地...
在Java编程语言中,实现对年、月、日、周访问量的统计是一项常见的任务,尤其是在网站数据分析或者服务器日志处理中。这个任务涉及到日期时间处理、数据存储以及可能的数据聚合操作。以下是一些关键的知识点,可以...
JSP 点击量统计 有时候我们需要知道某个页面被访问的次数,这时我们就需要在页面上添加页面统计器,页面访问的统计一般在用户第一次载入时累加该页面的访问数上。 要实现一个计数器,您可以利用应用程序隐式对象和...
本篇文章将详细讲解如何通过使用`web.xml`配置文件来实现Filter过滤器,以实现对网站访问量的统计。这种方法是Java Web应用中的经典实践,适用于传统的基于Servlet的项目。 首先,我们需要了解Filter的基本概念。...
- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,...
在互联网世界中,统计网页点击次数是衡量网站流量和用户活跃度的重要手段。本文将详细介绍三种不同的方法来实现这一功能,这些方法涵盖了从基础到进阶的层面,适合不同技术水平的开发者。 首先,我们来看最基础的...
缩短 URL,管理您的链接并查看点击率统计信息。欢迎贡献和错误报告。https://kutt.it 从 v1 迁移 Kutt 的新版本在这里。在第 2 版中,我们使用了 TypeScript,我们从 Neo4j 迁移到了 PostgreSQL 数据库以提高性能,...
微信公众号数据统计方法
在Django项目中,使用Highcharts进行最近七天文章点击量统计是一种常见的数据可视化方式。Highcharts是一个强大的JavaScript图表库,能够帮助开发者创建各种类型的图表,如折线图、柱状图、饼图等,用于展示和分析...
4. **用户点击率统计**:点击率是衡量用户参与度的重要指标。通过跟踪用户的点击事件,可以计算出特定元素或链接的点击次数,并除以总访问量得到点击率。在C#中,可以使用JavaScript或AJAX来捕获用户点击,并通过Web...
这个平台包含了丰富的功能,如选择游戏、玩游戏并晋级、游戏币支付、游戏点击率统计以及用户信息管理。我们将从以下几个方面详细介绍这些功能的实现: 1. **游戏选择模块**: 在青鸟迷你游戏平台上,用户可以浏览...
只需选择要分析的代码文件或目录,然后点击开始统计,软件就会自动完成剩下的工作。 4. **附加功能**:除了基本的统计,该工具可能还提供了其他实用功能,例如生成报告、比较不同版本的代码量变化、分析代码质量等...