有个比较严重一个线程安全的集合数据的存取放在集合中
我用的springmvc,大体讲讲本身的思路吧:css
要对页面访问量统计也就是pv,主要就是拦截,写一个拦截器类实现HandlerInterceptor接口js实现网站访问量统计,拦截全部请求,可是须要注意的是js实现网站访问量统计,配置拦截器的时候spring
须要排除不拦截的请求,由于对于静态资源css,js,以及图片,还有后台管理系统咱们是不须要拦截的,咱们只拦截用户访问的页面,也就是你展现数据库
给用户的那些页面,配置拦截大概这样配置安全
而后拦截请求须要作的是什么?从数据库取出访问量?而后加1?这显然是不合理的,由于请求太多了,对数据库的频繁交互应该避免,服务器
我想的是写一个监听器,servletContextListener,监听servletContext的初始(只在服务器启动的时候被建立),服务器启动时候去数据库中取出访问量,并发
放到servletContext(全局的域,在其余请求中均可以取出来),而后每次一个请求都把放在servletContext中的访问量加1(这个是在拦截器中作的事情),在初始化servletContext时还须要作一个事情,开启线程定时把servletContext中的访问量存储到数据库中,如何定时执行?我想的是写一个循环,执行一次循环就让线程休眠mvc
2个小时(自定义:时间越短越不容易形成访问量数据丢失),后来偶然看到了jdk文档中一个类,Timer,一个定时器,详细参考文档,它的访问能够实现定时执行任务,原理估计也差很少吧,这大概就是实现过程,具体代码就不贴了。有个比较严重的问题没有考虑到:因为ServletContext在内存中app
只有一个对象,并发访问可能会形成线程安全问题,初步想在ServletContext中当一个线程安全的集合,数据的存取放在集合中url
发表评论
热门文章
Spimes主题专为博客、自媒体、资讯类的网站设计....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
仿制主题,Typecho博客主题,昼夜双版设计,可....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
尘集杂货铺和官网1t5-cn
11月11日
[已回复]
希望主题和播放器能支持SQLite数据库,AI能多个讯飞星火