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,一经查实,立即删除!

相关文章

数组之间的计算matlab,matlab中的矩阵运算和数组运算方法

MATLAB 具有两种不同类型的算术运算&#xff1a;数组运算和矩阵运算。您可以使用这些算术运算来执行数值计算&#xff0c;例如两数相加、计算数组元素的给定次幂或两个矩阵相乘。矩阵运算遵循线性代数的法则。数组运算则是执行逐元素运算并支持多维数组。句点字符 (.) 将数组运…

php爬取flash的交互数据库,基于PHP的Flash与MySQL数据库通讯的实现

第 27卷 第 6期 2013年 12月 商洛学院学报 Journal of Shangluo University V01&#xff0e;27 NO&#xff0e;6 Dec&#xff0e; 2013 基于 PHP的 Flash与 MySQL数据库通讯的实现 聋彦 。 (商洛学院 计算机科学系&#xff0c;陕西商洛 726000) 摘 要 &#xff1a;根据新媒体 网…

mysql版本不支持 loop,loopback4, node mysql connector支持 utf8mb4字符集

场景&#xff1a;数据库sql语句包含emoji 表情符号&#xff0c;比如微信登录昵称包含有表情符号&#xff0c;数据库使用utf8无法插入 会提示 ‘Incorrect string value: ‘xF0x9Fx90xBExE5xAE...‘ for column ‘nick_name‘ at row 1‘,原因&#xff1a;使用loopback4 做后端&…

php 获取警告信息,获取PHP警告错误信息的解决方法_PHP教程

代码如下所示&#xff1a;复制代码 代码如下:";fileWrite($filename, $result, w);}function sendBankMsg($msg){$timestamp time();$params "msg".$msg."&posttime".$timestamp;$length strlen($params);//创建socket连接$domain "www.…

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;现在和未来变化的历史…

matlab几种循环,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼for a0.003:0.0005:1; b0.002:0.0005:0.9; c0.001:0.0005:0.8;d0.0005:0.0005:0.7;E1a* E_Bone;E2b* E_Bone;E3c* E_Bone;E4d* E_Bone;G1a* G_Bone;G2b* G_Bone;G3c* G_Bone;G4d* G_Bone;%% Integration for cortical bone partsIn…

宝塔asp php,宝塔Windows面板部署ASP、ASPX程序WEB网站环境方法

宝塔Windows面板部署ASP、ASPX程序WEB网站环境方法一般Windows系统建站用户可能较多是程序是ASP或者是ASPX的&#xff0c;这样只能在Windows系统中才能运行。说实话&#xff0c;对于中文软件来说也没有太多内容可以分享的&#xff0c;直接我们照着操作就可以了&#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…

matlab汉明码psk,设计一个汉明码编码的2PSK调制的数字通信系统

汉明码信道编码的2psk调制数字通信系统设计一个采用2PSK调制的数字通信系统设计系统整体框图及数学模型&#xff1b;产生离散二进制信源&#xff0c;进行信道编码(汉明码)&#xff0c;产生BPSK信号&#xff1b; 加入信道噪声(高斯白噪声)&#xff1b;BPSK信号相干解调&#xff…

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网络控制器开发平台。不仅为开发者提供…

php接收不到ios值,php设置标签后,ios收不到,安卓可以收到

通过下面代码设置的标签&#xff1a;$client->device()->addTags($registration_id, test);通过下面代码推送的消息$result self::getClient()->push()->setPlatform([ios, android])->addTag([test])->setNotificationAlert($content)->options([time_t…

0+到10+随机数+java,java代码--实现随机输出10个随机数,并显示最大值,最小值

总结;对于length()属性&#xff0c;还不是很熟悉。不会用它。package com.s.x;//随机产生10个随机数&#xff0c;并且显示出最大值&#xff0c;最小值public class Love {public static void main(String[] args) {int a[] new int[10];int max, min;for (int i 0; i < 10…

oracle推送短信,ORACLE 10G如何实现发短信的服务?

CREATE OR REPLACE PROCEDURE SEND_MAIL(SUBJECT IN VARCHAR2,CONTENTSED IN VARCHAR2) ISEMAIL_SERVER VARCHAR2(30) : 10.1.200.6;SENDER_ADDRESS VARCHAR2(50) : testcz.com.cn;--发件地址RECEIVER_ADDRESS VARCHAR2(30); …

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…

oracle 12 ORA-01262,oracle物理dg安装:方法二

本文记录了物理dg的第二种安装方法&#xff0c;使用rman duplicate from active database&#xff0c;不需要做备份文件。准备工作&#xff1a;1.两台虚拟机&#xff0c;主机名&#xff1a;n1, n2&#xff0c;操作系统&#xff1a;centos6.7&#xff0c;建好信任关系2.oracle d…

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;具体编译环境的搭建&…

Hibernate3.x,hibernate3.x,Hibernate3.x整合Spring3.x不能实现自动创建表结构的解决办法:...

一&#xff1a;今天遇到一个诡异的问题&#xff0c;就是关于hibernate3.x实现表结构自动创建&#xff0c;一般我们在用Struts2&#xff0c;Hibernate3.x&#xff0c;Spring3.x搭建框架&#xff0c;尤其在开发阶段都希望在启动Web容器时就可以根据Bean实体自动创建数据表结构&am…