Java开发的流量分析系统

一,此系统是网上搜的潭州学院的Tony老师的视频学习的,用于实时分析一个网站的访问量的简单的例子,主要功能是用户登录,展示在线人数以及信息。其中细致的讲解了单例模式,Vector集合的应用,以及web网站如何在外网上发布。

1,单利模式(来自百度百科):单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。

单例模式的特点从具体实现角度来说,就是以下三点:一是单例模式的类只提供私有的构造函数,二是类定义中含有一个该类的静态私有对象,三是该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。
此项目中与单利模式相关的代码:

public class UserList {//List下的实现类,线程安全,装载用户登录的容器private Vector<String> vector;//自己创建自己的唯一实例private final static UserList userlist=new UserList();//提供私有的无参构造函数private UserList(){vector=new Vector<String>();}/*** 对外提供访问的入口*/public static UserList getInstance(){return userlist;}

2,Vector集合对象(来自百度百科):Vector 类在 java 中可以实现自动增长的对象数组; vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。

在相对于ArrayList来说,Vector线程是安全的,也就是说是同步的
创建了一个向量类的对象后,可以往其中随意地插入不同的类的对象,既不需顾及类型也不需预先选定向量的容量,并可方便地进行查找。对于预先不知或不愿预先定义数组大小,并需频繁进行查找、插入和删除工作的情况,可以考虑使用向量类。
3,具体项目实现:
(1),创建单例类UserList,并创建私有构造函数,唯一实例对象,以及外界访问的接口,重写相关方法。

package com.smf.util;import java.util.Vector;/*** 装载用户的容器* @author SMF* @Version 1.0*2017-2-23**单例模式:是指一个类只有一个实例的模式*单例模式的特点:*1,单例类只能有一个实例*2,单利泪必须自己创建自己的唯一实例*3,单利必须给所有其他对象提供这一实例**/
public class UserList {//List下的实现类,线程安全,装载用户登录的容器private Vector<String> vector;//自己创建自己的唯一实例private final static UserList userlist=new UserList();//提供私有的无参构造函数private UserList(){vector=new Vector<String>();}/*** 对外提供访问的入口*/public static UserList getInstance(){return userlist;}/*** 向集合中添加用户* @param name 登陆进来的用户名*/public void addUser(String name){if (name!=null)vector.add(name);}/*** 推出后在容器中删除用户* @param name 退出的用户名*/public void removeUser(String name){if(name!=null)vector.remove(name);}/*** 统计用户列表* @return 用户列表*/public Vector<String> getUserList(){return vector;}/*** 获得用户的数量* @return 用户的数量*/public int getUserCount(){return vector.size();}
}

(2),创建User类为用户访问对象,并实现HttpSessionBindListenser接口,重写valueBond和valueOnbond方法实现对用户访问的监听。

package com.smf.util;import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;/*** 用户对象* @author Administrator* @version 1.0* 2017-2-23* 实现了HttpSessionBindingListener接口,就会把user对象绑定到session中,* 或者从session中把user移除掉*/
public class User implements HttpSessionBindingListener{private String name;//用户名//得到UserList实例private UserList ul=UserList.getInstance();public User(String name){super();this.name=name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public UserList getUl() {return ul;}public void setUl(UserList ul) {this.ul = ul;}/*** 用户登录---User--Session(将User 绑定到Session)-自动调用valueBond*/@Overridepublic void valueBound(HttpSessionBindingEvent event) {// TODO Auto-generated method stubul.addUser(name);   }/*** 用户退出---User--Session(将User 绑定到Session)-自动调用valueBond*/@Overridepublic void valueUnbound(HttpSessionBindingEvent event) {// TODO Auto-generated method stubul.removeUser(name);}
}

(3),建立用户登录页面Login.jsp和用户在线人数情况展示页面UserList.jsp并利用简单的jsp中加入java代码实现展示功能。exit.jsp用于用户退出登陆。


Java开发的流量分析系统相关推荐

  1. java计算机毕业设计营养分析系统源码+数据库+系统+lw文档+部署

