一、这是jsp调用页testcount.jsp
<%@ page import="java.util.Date" %>
<%@ page import="count.CountXml" %>
计算器测试<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>
二、用到的两个类
1、CountXml.java
package count;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.util.Properties;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
public class CountXml{
private String fileName = "h:\\Tomcat 5.0\\webapps\\zz3zcwbwebhome\\WEB-INF\\xmlcount.xml";
private static CountObjectInf 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);
else
this.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);
else
obj.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);
else
obj.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);
else
obj.setYearCount(1);
obj.setDate(da);
obj.setTotalCount(obj.getTotalCount()+1);
obj.setTempCount(obj.getTempCount()+1);
if(obj.getTempCount()>=20){//只有当临时访问量大于等于20时才保存一次
obj.setTempCount(0);//临时计数器置0
write(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 CountObjectInf read(String fileName) throws Exception {
FileReader reader = new FileReader(fileName);
CountObjectInf result = (CountObjectInf)
Unmarshaller.unmarshal(CountObjectInf.class, reader);
reader.close();
return result;
}
}
2、
package count;
import java.util.Date;
public class CountObjectInf {
// 总访问量合计
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();
/**
* @return
*/
public int getDayCount() {
return dayCount;
}
/**
* @return
*/
public int getMonthCount() {
return monthCount;
}
/**
* @return
*/
public int getTotalCount() {
return totalCount;
}
/**
* @return
*/
public int getWeekCount() {
return weekCount;
}
/**
* @return
*/
public int getYearCount() {
return yearCount;
}
/**
* @param i
*/
public void setDayCount(int i) {
dayCount = i;
}
/**
* @param i
*/
public void setMonthCount(int i) {
monthCount = i;
}
/**
* @param i
*/
public void setTotalCount(int i) {
totalCount = i;
}
/**
* @param i
*/
public void setWeekCount(int i) {
weekCount = i;
}
/**
* @param i
*/
public void setYearCount(int i) {
yearCount = i;
}
/**
* @return
*/
public Date getDate() {
return date;
}
/**
* @param date
*/
public void setDate(Date date) {
this.date = date;
}
/**
* @return
*/
public int getTempCount() {
return tempCount;
}
/**
* @param i
*/
public void setTempCount(int i) {
tempCount = i;
}
}
分享到:
相关推荐
"jsp访问量"这个主题通常涉及到如何统计和分析JSP页面被用户访问的数量,这是衡量网站或Web应用受欢迎程度和用户活动度的重要指标。 首先,我们需要理解JSP页面的工作原理。JSP文件本质上是HTML代码中嵌入了Java...
本教程将聚焦于如何使用JavaServer Pages(JSP)技术来实现页面的访问量统计。JSP是Java平台上的一个动态网页技术,允许开发者将HTML代码与Java代码结合,从而在服务器端生成动态内容。 首先,我们需要理解JSP的...
这个实例适用于已经掌握了一些基础的Java Web开发者,旨在通过实际操作来提升他们的技能,特别是对新闻发布、用户留言以及访问量统计等功能的实现。 JSP是Java平台上的动态网页技术,它允许开发人员在HTML代码中...
- 使用`application`对象:为了统计所有用户的总访问量,我们可以利用`application`对象存储全局的访问次数。每次有新访问时,我们都会增加这个值。 5. JSP脚本元素: 我们可以在JSP页面中使用脚本元素()来插入...
5. **实时展示**:将统计结果实时展示在网站上,可以通过JSP页面显示当前在线人数和累计访问量,数据可以从内存或数据库中获取。 6. **日期计算**:Java的java.time包提供了丰富的日期和时间API,如LocalDate、...
Java基于XML实现网站访问量统计是一种常见的Web应用监控方法,主要通过解析XML文件来记录和分析网站的访问数据。在不改动数据库的情况下,这种技术提供了一种轻量级且易于集成的解决方案。以下是对这个主题的详细...
**可运行-JSP访问统计** 在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术。本文将深入探讨如何利用JSP实现一个简单的访问统计功能,以跟踪和展示网站用户的访问数据。 首先,我们需要理解...
这个系统旨在帮助网站管理员深入了解用户行为,通过对访问量、页面浏览量、用户来源等关键指标进行可视化展示,以便优化网站性能和用户体验。 【描述】"完整jsp网站流量图表分析系统jsp网站流量图表分析"指出,该...
在网站运营中,流量统计是一项至关重要的任务,它能够帮助我们了解网站的访问情况,包括访问量、用户行为、热门页面等信息。本资源提供了JSP实现网站流量统计的一种方法,对于学习和实践Web开发,尤其是JSP应用,...
网站群子网访问量统计是一项重要的网络数据分析任务,它能够帮助管理员了解用户访问网站的分布情况,优化资源分配,提升用户体验,并对网络安全提供有力的数据支持。在这个过程中,我们需要关注以下几个关键知识点:...
在Java编程语言中,实现对年、月、日、周访问量的统计是一项常见的任务,尤其是在网站数据分析或者服务器日志处理中。这个任务涉及到日期时间处理、数据存储以及可能的数据聚合操作。以下是一些关键的知识点,可以...
### JSP 页面记录自己的访问次数和总的访问次数 在 Web 开发中,了解用户行为对于优化网站性能、改进用户体验以及进行市场分析具有重要意义。其中一项常见的需求是统计页面的访问次数,这不仅可以帮助我们了解哪些...
1. **访问量统计**:记录每个页面的访问次数,分析哪些页面最受欢迎。 2. **独立访客统计**:通过Cookie或其他方式识别不同用户,计算独立访问者数量。 3. **用户行为分析**:跟踪用户在网站上的活动路径,了解用户...
在IT行业中,跨域访问是Web开发中一个重要的概念,特别是在使用JavaScript、JSP、JSON以及前端库如jQuery时。本教程将详细讲解如何利用这些技术实现跨域数据交互。 首先,我们需要理解“跨域”这个术语。在浏览器的...
4. **性能优化**:随着访问量的增加,频繁读写文件会导致性能瓶颈。可以考虑使用缓存机制减少对文件系统的访问频率。 5. **异常处理**:在实际开发中应加入更加完善的异常处理逻辑,提高系统的健壮性。 6. **安全...
1. **用户登录与权限管理**:系统可能有一个登录界面,用户(如教师、管理员)输入凭据后,JSP将验证这些信息并根据用户角色分配不同的访问权限。 2. **数据录入与展示**:教师可以输入他们的工作记录,包括教学...
1.2 JSP轻量级开发和运行环境简介 1.2.1 JSP运行最佳环境Tomcat+MySQL 1.2.2 高效开发JSP的最佳搭配工具Eclipse+MyEclipse 1.2.3 开发JSP经典模式MVC 1.3 JSP开发运行环境搭建 1.3.1 安装JDK ...
【企业门户网站 JSP 知识点详解】 企业门户网站是企业对外展示信息、提供服务和交流互动的重要窗口,而 JSP(JavaServer Pages)是构建这种网站的常用技术之一。JSP 是一种动态网页开发技术,它结合了 HTML 和 Java...
本资源"JSP网站开发典型模块源码"提供了一套完整的JSP开发实例,帮助开发者深入理解并实践JSP技术。 首先,我们要明白JSP的基本概念。JSP是基于Java的服务器端脚本语言,它允许开发者在HTML页面中嵌入Java代码,...
本系统完全基于JSP(JavaServer Pages)技术,提供了一系列核心功能,包括网站计数器、用户停留时间统计、实时在线人数统计以及网站访问量统计。本文将深入探讨这些功能的实现原理及应用价值。 首先,网站计数器是...