网站流量统计平台的设计与实现.docx
《网站流量统计平台的设计与实现.docx》由会员分享,可在线阅读,更多相关《网站流量统计平台的设计与实现.docx(25页珍藏版)》请在冰豆网上搜索。
![网站流量统计平台的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-4/21/707e897d-ae50-476b-84df-caf69fe93db4/707e897d-ae50-476b-84df-caf69fe93db41.gif)
网站流量统计平台的设计与实现
网站流量统计平台的设计与实现
本科毕业设计
摘要
对网站访问信息进行研究,得到网站访问量统计,这些网站应该在你能获取访问数据的范围内。
这个研究目的是为了帮助网站管理员能对网站有更好的管理和认识,来了解当前网站有没有达到用这个预期想要的效果。
它的主要作用是对当前网站产生的影响和布局利弊进行分析,这个研究主要用了SqlServer来进行访问数据的保存,Java来进行服务的编写,JSP对界面进行编写,MyBatis来将数据库和Java进行字段的对接和用SpringMVC来对页面和服务的结合。
其中分析的数据来源于对访问次网站的访问者的记录,再依次通过时间网站栏目进行数据的分析,最终得到大部门访问者对当前访问网站的趋向性,并且将结果根据IP,UV,PV进行分类显示。
因此进行这个研究是很有必要的。
关键词:
网站访问量;IP;UV;PV
Abstract
Thewebsitevisitinformationisstudied,andthewebsitetrafficstatisticsareobtained.Thepurposeofthisstudyistohelpwebmasterstobettermanagethesiteandunderstandingtounderstandthecurrentsitehasnotachievedthedesiredeffect.Itsmainroleistheimpactonthecurrentsiteandlayoutoftheadvantagesanddisadvantagesofanalysis,thisstudymainlyusedSqlServertosavethedataaccess,Javapreparedtocarryoutservices,JSPtheinterfaceiswrittentothedatabaseandtheMyBatisJavafieldofdockingandcombinedwithSpringMVConthepageandservice.Theanalysisofthedatarecordedinthesourceofaccesstimevisitorstothesite,andthenfollowedbythetimeofwebsitedatawereanalyzed,finallygetthebigtrendofthecurrentDepartmentofvisitorsvisitthesite,andaccordingtotheresultsofIP,UV,PVclassification.Therefore,itisnecessarytodothisresearch.
Keywords:
websitetraffic;IP;UV;PV
基于JavaEE技术的网站流量统计
前言
课题研究背景与意义
本课题的研究主要是因为随着网络技术的发展和当前人类生活方式的改变,在网络上查找信息和交流成为了一种主流的信息方式,习惯于这种方式之后就会产生长期的依赖,所以网站的存在是必然的,当每个人都生活在网络时代,那要求必定会产生更高的要求,所以存在之后又会存在一些疑虑,尤其是因为不知道当前网站是否产生了它的作用和影响,所以网站的访问信息是很重要的,通过网站的访问信息进行分析就会得到各个时间段的访问者的各种特征的信息,这样一来就方便了当前网站的管理员来管理当前网站了,通过查看访问该网站的访问ip,pv,uv来分析当前网站的影响范围和程度,网站管理员也可以根据访问的栏目次数来得到页面栏目规划是否合理,以此来改善网站的布局。
这样可以起到大大提高网站作用,这也是这个研究的主要目的。
所以,为了对网站访问进行有效的管理,这个研究是起到有效的作用的。
研究现状
当前在这个方面的研究做的最全面的是XX流量统计,它的范围是所有中文网站,称为最大的中文网站分析工具,是一款免费的专业网站流量分析工具。
它提供了几十种图形化报告在我看来,对于大部分的网站管理者来说,平时最经常用到的图表表示方法就足够起到这个作用,我的研究就是以折线图展示,辅助以数据直接的数据视图来展现网站流量的统计结果。
因此,我的研究正好达成了完成用户所需要的,以最简单明了的方式展现,这就足够了。
第一章系统分析
1.1可行性分析
首先,在这个网络急速发展的时代,网站的重要性就是我研究的主题的重要性,当网站在日常生活中是不可少的时候,网站所产生的付出回报率相对应的就显得尤为重要,而我研究的这个主题就是解决这个问题,根据分析这些网站访问量的分析就是在帮助改善访问者的网站访问体验。
我在选这个研究主题的时候是现在存在的网站访问量统计系统都显得太大了,也就是太庞大了,所以我想做一个能为大部分人实现这个目标而又不复杂庞大的系统,所以我选择了这个研究方向。
在技术方面,现在有很多方式都可以实现,在数据库方面我选择了SqlServer,在编程语言方面我选择了java,在页面展示方面我选择了jsp,当然还有很多可以实现的技术,所以在技术可行性方面是完全可行的。
1.2开发中用到的工具介绍
1.2.1Java开发工具(eclipse)
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具JavaDevelopmentKit,JDK)。
1.2.2数据库sqlserver
SQLServer是一个关系数据库管理系统。
它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
Sybase则较专注于SQLServer在UNIX操作系统上的应用。
1.2.3服务器(Tomcat)
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
1.2.4数据库辅助工具MyBatis
MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。
2013年11月迁移到Github。
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。
SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。
推荐在这个配置中使用类路径资源(classpathresource),但你可以使用任何Reader实例,包括用文件路径或file:
//开头的url创建的实例。
MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
1.3需求分析
在分析需求的时候,我首先收集了一些网上的资料,关于网站管理员和网站的受益者所想让在网络上运行的网站达到的目标,以及想根据现在所做的研究得到什么,才开始了需求分析,我选择的这个研究主题,主要是要求实现对访问网站的数据进行分析来得到某个时间段的此网站的访问IP地址,访问网站的独立访问者UV,和网站每个页面的浏览量PV,这就是需求者最主要的要求,而我们做这些数据分析的时候,输入的数据是需要根据网站访问时在数据库里记录的网站访问者的信息和cookie信息的,最后输出的就是用这个系统的用户所想要的网站在一定的时间段内的PV,UV,IP等数据,并且为了清晰展示输出结果,把结果数据做成折线图来展示,网站可以根据栏目分类来查看不同栏目的访问信息。
1.4开发中运用到的技术介绍
开发中主要用到这三种技术JAVA,JSP,SpringMVC,下面依次来介绍一下这些技术。
首先,Java是一门面向对象的编程语言,是从C++吸收了很多优点,并摒弃了一些缺点,因此拥有易用和功能强大两个特征,是静态面向对象编程语言的代表。
并且Java的与平台无关性和垃圾回收机制非常的有效和受用。
其次,JSP中文名是java服务器页面,其根本是一个简化的Servlet设计。
它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.Html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行,JSP是在服务器端执行的。
通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
最后,Spring框架提供了构建Web应用程序的全功能MVC模块。
使用Spring可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。
第二章模块设计
2.1栏目分类模块
将网站访问统计按时间段来进行分类,也可以分成显示页的类别和栏目分级显示。
按时间段分类包括:
今日,当前月,当前年,近30天。
按显示页进行分类包括:
文章访问量。
按栏目分级包括:
一级栏目及其下级栏目和链接页。
这是根据需求分析后得到的模块分类方式,这样简单有效的获取浏览量的动态。
2.2数据库及表结构设计
在SqlServer上新建一个数据库名:
cmsv5
在cmsv5数据库里新建6个表,下面介绍这6个表和表结构的设计:
1、DocumentBaseInfo表:
CREATETABLE[dbo].[DocumentBaseInfo](
[GUID][bigint]NOTNULL,//唯一标识
[siteGUID][int]NULL,//站点唯一标识
[columnGUID][int]NULL,//栏目唯一标识
[columnName][nvarchar](100)NULL,//栏目名称
[columnPath][nvarchar](200)NULL,//栏目路径
[title][nvarchar](200)NULL,//文章标题
[subtitle][nvarchar](200)NULL,//文章小标题
[infoOrigion][nvarchar](400)NULL,//信息来源
[fileURL][varchar](200)NULL,//附件url
[publishDate][datetime]NULL,//发布时间
[isOverdue][nchar](10)NULL,//是否过期
[overdueDate][datetime]NULL,//过期日期
[isTop][char](10)NULL,//是否置顶
[isComment][nchar](10)NULL,//是否评论
[imageUrl][nvarchar](100)NULL,//图片url
[sourceType][nchar](10)NULL,//类型
[creator][nvarchar](50)NULL,//创建者
[creatorID][bigint]NULL,//创建者id
[createTime][datetime]NULL,//创建时间
[updateTime][datetime]NULL,//更新时间
[status][tinyint]NULL,//状态
[flowStatus][tinyint]NULL,//流程状态
[preimageurl][nvarchar](100)NULL,//之前图片url
[cwDate][datetime]NULL,//时间
[flag][int]NULL,//标识
[fenlei][varchar](50)NULL,//分类
[isUsable][char]
(1)NULL,//是否可用
[ordernum][bigint]NULL,//排序号
[sourceGuid][bigint]NULL,//来源guid
[summary][nvarchar](1000)NULL,//摘要
[ZYX][int]NULL,//
[keywords][nvarchar](200)NULL,//关键字
[mediaUrl][nvarchar](500)NULL,//媒体url
[bmsummary][nvarchar](1000)NULL,//
[wjzh][nvarchar](500)NULL,//
[zfjg][nvarchar](500)NULL,//
[visitcount][int]NULL,//
[filecode][nvarchar](200)NULL,//
[isUpdate][char]
(1)NULL
2、siteColumn表
CREATETABLE[dbo].[siteColumn](
[GUID][int]NOTNULL,//唯一标识
[siteGUID][int]NULL,//站点唯一标识
[parentGUID][int]NULL,//父栏目唯一标识
[columnCode][int]NULL,//栏目代码
[title][nvarchar](100)NULL,//文章标题
[documentType][char]
(1)NULL,//文件类型
[columnType][char]
(1)NULL,//栏目类型
[FormID][varchar](20)NULL,//表单id
[PageID][varchar](20)NULL,//页面id
[FormTable][varchar](50)NULL,//表单表格
[orderNum][int]NULL,//排序号
[path][nvarchar](200)NULL,/路径/
[namePath][nvarchar](400)NULL,//路径名称
[columnURL][nvarchar](400)NULL,//栏目url
[orderCondition][varchar](50)NULL,//排序条件
[status][char]
(1)NULL,//状态
[isAudit][char]
(1)NULL,//是否审核
[isNav][char]
(1)NULL,//是否有导航
[isWap][char]
(1)NULL,//是否是wap
[isPublishType][char]
(1)NULL,//发布类型
[isComment][char]
(1)NULL,//是否有评论
[urgentFlag][tinyint]NULL,//紧急标识
[creator][varchar](100)NULL,//创建人
[creatorID][char](36)NULL,//创建id
[createTime][datetime]NULL,//创建时间
[updateTime][datetime]NULL,//更新时间
[isHasChild][char]
(1)NULL,//是否是哈希孩子
[isInput][char]
(1)NULL,//是否是inpu方式
[zwgk_deptCode][varchar](50)NULL,//政务公开部门标识
[zwgk_columnCode][varchar](50)NULL,//政务公开栏目标识
[preguid][int]NULL,//之间guid
[newguid][int]NULL,//新的guid
[preparentguid][int]NULL,//之前父guid
[prepath][varchar](200)NULL//之前路径
3、SiteInfo表:
CREATETABLE[dbo].[SiteInfo](
[GUID][int]NOTNULL,//唯一标识
[title][varchar](50)NULL,//标题
[domainName][varchar](50)NULL,//域名
[siteDir][varchar](15)NULL,//站点路径
[fileName][varchar](20)NULL,//文件名称
[publishType][char]
(1)NULL,//发布类型
[publishPriority][tinyint]NULL,//优先发布
[orderNum][int]NULL,//排序号
[distributeID][bigint]NULL,//分配id
[distributeType][tinyint]NULL,//分配类型
[distributeAddress][varchar](100)NULL,//分配地址
[isAudit][char]
(1)NULL,//是否审核
[isIndependent][char]
(1)NULL,//是否独立成站
[monitorExtUrl][char]
(1)NULL,//监测
[status][tinyint]NULL,//状态
[creator][varchar](100)NULL,//创建人
[creatorID][char](36)NULL,//创建id
[createTime][datetime]NULL,//创建时间
[updateTime][datetime]NULL,//更新时间
[LinkMan][varchar](200)NULL,//链接人员
[LinkTel][varchar](15)NULL,//链接电话
[SiteNote][varchar](2000)NULL//站点
4、visitInfoHistory表:
CREATETABLE[dbo].[VisitInfoHistory](
[ID][bigint]NOTNULL,//id
[IP][varchar](50)NULL,//ip
[BrowserTime][datetime]NULL,//浏览时间
[objectGuid][varchar](50)NULL,//对象唯一标识
[objectType][int]NULL,//对象类型
[userGuid][varchar](100)NULL,//用户唯一标识
[BrowseYear][smallint]NULL,//浏览年
[BrowseMonth][tinyint]NULL,//浏览月
[BrowseDay][tinyint]NULL,//浏览天
[BrowseHour][tinyint]NULL,//浏览小时
[BrowseMin][tinyint]NULL,//浏览分钟
[BrowseSecond][tinyint]NULL,//浏览秒
[BrowseType][char]
(1)NULL,//浏览类型
[objectPath][varchar](100)NULL,//对象路径
[Flag][char]
(1)NULL,//标识
[siteGuid][varchar](50)NULL//站点唯一标识
5、visitInfoTj表:
CREATETABLE[dbo].[VisitInfoTj](
[guid][bigint]NOTNULL,//唯一标识
[siteGuid][int]NULL,//站点唯一标识
[objectGuid][varchar](50)NULL,//对象唯一标识
[objectType][int]NULL,//对象类型
[BrowseYear][smallint]NULL,//浏览年
[BrowseMonth][tinyint]NULL,//浏览月
[BrowseDay][tinyint]NULL,//浏览日
[BrowseHour][tinyint]NULL,//浏览小时
[BrowseDate][date]NULL,//浏览日期
[TjType][int]NULL,//统计类型
[TjCnt][bigint]NULL//统计数量
6、visitInfo表:
CREATETABLE[dbo].[VisitInfo](
[ID][bigint]NOTNULL,//id
[IP][varchar](50)NULL,//ip
[BrowserTime][datetime]NULL,//浏览时间
[objectGuid][varchar](50)NULL,//对象唯一标识
[objectType][int]NULL,//对象类型
[userGuid][varchar](100)NULL,//用户唯一标识
[BrowseYear][smallint]NULL,//浏览年
[BrowseMonth][tinyint]NULL,//浏览月
[BrowseDay][tinyint]NULL,//浏览天
[BrowseHour][tinyint]NULL,//浏览小时
[BrowseMin][tinyint]NULL,//浏览分钟
[BrowseSecond][tinyint]NULL,//浏览秒
[BrowseType][char]
(1)NULL,//浏览类型
[objectPath][varchar](100)NULL,//对象路径
[Flag][char]
(1)NULL,//标识
[siteGuid][varchar](50)NULL//站点唯一标识
2.3PV展现模块
Pv的展现也就是将服务编写的根据各种时间等条件获得的数据来展现在界面上的这一系列动作,具体来说就是根据导航菜单选择日期或者根据选择的日期进行分析或者选时间以表格的数字化数据和折线图的