Java实现:月,日,年,周,访问量统计

一:工程截图:


二:运行效果图:


三:CountObjectInfo.java:

package cn.csrc.base.count;import java.util.Date;public class CountObjectInfo {// 总访问量合计protected int totalCount = 0;// 日访问量protected int dayCount = 0;// 周访问量protected int weekCount = 0;// 月访问量protected int monthCount = 0;// 年访问量protected int yearCount = 0;// 临时访问量protected int tempCount = 0;protected Date date = new Date();public int getDayCount() {return dayCount;}public int getMonthCount() {return monthCount;}public int getTotalCount() {return totalCount;}public int getWeekCount() {return weekCount;}public int getYearCount() {return yearCount;}public void setDayCount(int i) {dayCount = i;}public void setMonthCount(int i) {monthCount = i;}public void setTotalCount(int i) {totalCount = i;}public void setWeekCount(int i) {weekCount = i;}public void setYearCount(int i) {yearCount = i;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public int getTempCount() {return tempCount;}public void setTempCount(int i) {tempCount = i;}}

四:CountXml.java:

package cn.csrc.base.count;import java.io.FileReader;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;public class CountXml {/** 在这里定义XMLCOUNT.XML的绝对路径,注意此处代码要修改的哦 */private String fileName = "E:\\workspace\\Count\\WebContent\\WEB-INF\\xmlcount.xml";private static CountObjectInfo obj = null;private static CountXml instance = null;public static CountXml getInstance() {if (instance == null) {instance = new CountXml();}return instance;}private CountXml() {try {obj = read(fileName);} catch (Exception e) {System.out.println(e);}}public int getTotalCount() {return obj.getTotalCount();}public int getDayCount() {return obj.getDayCount();}public int getMonthCount() {return obj.getMonthCount();}public int getWeekCount() {return obj.getWeekCount();}public int getYearCount() {return obj.getYearCount();}public synchronized void addcount(Date da) {// 比较日期增加计数if (new SimpleDateFormat("yyyy-MM-dd").format(this.obj.date).equals(new SimpleDateFormat("yyyy-MM-dd").format(da)))this.obj.setDayCount(this.obj.getDayCount() + 1);elsethis.obj.setDayCount(1);if (new SimpleDateFormat("yyyy-MM").format(this.obj.date).equals(new SimpleDateFormat("yyyy-MM").format(da)))this.obj.setMonthCount(this.obj.getMonthCount() + 1);elseobj.setMonthCount(1);Calendar ca = Calendar.getInstance();ca.setTime(da);ca.setFirstDayOfWeek(Calendar.MONDAY);if (ca.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY&& !new SimpleDateFormat("yyyy-MM-dd").format(this.obj.date).equals(new SimpleDateFormat("yyyy-MM-dd").format(da)))obj.setWeekCount(1);elseobj.setWeekCount(obj.getWeekCount() + 1);if (new SimpleDateFormat("yyyy").format(this.obj.date).equals(new SimpleDateFormat("yyyy").format(da)))this.obj.setYearCount(this.obj.getYearCount() + 1);elseobj.setYearCount(1);obj.setDate(da);obj.setTotalCount(obj.getTotalCount() + 1);obj.setTempCount(obj.getTempCount() + 1);if (obj.getTempCount() >= 0) {// 只有当临时访问量大于等于20时才保存一次obj.setTempCount(0);// 临时计数器置0write(fileName);}}private void write(String fileName) {try {FileWriter writer = new FileWriter(fileName);Marshaller.marshal(obj, writer);writer.close();} catch (Exception e) {System.out.println(e);}}private CountObjectInfo read(String fileName) throws Exception {FileReader reader = new FileReader(fileName);CountObjectInfo result = (CountObjectInfo) Unmarshaller.unmarshal(CountObjectInfo.class, reader);reader.close();return result;}}

五:index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="cn.csrc.base.count.CountXml" %>	
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>计算器测试</title>
</head>
<body>计算器测试<br><%CountXml xmlcount = CountXml.getInstance();if (session.isNew()) {xmlcount.addcount(new Date());//增加访问量int n = xmlcount.getTotalCount();//取总访问量 String count = Integer.toString(n);session.putValue("count", count);}%>您是第<font color="red"><%=session.getValue("count")%></font>位访问者 <br>  总访问量:  <%=xmlcount.getTotalCount() %><br>本年访问量:<%=xmlcount.getYearCount() %><br>本月访问量:<%=xmlcount.getMonthCount() %><br>本周访问量:<%=xmlcount.getWeekCount() %><br>本日访问量:<%=xmlcount.getDayCount() %><br>
</body>
</html>

六:xmlcount.xml文件的初始内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<xml-body>
</xml-body>

七:源码下载地址:http://download.csdn.net/detail/sxdtzhaoxinguo/7615273


八:程序参考地址:http://bujingyun23.blog.163.com/blog/static/18131024320131594942633/



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaMelody开源系统性能监控软件:

一&#xff1a;从网上搜索&#xff0c;发现 javamelody 监控web应用程序不错。 JavaMelody能够在QA和实际运行生产环境监测Java或Java EE应用程序服务器。并以图表的形式显示&#xff1a;Java内存和Java CPU使用情况&#xff0c;用户Session数量&#xff0c;JDBC连接数&#x…

java zoneoffset,java - 如何在java8中获取默认的ZoneOffset? - SO中文参考 - www.soinside.com...

tl;drOffsetDateTime.now().getOffset()但您可能应该使用时区而不是仅仅偏离UTC。ZoneId.systemDefault()Offset versus Time Zoneoffset-from-UTC只是一小时&#xff0c;几分钟和几秒钟 - 仅此而已。time zone是特定地区人民使用的偏移的过去&#xff0c;现在和未来变化的历史…

php声波模拟开门,关于 php使用扩展控制树莓派io 驱动超声波测距

经过昨天一下午&#xff0c;终于写好了基于只需要安装完毕&#xff0c;就可以调用函数了&#xff1a;<?php /*** Created by PhpStorm.* User: tioncico* Date: 19-7-6* Time: 下午4:45*/define(PI_TRIG,0);define(PI_ECHO,1);if (wiringPiSetup()false){echo "初始化…

Java和poi导出excel报表

一&#xff1a;poi jar下载地址&#xff1a;点击打开链接&#xff1a; 二&#xff1a;工程截图&#xff1a; 三&#xff1a;运行效果截图&#xff1a; 四&#xff1a;源代码&#xff1a; Student.java: package com.poi.bean;import java.util.Date;public class Student {pri…

sh.k7p.work/index.php,Laowang's Blogs

OpenDayLight(硼Boron版本)实战开发入门OpenDayLight[1](简写为ODL)的硼Boron(0.5.0)版本于2016-09-16 这几天刚刚发布。作为一款开源SDN网络控制器&#xff0c;依托于强大的社区支持以及丰富的功能特性&#xff0c;ODL成为了目前主流的SDN网络控制器开发平台。不仅为开发者提供…

Java和iText导出pdf文档

一&#xff1a;工程截图&#xff1a; 二&#xff1a;项目运行截图&#xff1a; 三&#xff1a;源代码&#xff1a; Book.java package com.iText.bean;public class Book {private int bookId;// 图书编号private String name;// 图书名称private String author;// 图书作者pr…

linux多进程原理,Linux进程调度

极简模式假设我的系统只有一种调度算法cfs那么有个调度的队列 cfs_rq所有running的进程都会 进入这个队列&#xff0c;不在running 或者其他情况会出队列&#xff0c;ok。则假设队列控制的算法有以下。cfs_rq_enqueuecfs_rq_dequeuecfs_rq_pick所操作的是进程描述符 task_struc…

openwrt使用linux内核版本,降低OpenWRT的Linux内核版本

不久前&#xff0c;为了移植某驱动程序&#xff0c;笔者可谓绞尽脑汁&#xff0c;在4.1内核版本上&#xff0c;尝试了很多次都没能成功&#xff0c;后来仔细分析&#xff0c;才知道是内核版本过高导致的&#xff0c;本文给出降低内核版本的方法&#xff0c;具体编译环境的搭建&…

linux天气软件,类似智能手机!Linux中安装Conky天气插件

如今&#xff0c;智能手机中很多都安装相匹配外观的天气小插件&#xff0c;而对于喜欢操作系统平台的用户而言&#xff0c;可以在你的Linux桌面中拥有像智能手机一样的天气外观。通过Flair Weather Conky可以将使用一个GUI工具Conky Manager在Linux中轻松地管理Conky。这里介绍…

linux安装下载中文包,linux下安装中文包和字体

在虚拟机中使用中文输入法和中文显示使用的是rhel5的镜像我把其镜像挂载在/mnt/cdrom中&#xff0c;然后切换到/Server目录下&#xff0c;安装支持中文字体Mount /dev/cdrom /mnt/cdromCd /mnt/cdrom/serverrpm -ivh fonts-chinese-3.02-9.6.el5.noarch.rpmrpm -ivh fonts-ISO8…

linux无桌面重做系统,Linux不需要重做系统

感谢hsyyf的投递但从系统构架上来讲&#xff0c;总所周知&#xff0c;Linux的稳定性远大于windows&#xff0c;单纯的使用不会引起系统的损坏。当不进行危险操作时&#xff0c;例如执行sudo rm-rf/*之类的命令&#xff0c;或者混用分区工具&#xff0c;是不会引起各种彻底性损坏…

linux远程连接工具putty使用方法,linux远程登陆工具putty使用

#putty工具百度下载即可&#xff0c;最好从官网下。安装时&#xff0c;除安装位置外&#xff0c;其余默认即可。1、使用命令ifconfig命令&#xff0c;记下eth0的IP&#xff0c;我的是192.168.1.1692、打开putty&#xff0c;并将查到的ip写在图中位置&#xff0c;下侧的Saved Se…

linux mint安装步骤,Linux mint 安装步骤

##Linux mint 安装步骤##家里的笔记本以前一直用Deepin系统&#xff0c;但是Deepin系统的wifi实在是太慢了。还有就是启动软件是有时候总没响应&#xff0c;卡死机。 最近重装系统&#xff0c;选择了mint ,在这里记录下安装步骤。###1.制作U盘启动盘###下载iso文件&#xff0c;…

linux 商业游戏,Ubuntu下安装试玩原生Linux版商业游戏Braid

这款原生Linux版商业游戏Braid国外出售价大约在80美元左右。每年在Linux平台上发布的原生商业游戏是屈指可数&#xff0c;而且这些游戏的质量也是参差不齐。不过这款原生Linux版商业游戏Braid还是值得一玩的&#xff0c;这款Braid游戏创意十足&#xff0c;您可以通过拼图和时间…

linux centos 7 crontab 启动,CentOS 7 Linux执行crontab 计划任务实操 - 好应网

[inlosc_lg_title]一、环境准备[/inlosc_lg_title]yum install vixie-cron #安装定时任务插件yum install crontabs #安装定时任务crontabs/bin/systemctl restart crond.service #启动服务/bin/systemctl reload crond.service #重新载入配置/bin/systemctl status crond.serv…

三羊献瑞c语言编程入门,蓝桥杯-三羊献瑞,

蓝桥杯-三羊献瑞&#xff0c;更多精彩文章请关注公众号『大海的BLOG』问题观察下面的加法算式&#xff1a;祥 瑞 生 辉 三 羊 献 瑞----------------三 羊 生 瑞 气其中&#xff0c;相同的汉字代表相同的数字&#xff0c;不同的汉字代表不同的数字&#xff0c;‘三’和‘祥’不…

倒果汁c语言,水果榨汁补维生素C?这些补维生素的错误别再犯了

原标题&#xff1a;水果榨汁补维生素C&#xff1f;这些补维生素的错误别再犯了蔬菜和水果作为维生素C、矿物质和植物纤维的重要来源&#xff0c;是每天餐桌上都要出现的食物&#xff0c;一旦水果蔬菜吃不够&#xff0c;身体就会开始找你麻烦。在处理蔬菜水果的时候&#xff0c;…

android 判断对象,Android网络判断知识小结

Android中判断当前网络是否可用应用场景&#xff1a;实现判断当前网络是否可用当前有可用网络&#xff0c;如下图&#xff1a;当前没有可用网络&#xff0c;如下图&#xff1a;实现步骤&#xff1a;1、获取ConnectivityManager对象Context context activity.getApplicationCon…

html选择器是什么,CSS3选择器是什么?

首先我们来看一下displaynone的意思是什么&#xff1f;display:none的意思&#xff1a;隐藏元素并脱离文档&#xff0c;流就是隐藏该区域&#xff0c;不占实际空间&#xff0c;但对后台来说真实存在&#xff0c;可以获取被隐藏的元素简单的来说就是将元素设置为none的时候既不会…

零基础学计算机408,又一所重点大学改考408!21计算机考研会全面408吗?

【北京工业大学】于7月17日发布《关于北京工业大学2021年全国硕士研究生招生考试部分考试科目及考试大纲调整的通知》&#xff0c;要点如下&#xff1a;文法学部0401教育学专业课改考 311统教育学信息学部计算机学院0812计算机科学与技术0839网络空间安全0854电子信息 (专业学位…