首先我需要一个能访问网站人数的功能,那莫具体来讲就是需要一个能全局存储的,在 java web 中 为啥不用session 因为他代表的试一次会话是一种局部存储, 所以用 servletContext 存储更加合适因为他是全局的, 可以实现ServletContextListener 接口重写里面的2个方法

如果你没懂我说的他们之前区别可以看看

http://www.cnblogs.com/javadu/archive/2011/11/25/2263799.html

http://www.cnblogs.com/javadu/archive/2011/11/25/2263808.html

contextDestroyed(ServletContextEvent arg0)

contextInitialized(ServletContextEvent arg0)

在初始化中可以读取我存储在磁盘文件那个文件获取个数 因为如果不存储的话 服务器停止他也会没有了

在销毁的方法中我可以拿到存储在servletcontext中的个数并存储在文件中,这样就可以实现存储保存了

当然这边的方法是多种的你愿意存储在哪就存在哪,数据库 其他都可以

废话了那莫多开始 coding 吧

首先自定义一个我自己的监听器,然后重写2个方法,销毁的方法中是存储在磁盘的路径你可以任意指定,但是你存储在WEN-INF/classes 中他会报没有访问权限的错误

package com.listener;import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class MyListener implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stubSystem.out.println("推出");ServletContext sc = arg0.getServletContext();Counter counter = (Counter) sc.getAttribute("counter");if(counter!=null) {//String filepath = stry {// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter())// PrintWriter pw = new PrintWriter("/count.txt");PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("D:\\develop\\apache-tomcat-7.0.67\\webapps\\test\\WEB-INF\\classes\\count.txt")));pw.println(counter.getCounter());pw.flush();pw.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}@Overridepublic void contextInitialized(ServletContextEvent arg0) {// TODO Auto-generated method stubSystem.out.println("进入");ServletContext sc = arg0.getServletContext();System.out.println(sc.getResourceAsStream("/WEB-INF/classes/count.txt"));BufferedReader br = new BufferedReader(new InputStreamReader(sc.getResourceAsStream("/WEB-INF/classes/count.txt")));try {int count = Integer.parseInt((br.readLine()));br.close();sc.setAttribute("counter", new Counter(count));} catch (NumberFormatException | IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

然后就是页面了

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="com.listener.*"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body><%Counter count = (Counter) this.getServletContext().getAttribute("counter");count.setCounter(count.getCounter() + 1);this.getServletContext().setAttribute("counter", count);%><%=count.getCounter()%>
</body>
</html>

实体类

package com.listener;public class Counter {private int counter;public void setCounter(int counter) {this.counter = counter;}public int getCounter() {return counter;}public Counter(int counter) {// TODO Auto-generated constructor stubthis.counter = counter;}
}

最后不要忘了在web.xml 中配置listener 中让我们自定义的起作用

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><listener><listener-class>com.listener.MyListener</listener-class></listener><display-name>Archetype Created Web Application</display-name>
</web-app>

本人不才,希望大神提出指导意见

实现网站访问人数统计相关推荐

  1. html网站统计来访人数,实现网站访问人数统计

    首先我需要一个能访问网站人数的功能,那莫具体来讲就是需要一个能全局存储的,在 java web 中 为啥不用session 因为他代表的试一次会话是一种局部存储, 所以用 servletContext ...

  2. 白话Elasticsearch48-深入聚合数据分析之 Percentiles Aggregation-percentiles百分比算法以及网站访问时延统计及Percentiles优化

    文章目录 概述 官方说明 示例 Percentiles优化 compression 概述 继续跟中华石杉老师学习ES,第48篇 课程地址: https://www.roncoo.com/view/55 ...

  3. JSP 统计网站访问人数

    统计访问人数1 <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...

  4. Redis实现统计网站访问人数的功能

    现在想要统计某一网站的累积访问用户人数和日均活跃人数(连续多少天访问该网站的人数),可以通过Redis来实现类似功能. 我使用的数据结构是Redis中的bitmap,其在大数据量下的空间占用量很小.大 ...

  5. jsp网站访问次数统计

    JSP 点击量统计 有时候我们需要知道某个页面被访问的次数,这时我们就需要在页面上添加页面统计器,页面访问的统计一般在用户第一次载入时累加该页面的访问数上. 要实现一个计数器,您可以利用应用程序隐式对 ...

  6. (2)文章页面浏览次数+网站访问次数统计显示

    文章目录 一.插件安装与配置 二.页面显示 三.样式修改 我的个人网站IP地址:139.9.58.252(网站还在备案,域名不可用),现想实现页面浏览次数和网站访问次数的统计显示 一.插件安装与配置 ...

  7. 网站在线访问人数统计并计算停留时间

    网站在线人数: void Application_Start(object sender, EventArgs e) {    // 在应用程序启动时运行的代码    //初始化    Applica ...

  8. es使用pencentiles对网站访问延时统计

    在实际业务中,可能会遇到这样的需求,基于IP或者区域统计不同地区的网站网站访问量,根据访问量的不同指标,指导线上服务部署的优化等, 需求:比如有一个网站,记录下了每次请求的访问的耗时,需要统计tp50 ...

  9. 博客园添加访问人数统计超详细教程

    先看添加后的效果吧: 是不是还可以,下面就是教程了,简单易学,支持多种风格. 1. 登录http://www.amazingcounters.com/sign-up.php   这个地址去申请一个帐户 ...

最新文章

  1. 14年12月CCF真题1-门禁系统
  2. golang 可变参 不定参 函数 简介
  3. 网格机房机柜、机架内的空间规划及理线方法
  4. EF架构~为IEnumerable接口添加增删查等操作,原因是IEnumerable导航属性更放心
  5. String.valueOf()方法与toString()方法的区别
  6. 1000道Python题库系列分享13(22道填空题)
  7. Flask 应用上下文
  8. Java中无法到达的语句
  9. 面向对象-类与对象、关键字、异常使用
  10. Android Studio 4.2没有GsonFormat解决办法
  11. CRM系统提高企业核心竞争力
  12. python基本代码教学_如何真正零基础入门Python?(第一节)
  13. 美国薪资最高的技术技能:Golang、Kafka、DynamoDB、Redshift、Cassandra
  14. java Math类的常用方法介绍
  15. Linux终端分屏软件tmux工具基本快捷键
  16. 研发高频软件,工具,网站,体验飞一般的感觉。
  17. 最大似然估计(Maximum Likehood Estimation,MLE)和最大后验估计(Maximum A Posteriori estimation, MAP)
  18. 此iphone尚未备份显示未连接服务器,iPhone出现尚未备份的提示是怎么回事 提示取消方法...
  19. 安装hadoop 问题记录
  20. 【FTP工具类】提供FTP服务器的连接, 查找文件目录,及读取文件内容等操作

热门文章

  1. 可调速气体采样泵和液体采样泵选型介绍
  2. 大学计算机基础报告总结,windows7实验报告总结.docx
  3. HDOJ1495 非常可乐(bfs)
  4. 3、python学习笔记第三课:程序格式和构成
  5. android 开发快捷键,Android开发部分快捷键总结
  6. 光的弯曲-----1914-1919,有关相对论的天文远征
  7. 2008北京第29届奥运会总奖牌榜
  8. Web端测试——F12的代码调试与抓包
  9. 如何将背景图改为透明(透明就是我们看到的方格图)
  10. 【OKHTTP3】OKHTTP3使用GET和POST