    java计算机毕业设计营养分析系统源码+数据库+系统+lw文档+部署 java计算机毕业设计营养分析系统源码+数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  2. 大数据离线---网站日志流量分析系统(1)---简介及框架

    本次介绍网站日志流量分析系统,首先是简介和架构.后面会对架构中需要的每个模块的进行逐个介绍.本篇主要分为两个部分 网站日志流量分析系统简介 整体技术流程和架构 1. 网站日志流量分析系统简介 1.1点 ...

  3. 大数据实战:用户流量分析系统

    ---------------------------------------------------------------------------------------------------- ...

  4. JAVA计算机毕业设计成绩分析系统Mybatis+源码+数据库+lw文档+系统+调试部署

    JAVA计算机毕业设计成绩分析系统Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计成绩分析系统Mybatis+源码+数据库+lw文档+系统+调试部署 本源码技术栈: 项目 ...

  5. 网站日志流量分析系统之(日志收集)

    一.概述 网站日志流量分析系统之(日志埋点)这里我们已经将相关数据通过ajax发送至日志服务器,这里我只用了一台日志服务器(本机Windows环境),日志收集主要分为以下几个步骤: ①日志服务器集结合 ...

  6. 强!一个Java开发的人脸识别系统,获取人脸68个关键点(附源码)

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料视频 点击此链接:多套SpringCloud/SpringBoot实 ...

  7. [附源码]计算机毕业设计JAVA学生考试成绩分析系统

    [附源码]计算机毕业设计JAVA学生考试成绩分析系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  8. Android内核开发:学会分析系统的启动log

    本文是<Android内核开发>系列的第八篇文章,本文主要关注如何分析Android系统的启动log,学会通过搜索重要的TAG标签,找到Android启动过程中的重要节点. 要学会分析系统 ...

  9. 2017年Java开发就业前景分析

    2017年Java开发前景如何及java程序员就业前景如何? 这是很多从事或已经从事java开发必须面临的现实问题,根据2016年11月TIOBE开发语言排行榜宣布的流行开发语言的排名结果,Java仍 ...

最新文章

  1. Java Execution Process
  2. 10w 行级别数据的 Excel 导入优化记录
  3. 院长齐聚,答疑解惑 | 清华-青岛数据科学研究院“院长接待日”成功举办
  4. web接口响应时间标准_从零搭建Web应用(二)
  5. golang 获取文件md5
  6. 什么是Java多态?如何实现Java多态?
  7. springboot拦截请求路径_SpringBoot整合Ant Design Pro进行部署
  8. 2.3 KNN-采用机器学习库来预测鸢尾花的分类
  9. android drawable转bitmap_Android 内存泄漏优化汇总
  10. windows平台下压缩tar.gz
  11. 微信js-sdk集成小结
  12. 数据通路功能——单总线
  13. Script.NET 1.0版本的Tcl+Html界面编程原理
  14. 100%解决GitHub打不开或者打开慢
  15. 截止失真放大电路_Multisim基本放大电路仿真实验
  16. Robust Medical Instrument Segmentation Challenge 2019拜读
  17. 百度地图经纬度距离计算
  18. 一个成功的BI项目实施需要注意哪些? 1
  19. 深度学习评估指标之目标检测——(yolov5 可视化训练结果以及result.txt解析)
  20. 11GR2 中的常见 RMAN 问题

热门文章

  1. Android 4.0 Switch 控件用源代码实现
  2. ML模型部署-工具箱
  3. Android studio 继承view 画笔画圆、画方形、画三角形、画扇形、画椭圆
  4. Spark基础(1)——搭建Spark开发环境、UI界面查看spark集群
  5. 无线蓝牙耳机买哪个牌子好?2022年音质最好的蓝牙耳机
  6. IP 归属地查询 API 教你从0到1顺着网线找到键盘侠
  7. ​开机启动界面splashActivity​
  8. 交集函数oracle,Oracle中关于并集/交集/差集的运算
  9. 数据结构之查找与排序
  10. 2020淘宝双11超级星秀猫怎么踢人 最强星秀猫怎么退出队伍