网站统计代码怎么添加?

网站统计代码怎么添加?

2019-10-09

  SEO优化是不断探索细节的过程,也是不断实践的历程。对于一个成熟的企业网站来说,SEO代码优化,是每个SEO人员都必须回顾,而在实践中,却常常被忽略。相信很多站长都很关心自己的网站动态,因此,在建立自己的网站,为方便后期的网站操作、监控、流量统计的游客等等,通常站长们都会安装流量统计分析代码,通过第三方提供的数据统计功能网站数据分析平台。那么,如何进行添加呢,详细介绍如下。


  1、项目需求:一个IP一天内访问算是一次访问,统计该网站的用户访问量。


  2、实现思想:服务器启动的时候把数据库中的访问量进行缓存,用户访问的时候进行访问量的刷新,把访问信息存到集合中进行缓存,达到一定数量的时候要存入数据库中,服务器关闭的时候把未存入数据库中的访问量存入数据库中


  3、代码实现:


  //用来统计不同的URL对应的访问情况


  private static List> accessNumMapList = new ArrayList>();


  //访问总量


  public static int accessSum = 0;


  //用来缓存当天的访问ip,vector是同步的,线程安全的


  public static Vector ipVector = new Vector();


  //用来缓存访问量的信息


  private static List asList = new ArrayList();


  //定时任务,每天凌晨的时候把当天的访问量归0


  public void accessTodayJob() {


  ipVector = new Vector();


  }


  //服务器启动的时候调用该方法,用到了注解开发的方式,进行缓存url分类对应的条数,总条数,当天的条数


  @PostConstruct


  public void getAccessNum() {


  accessNumMapList = dao.getAccessUrlNum();


  accessSum = dao.getAccessSum();


  ipVector = dao.getIpListToday();


  }


  //处理请求,并刷新数据


  public synchronized void accessMethod(HttpServletRequest request) {


  boolean flag = false;


  for (String str : ipVector) {


  if(request.getRemoteAddr().equals(str)) {


  flag = true;


  break;


  }


  }


  if(!flag) {


  ipVector.addElement(request.getRemoteAddr());


  accessSum ++;


  boolean containUrl = false;


  //表示的是url:数量


  for (Map accessNumMap : accessNumMapList) {


  //如果存在该url,进行count++


  if(accessNumMap.containsKey(request.getRequestURI())) {


  int count = accessNumMap.get(request.getRequestURI());


  count = count + 1;


  accessNumMap.put(request.getRequestURI(), count);


  containUrl = true;


  //跳出循环


  break;


  }


  }


  if(!containUrl) {


  Map accessNumMap = new HashMap();


  accessNumMap.put(request.getRequestURI(), 1);


  accessNumMapList.add(accessNumMap);


  }


  AccessStatistics as = new AccessStatistics();


  as.setRemoteAddr(request.getRemoteAddr());


  as.setRequestUrl(request.getRequestURI());


  as.setMethod(request.getMethod());


  as.setRequestTime(new Date());


  asList.add(as);


  //这里在配置文件配置缓存的大小,重启服务器就行,不用进行编译


  if(asList.size() >= Integer.valueOf(Global.getConfig("accessCacheSize"))) {


  new SaveThread().start();


  }


  }


  }


  //开一个线程进行处理保存操作,提高性能


  private class SaveThread extends Thread{


  private boolean flag = false;//这里通过用标识符的方式来保证线程的安全,并且提高性能。


  // 如果开启了这个线程下次进方法的时候,就直接走run方法


  public void run() {


  if(flag) {


  return;


  }


  flag = true;


  for (AccessStatistics accessStatistics : asList) {


  save(accessStatistics);


  }


  //清空内存


  asList = new ArrayList();


  flag = false;


  }


  }


  //关闭服务器,把未存入数据库中的数据存入数据库中


  @PreDestroy


  public void serverStop() {


  if(asList.size() > 0) {


  new SaveThread().start();


  }


  }


  查看网站统计是每个站长必不可少的工作。通过添加代码在网站的前端显示,让站长们可以很清楚的了解自己网站的各个数据来源,对于后期的优化有着极大的帮助。以上是网站统计代码添加的相关内容介绍,觉得对自己有帮助的赶紧收藏哦。