基于B/S模式下的JAVA网站流量统计系统
今日思考,完成一个网站流量统计系统项目,需要实现哪些功能?
此类项目常见描述如下:
传统的网站只是在页面上使用计数器进行简单的访问者数量的统计。随着网站运营规模的扩大,依靠这种简单的数量统计并不能真正对网站运营状况做以全面的评估,难以为网站运营提供有意义的参考;基于Web的网站访问流量统计系统在功能上强化了对用户行为的统计和分析,有利于网站管理者、开发者根据目标客户使用网站的实际情况制定网站经营战略,调整网站运营架构,进而对网站整体进行更有意义的改进。
SSM(MYECLIPSE)框架及其适合本类项目,使用MVC的思想可以极大程度减少重复工作量。和SSM(MYECLIPSE)框架最配的开发工具是MYECLIPSE。MYECLIPSE集成了大量插件,可以更好的使用SSM(MYECLIPSE)进行项目的开发,使得项目开发时事半功倍。
通过对网站流量统计系统系统的仔细分析,可以得出网站流量统计系统系统是一个 后台项目。
在这样一个项目中,系统的登录角色是必不可少的,对每个登录角色设置账号、密码。以确保系统可以正常登录使用。SSM(MYECLIPSE)项目中包含的登录角色有管理员、用户。
总结得出该系统所有数据为:管理员(admin)、用户(yonghu)、流量指标(liuliangzhibiao)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
用户表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 用户 xingming | VARCHAR(255) | | 姓名 xingbie | VARCHAR(255) | | 性别 nianling | VARCHAR(255) | | 年龄 zhiwu | VARCHAR(255) | | 职务 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
流量指标表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 流量指标id riliulanshu | VARCHAR(255) | | 日浏览数 yueliulanshu | VARCHAR(255) | | 月浏览数 nianliulanshu | VARCHAR(255) | | 年浏览数
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggwangzhanliuliangtjxt -- ---------------------------- DROP TABLE IF EXISTS `t_admin`; CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员'; -- ---------------------------- DROP TABLE IF EXISTS `t_yonghu`; CREATE TABLE `t_yonghu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户',`xingming` VARCHAR(255) DEFAULT NULL COMMENT '姓名',`xingbie` VARCHAR(255) DEFAULT NULL COMMENT '性别',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',`zhiwu` VARCHAR(255) DEFAULT NULL COMMENT '职务',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户'; -- ---------------------------- DROP TABLE IF EXISTS `t_liuliangzhibiao`; CREATE TABLE `t_liuliangzhibiao` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '流量指标id',`riliulanshu` VARCHAR(255) DEFAULT NULL COMMENT '日浏览数',`yueliulanshu` VARCHAR(255) DEFAULT NULL COMMENT '月浏览数',`nianliulanshu` VARCHAR(255) DEFAULT NULL COMMENT '年浏览数',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='流量指标';
添加流量指标模块:
从页面中通过post方法,将流量指标信息传入到后台服务器中,在tianjialiuliangzhibiaoact
中接收,字段包括日浏览数,月浏览数,年浏览数使用insert方法添加数据,将数据同步到
数据库中,完成添加操作。定义添加成功提示信息,添加流量指标成功,并保存到request中具体代码如下:
通过liuliangzhibiaodao的insert方法将页面传输的流量指标添加到数据库中 liuliangzhibiaodao.insert(liuliangzhibiao);
将添加流量指标成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加流量指标成功");
返回流量指标管理界面
return "forward:/tianjialiuliangzhibiao.action";
查询流量指标模块:
在后台中定义流量指标查询模块,在侧边栏中点击流量指标管理,可以跳转到流量指标管理界面。在该页面中通过liuliangzhibiaoController中定义liuliangzhibiaoguanli响应流量指标查询模块。在liuliangzhibiaoguanli中查询出所有信息,返回页面进行循环展示。查询方法为liuliangzhibiaodao中的selectByexample方法。该部分核心代码如下:
生成流量指标样例类,通过example定义查询条件 LiuliangzhibiaoExample example = new LiuliangzhibiaoExample();
通过liuliangzhibiaodao的selectByExample方法查询出所有的流量指标信息 List liuliangzhibiaoall = liuliangzhibiaodao.selectByExample(example);
将流量指标信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("liuliangzhibiaoall", liuliangzhibiaoall);
返回流量指标管理界面
return "forward:/liuliangzhibiaoguanli.action";
修改流量指标模块:
点击修改按钮,可以跳转到流量指标修改页面。在流量指标修改页面中,将初始化该流量指标的所有信息,并将信息一一对应填充到对应编辑栏中。编辑完流量指标信息后,页面通过post方法将数据封装为一个流量指标实体,传入到liuliangzhibiaoController中。在xiugailiuliangzhibiao中进行接收,接收完毕后,调用liuliangzhibiaoMapper中的updateByPrimaryKeySelective方法进行修改。该部分代码如下:
通过liuliangzhibiaodao的修改方法根据id修改对应的流量指标 liuliangzhibiaodao.updateByPrimaryKeySelective(liuliangzhibiao);
将修改流量指标成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改流量指标信息成功");
返回流量指标管理界面
return "forward:/liuliangzhibiaoguanli.action";
删除流量指标模块:
在页面中通过a标签,shanchuliuliangzhibiao?id=将id传入到后台中,通过shanchuliuliangzhibiao接收流量指标id。使用deleteByid的方法
删除该流量指标,完成删除操作。定义删除成功提示信息,删除流量指标成功,并保存到request中,该部分代码如下:
通过liuliangzhibiaodao的删除方法根据id删除对应的流量指标 liuliangzhibiaodao.deleteByPrimaryKey(id);
将删除流量指标成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除流量指标成功");
返回流量指标管理界面
return "forward:/liuliangzhibiaoguanli.action";