java 网站计数器_网站计数器——Java实现
网站计数器必须注意以下三个问题:
(1)网站的来访人数可能会很多,有可能超过20位数,所以必须使用大整数累——BigInteger累完成。
(2)用户每次在第一次访问时才需要进行计数的操作,在执行计算之前必须使用isNew()判断。
(3)在进行更改、保存时需要进行同步操作。
Java
BigInteger count=null; //定义成全局变量
%>
public BigInteger load(File file){ //读取计数文件
BigInteger count=null; //接受计数文件
try{
if(file.exists()){ //如果文件存在,则读取
Scanner scan=null; //定义Scanner对象
scan=new Scanner(new FileInputStream(file));//从文件中读取
if(scan.hasNext()){ //存在内容
count=new BigInteger(scan.next());//将内容放到BigInteger类中
}
scan.close(); //关闭输入流
}else{ //文件不惨在则创建新的
count=new BigInteger("0"); //第一次访问
save(file.count); //调用save(),保存新的文件
}
}catch(Exception e){
e.printStackTrace();
}
return count; //返回读取后的数据
}
public void save(File file,BigInteger count){ //保存计数文件
try{
PrintStream ps=null; //定义输出流对象
ps=new PrintStream(new FileOutputStream(file));//打印流对象
ps.println(count);//保存数据
ps.close();//关闭输出流
}catch(Exception e){
e.printStackTrace();
}
}
%>
String fileName=this.getServletContext().getRealPath("/")+"count.txt"; //文件路径
File file =new File(fileName);
if(session.isNew()){
synchronized(this){ //必须进行同步操作
count=load(file);
count=count.add(new BigInteger("1"));//自增操作
save(file,count); //保存修改后的数据
}
}
%>
您是第位访客!
本程序中,首先定义了一个全局变量BigInteger,这样即使用户刷新页面,BigInteger对象也不会重复声明。程序中为了保存和读取操作的方便,分别定义了save()和load()方法。load()中首先判断文件是否存在,如果存在,则将已有内容读取进来;如果文件不存在,则创建一个新的count.txt文件(此文件默认保存在Web项目的根目录中),并且将其中的内容设置为0.如果用户是第一次访问,则要执行文件的更新操作,在同步代码中首先对内容进行修改(让内容加1,由于使用的BigInteger,所以要使用其中的add()完成操作),然后将新的内容重新保存在文件中。
java 网站计数器_网站计数器——Java实现相关推荐
- java并发计数器_浅谈java并发之计数器CountDownLatch
CountDownLatch简介 CountDownLatch顾名思义,count + down + latch = 计数 + 减 + 门闩(这么拆分也是便于记忆=_=) 可以理解这个东西就是个计数器 ...
- java虚拟机编程_深入理解Java虚拟机(一)
一.运行时数据区域 1.程序计数器: 当前线程执行字节码的行号指示器(通过改变计数器的值来选择下条需要执行的字节码指令) 每个线程有独立的程序计数器(线程私有,为了切换线程时能恢复到挣钱的执行位置) ...
- java开发分支_如何选择Java 的分支?
问题阐述 听说Java 无所不能,从简单的手机游戏到世界500 强的官方网站都能开发,作为一名Java 的初学者,我该如何入手? 专家解答 自诞生之日起,Java 语言就处于不断的发展中.目前,其主要 ...
- A002、java环境搭建_第一个java程序
目录 1.内容介绍 2.软件开发概述 2.1 软件开发概念 2.2 软件开发示例 2.3 软件开发语言 2.3.1 计算机语言概述 2.3.2 计算机语言分类 2.4 小结 3.Java概述 3.1 ...
- 新手java安装教程_新手安装Java开发工具图文教程
类型:编程工具大小:403.4M语言:英文 评分:7.1 标签: 立即下载 写这些文字的目的是为了给像我一样的想学习Java的非计算机专业的人员提供一个简单明了和快速安装Java的方法,这里提到的可能 ...
- java ear包_简单介绍Java 的JAR包、EAR包、WAR包区别
原标题:简单介绍Java 的JAR包.EAR包.WAR包区别 WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专 ...
- 百度商桥放在php网站哪里_网站优化的几个重要技巧,你知道吗?
说起网站优化,相信大家并不陌生.网站做好之后,一般都是需要通过各种方法对网站进行优化,才能让用户搜索到你,从而给你带来更多流量.那么对于一个刚上线的新站,我们如何对它进行优化呢?下面迈为科技小编大致介 ...
- 马士兵 java 学习笔记_马士兵java教程笔记1
---恢复内容开始--- 前记 虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master 标识符 标识符是由字母 ...
- java 02-cf_cf活动如何设置java环境变量_如何设置java环境变量
cf助手怎么连接wifi_连接无线网设置 对于刚刚学习java的win7用户来说,首先要学会安装jdk和配置java环境变量,这是学习java的唯一途径,否则编写的代码运行时会出现bug.关于这一点, ...
- java 字符串乱码_这份Java面试题含答案解析竟然真的让你不用在面试上“如履薄冰”...
面试题集共分为以下十部分: 一.Core Java: 1 - 95 题1 - 24 页 基础及语法: 1 - 61 题1 - 13 页 异常: 62 - 69 题13 - 15 页 集合: 70 - ...
最新文章
- 王者又连跪了?快让 AI 帮你上分!
- 关于transform的3D变形函数
- 【杂谈】如何让你的2020年秋招CV项目经历更加硬核,可深入学习有三秋季划4大领域32个方向(2020.7.23号后涨价)
- 漫画:如何用Zookeeper实现分布式锁?
- php 删除服务器上的文件,php如何删除服务器文件
- 好友消息和群消息区别
- 如何在Kubernetes上运行PostgreSQL
- (12)Verilog HDL可综合与不可综合区别(第3天)
- mysql中数据定义和数据控制语言_MySQL的DDL数据定义语言和DCL数据控制语言
- postgresql 增量备份
- windows系统远程桌面相关内容
- java实现三级联动查询_jeefast和Mybatis实现三级联动的示例代码
- mysql fetch field_PHP mysql_fetch_field() 函数
- 实现文字跟随鼠标移动--[转]
- VB6制作一个简单小程序(税收计算)
- 软设考点精要,精确到每页!
- UML-----实现图(构件图、部署图)
- android 基带版本,基带是什么 基带版本是什么
- Anroid Studio开发---日记本App
- sharemouse切窗口就锁定了什么原因_使各大网课软件监控功能和锁定功能“失效”...