⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 counter.jsp

📁 一款由8人组成的团队
💻 JSP
📖 第 1 页 / 共 2 页
字号:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Calendar" %>
<%@ page import="cn.js.fan.db.*" %>
<%@ page import="cn.js.fan.web.*" %>
<%@ page import="java.sql.*" %>
<jsp:useBean id="fchar" scope="page" class="cn.js.fan.util.StrUtil"/>
<%!
int ToDay,Avera,DayMax,AllCount;
int CountSize = 6;         //计数不足在前面加零
boolean CountView = true;  //计数是否显示在页面上,False/True
boolean CountType = true;  //统计是记时间还是不记.True记,False不记
boolean CountMode = true;  //在页面上显示不计时的计数结果,还是显示计时的结果,默认为不计时(计时为:20分钟内不加数)
//==========================================================================
//计算两个日期之间相隔的天数
public int DateDiff(java.util.Date lowerLimitDate,java.util.Date upperLimitDate){
   long upperTime,lowerTime;
   upperTime=upperLimitDate.getTime();
   lowerTime=lowerLimitDate.getTime();
   if(upperTime<lowerTime)
	return -1;
   Long result=new Long((upperTime-lowerTime)/(1000*60*60*24));
   return result.intValue();
}

public void addinfo(String Name,String Info,boolean NewDays)
{
		boolean Found = false;
		ConnUpdate conn = null;
		ResultSet MyCount = null;
		Conn conn1 = new Conn(Global.defaultDB);
		try {
			conn = new ConnUpdate(Global.defaultDB);
			MyCount = conn.executeQuery( "Select "+Name+",count,todays,ID FROM " + Name);
			int id = 0;
			if (conn.getRows()>0)
			{
					  while(MyCount.next())
					  {
						  id = MyCount.getInt(4);  
						  if (NewDays)
						  {
								  if (MyCount.getString(Name).equals(Info))
								  {
										 // MyCount.updateInt(2,MyCount.getInt("count")+1);
										 // MyCount.updateInt(3,MyCount.getInt("todays")+1);
										 // MyCount.updateRow();
										 String sql = "update " + Name + " set count=count+1,todays=todays+1 where id=" + id;
										 conn1.executeUpdate(sql);
										 Found = true;
								  }
						  }
						  else
						  {
								  if (MyCount.getString(Name).equals(Info))
								  {
										 // MyCount.updateInt(2,MyCount.getInt("count")+1);
										 // MyCount.updateInt(3,1);
										 String sql = "update " + Name + " set count=count+1,todays=1 where id=" + id;
										 conn1.executeUpdate(sql);
										 Found = true;
								  }
								  else {
										 // MyCount.updateInt(3,0);
										 String sql = "update " + Name + " set todays=0 where id=" + id;
										 conn1.executeUpdate(sql);
								  }
								  // MyCount.updateRow();
						  }
					  }
			}
			if (!Found)
			{
				// System.out.print("not found+"+Name+"\n");
				/*
				MyCount.moveToInsertRow();
				MyCount.updateString(1,Info);
				MyCount.updateInt(2,1);
				MyCount.updateInt(3,1);
				MyCount.insertRow();
				*/
				String sql = "insert " + Name + " set "+Name+"="+cn.js.fan.util.StrUtil.sqlstr(Info)+",count=1,todays=1";
				conn1.executeUpdate(sql);				
			}
		}
		catch (Exception e)
		{
			System.out.println("addinfo:"+e.getMessage());
		}
		finally {
			if (MyCount!=null) {
				try { MyCount.close(); } catch (SQLException e) {}
				MyCount = null;
			}
			if (conn!=null) {
				conn.close();
				conn = null;
			}
			if (conn1!=null) {
				conn1.close();
				conn1 = null;
			}
		}
}
%>
<%
Conn conn = new Conn(Global.defaultDB);
String CountLink = request.getContextPath()+"/cms/counter/showcount.jsp"; //查看统计结果的连接。
String ImageLink = request.getContextPath()+"/cms/counter";              //图片地址

String NewYear,NewMonth,NewDay;
Calendar cal  = Calendar.getInstance();
NewYear = ""+(cal.get(cal.YEAR));
NewMonth = ""+(cal.get(cal.MONTH)+1);
NewDay = ""+cal.get(cal.DATE);

