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.pswp.cn/news/443556.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443556.shtml
英文地址,請注明出處:http://en.pswp.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…