springboot记录用户访问次数_Spring Boot入门(12)实现页面访问量统计功能
在日常的网站使用中,经常会碰到页面的访问量(或者访问者人数)统计。那么,在Spring Boot中该如何实现这个功能呢?
我们的想法是比较简单的,那就是将访问量储存在某个地方,要用的时候取出来即可,储存的位置可选择数据库或者其他文件。本例所使用的例子为txt文件,我们将访问量数据记录在D盘的count.txt文件中。
下面直接开始本次的项目。整个项目的完整结构如下:
我们只需要修改划红线的三个文件,其中build.gradle的代码如下:
buildscript {
ext {
springBootVersion = '2.0.3.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf
compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: '2.0.1.RELEASE'
}
视图文件(模板)index.HTML的代码如下:
访问统计
function load(){
var count = [[${count}]];
document.getElementById("visit").innerHTML = count.toString();
}
Hello, world!
本页面已被访问次。
控制器文件VisitController.java文件的代码如下:
package com.example.visit.Controller;
import java.io.*;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class VisitController {
@GetMapping("/index")
public String Index(Map map){
// 获取访问量信息
String txtFilePath = "D://count.txt";
Long count = Get_Visit_Count(txtFilePath);
System.out.println(count);
map.put("count", count); // 后台参数传递给前端
return "index";
}
/*
* 获取txt文件中的数字,即之前的访问量
* 传入参数为: 字符串: txtFilePath,文件的绝对路径
*/
public static Long Get_Visit_Count(String txtFilePath) {
try {
//读取文件(字符流)
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(txtFilePath),"UTF-8"));
//循环读取数据
String str = null;
StringBuffer content = new StringBuffer();
while ((str = in.readLine()) != null) {
content.append(str);
}
//关闭流
in.close();
//System.out.println(content);
// 解析获取的数据
Long count = Long.valueOf(content.toString());
count ++; // 访问量加1
//写入相应的文件
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(txtFilePath),"UTF-8"));
out.write(String.valueOf(count));
//清楚缓存
out.flush();
//关闭流
out.close();
return count;
}
catch (Exception e){
e.printStackTrace();
return 0L;
}
}
}
这样我们就完成了整个项目的配置,最后,我们在D盘中的count.txt中写入数字0,作为初始访问量。
运行Spring Boot项目,在浏览器中输入localhost:8080/index , 显示的页面如下:
刚载入页面时,显示页面被访问1次。当我们将这个这也载入10次后,显示如下:
这样我们就用Spring Boot实现了页面访问量的统计功能。
本次分享到此结束,欢迎大家交流~~
注意:本人现已开通两个微信公众号: 因为Python(微信号为:python_math)以及轻松学会Python爬虫(微信号为:easy_web_scrape), 欢迎大家关注哦~~
springboot记录用户访问次数_Spring Boot入门(12)实现页面访问量统计功能相关推荐
- springboot记录用户访问次数_SpringBoot中自定义注解实现控制器访问次数限制示例...
今天给大伙介绍一下SpringBoot中如何自定义注解实现控制器访问次数限制. 在Web中最经常发生的就是利用恶性URL访问刷爆服务器之类的攻击,今天我就给大伙介绍一下如何利用自定义注解实现这类攻击的 ...
- jquery记录用户访问页面停留时间
jquery记录用户访问页面停留时间示例代码: $(window).bind('beforeunload', function (e) {var end = new Date();//用户退出时间va ...
- java统计多个线程的请求次数_Web并发页面访问量统计实现
页面访问量统计,可能在上学的时候就讲过如何简单实现,例如在servletContext中保存一个页页面访问次数,然后每访问一次加1:或者每访问一次就把操作记录保存到数据库,这样的处理方式,做做实验就算 ...
- java记录访问次数_Java 利用监听器来实现记录用户访问网站次数(示例代码)
假如有这么一个需求,要记录所有用户访问某一页面的次数. 最先想到的可能是在该Controller定义一个静态成员,然后在相应Action里自增.但这样有一个问题,就是Tomcat或者其他服务器重启的话 ...
- springboot 拦截器_Spring Boot入门系列(十)如何使用拦截器,一学就会!
前面介绍了Spring Boot 如何整合定时任务已经Spring Boot 如何创建异步任务,不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhon ...
- js记录用户访问页面和停留时间
1.setInterval setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval(code,millisec[,"lang" ...
- hibernate版本_Spring Boot入门(最新基于SpringBoot2.2.2版本系列教程)
在本文中,主要内容包括什么是Spring Boot,优点,主要功能以及使用Spring Boot创建一个简单的应用程序. Spring Boot是什么? Spring Boot是对Spring F ...
- 记录用户访问的地址 访问时间 以及ip地址
const express = require('express') const fs = require('fs') const connection = require('./ulits/tool ...
- hive left outer join 子查询临时表_基于历史数据的用户访问次数,每天新老用户,日活,周活,月活的hive计算...
最近有一个需求,统计每天的新老用户,日活,周活,月活. 我们每天的增量数据会加入到hive历史数据表中,包含用户访问网站的一些信息,字段有很多,包括用户唯一标识guid. 当然了日活,周活,月活就是一 ...
- shell最大出现和连续出现次数_shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)...
当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在 ...
最新文章
- 回顾2021,展望2022
- c语言c++语言中静态变量,函数详解
- 开发日记-20190716 关键词 读书笔记 《Perl语言入门》Day 10
- mysql数据库的常用操作-索引
- 【Android 应用开发】Android 返回堆栈 与 任务
- 安全容器的发展与思考
- 扫描指定包并解析为BeanDefinition
- 架构之美第二章-美丽架构的含义
- 讨论用户注册有的几篇好文
- 用c语言中的函数来求公约数,C语言中求最大公约数的函数
- Linux下防火墙开启相关端口及查看已开启端口
- java增强connection类_关于DriverManager.getConnection()里的增强实现
- ios pan手势滑动消失动画_IOS UIPanGestureRecognizer手势使用及识别状态UIGestureRecognizerState...
- 7. where loop
- 圆形刻度盘 进度 展示
- 数据接口复习 3 stack and queue
- ps画画模糊笔刷_大量PS笔刷AI笔刷打包下载(超过1000款笔刷)
- 转载:应用架构、业务架构、技术架构和业务流程图
- 计算机发展简史的ppt教程,计算机发展简史PPT.ppt
- PHP语言是什么语言及能解决当下什么问题-动态更新
热门文章
- C语言4位BCD码加法器,四位二进制8421BCD码加法器.doc
- PySpark fold foldByKey用法
- Mysql自增主键用完了怎么办
- SAP MM模块库存结存报表
- 基于easyX实现俄罗斯方块
- 计算机键盘按键数量,电脑键盘有一百多个按键,有3个很少人会碰
- CNVD-2020-10487(CVE-2020-1938)tomcat ajp 文件读取漏洞
- Error: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk
- 行业研究报告-全球与中国白光LED电子皮镜市场现状及未来发展趋势
- 如何让域用户安装需要管理员权限的软件