if (NewYear.length()<=2)	NewYear="20" + NewYear;
if (NewMonth.length()<=1)	NewMonth="0" + NewMonth;
if (Integer.parseInt(NewDay)<=9)				NewDay="0" + NewDay;
//===========================================================================  基本统计数据
ResultSet rs = null;
java.util.Date StartDate,LogDate=null;
int Avera,DayMax,AllCount,ToDay=0,TotalDays;
String sql = "";
try {
	sql = "Select count(*) from DayCount";
	rs = conn.executeQuery(sql);
	int DayTotal = 0;
	if (rs!=null && rs.next())
		DayTotal = rs.getInt(1);                             //获得统计总天数
	else
		DayTotal = 0;
	if (rs!=null) {
		rs.close();
		rs = null;
	}
	rs = conn.executeQuery("Select * from Count");
	if (rs!=null && rs.next())
	{
		StartDate = rs.getDate("StartDate");                                 //开始统计日期
		DayMax    = rs.getInt("DayMax");                                     //最高一天流量
		AllCount  = rs.getInt("AllCount");                                   //统计访问总数(使用的天数)
		ToDay     = rs.getInt("ToDayCount");                                 //今天访问流量
		LogDate   = rs.getDate("LogDate");                                   //统计截止日期
		TotalDays = DateDiff(StartDate,new java.util.Date())+1;      						//统计访问日期数(不管有没有使用,从开始统计算起.)
		Avera     = rs.getInt("AllCount") % TotalDays;                 		//日均访问流量
	}
}
catch (Exception e) {
	//e.printStackTrace();
}
finally {
	if (rs!=null) {
		try { rs.close(); } catch (SQLException e) {}
		rs = null;
	}
}

if (DateDiff(LogDate,new java.util.Date())>=1)	ToDay = 0;

//===========================================================================  预计一天访问量
//注意此处要防止除0,因为在夜里12点钟时cal.HOUR_OF_DAY是0
//int intending=(ToDay/(1+cal.get(cal.HOUR_OF_DAY)))*(24-cal.get(cal.HOUR_OF_DAY)-1)+ToDay;

//===================================================================
String DayDate = NewYear + NewMonth + NewDay;                      //20001818
String MonDate = NewYear + NewMonth;                               //200018
String YeaDate = NewYear;                                          //2000

//===================================================================
ResultSet MyCount = null;
String StrSQL = "";
try {
		//===================================================================
        int Dayn = cal.get(cal.DATE);
        StrSQL = "Select ID,monthcount."+Dayn+" FROM monthcount Where ID = " + MonDate;
        MyCount = conn.executeQuery(StrSQL);
		int MyCountDay = 0;
        if (!MyCount.next())
		{
				// MyCount.moveToInsertRow();
				// MyCount.updateInt(1,Integer.parseInt(MonDate));
				// MyCount.updateInt(""+Dayn,1);
				// MyCount.insertRow();
				StrSQL = "insert monthcount (ID, monthcount." + Dayn + ") values (" + MonDate + ",1)";
				conn.executeUpdate(StrSQL);
		}
        else
		{
			MyCountDay = MyCount.getInt(2);
            // MyCount.updateInt(2,MyCount.getInt(2)+1);
			// MyCount.updateRow();
			StrSQL = "update monthcount set monthcount." + Dayn + "=" + (MyCountDay+1) + " where ID=" + MonDate;
			conn.executeUpdate(StrSQL);
		}
	
		if (MyCount!=null) {
			try { MyCount.close(); } catch (Exception e) {}
			MyCount = null;
		}
		//===================================================================
		StrSQL = "Select AllCount,ToDayCount,DayMax,StartDate,LogDate FROM Count";
        MyCount = conn.executeQuery(StrSQL);
        if (!MyCount.next())
		{
		/*
                MyCount.moveToInsertRow();
				MyCount.updateInt(1,1);
				MyCount.updateInt(2,1);
				MyCount.updateInt(3,1);
				MyCount.updateDate(4,new java.sql.Date(cal.getTimeInMillis()));
				MyCount.updateDate(5,new java.sql.Date(cal.getTimeInMillis()));
				MyCount.insertRow();
		*/
				StrSQL = "insert Count (AllCount,ToDayCount,DayMax,StartDate,LogDate) values (1,1,1,NOW(),NOW())";
				conn.executeUpdate(StrSQL);
		}
        else
		{
		/*
                if (MyCount.getInt("DayMax") < MyCountDay)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -