为了统计博客访问量而设计的一种按照时间,IP地址和session生成页面访问量的关键代码,如有需求可联系本人QQ:1032089468。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String vdate = sdf.format(new Date());
request.setAttribute("vdate", vdate);
String sessionId = request.getSession().getId();
request.setAttribute("sessionId", sessionId);
String vip = request.getRemoteAddr();
//out.print(vip);
request.setAttribute("vip", vip);
int wnid = Integer.parseInt(request.getParameter("wnid"));
VisitedDao visiteddao = new VisitedDao();
boolean flag = visiteddao.querySessionIsExists(sessionId,Integer.parseInt(request.getParameter("wnid")));
boolean flag1 = visiteddao.queryIpIsExists(vip,Integer.parseInt(request.getParameter("wnid")));
//-----------当前时间---------------------------------------------------------
String vyear = vdate.substring(0,4);
//request.setAttribute("vyear", vyear);
String vmounth = vdate.substring(5, 7);
// request.setAttribute("vmounth", vmounth);
String vdd = vdate.substring(8,10);
//request.setAttribute("vdd", vdd);
String vhours = vdate.substring(11,13);
// request.setAttribute("vhours", vhours);
String vminute = vdate.substring(14, 16);
//request.setAttribute("vminute", vminute);
String vsecond = vdate.substring(17,19);
// request.setAttribute("vsecond", vsecond);
String vatestring = vyear+vmounth+vdd+vhours+vminute+vsecond;
long vdateint = Long.parseLong((vatestring.trim()));
//request.setAttribute("vdateint", vdateint);
//int vtime = Integer.parseInt(vyear)+Integer.parseInt(vmounth)+Integer.parseInt(vdd)+Integer.parseInt(vhours)+Integer.parseInt(vminute)+Integer.parseInt(vsecond);
//---------------------------------------------------------------------------------------------------
// long sub = vdateint-vdatesqlint;
if(flag==false)//sessionId不存在
{
if(flag1==true)//ip地址存在
{
//-----------最后一次访问时间---------------------------------------------------------
String vdatesql = visiteddao.queryVdateByIp(vip,Integer.parseInt(request.getParameter("wnid")));
if(vdatesql!=null || !"".equals(vdatesql))
{
String year = vdatesql.substring(0,4);
// request.setAttribute("year", year);
String mounth = vdatesql.substring(5, 7);
// request.setAttribute("mounth", mounth);
String dd = vdatesql.substring(8,10);
// request.setAttribute("dd", dd);
String hours = vdatesql.substring(11,13);
// request.setAttribute("hours", hours);
String minute = vdatesql.substring(14, 16);
//request.setAttribute("minute", minute);
String second = vdatesql.substring(17,19);
//request.setAttribute("second", second);
//int time = Integer.parseInt(year)+Integer.parseInt(mounth)+Integer.parseInt(dd)+Integer.parseInt(hours)+Integer.parseInt(minute)+Integer.parseInt(second);
//---------------------------------------------------------------------------------------------------
String vdatesqlstring=year+mounth+dd+hours+minute+second;
long vdatesqlint = Long.parseLong((vdatesqlstring.trim()));
//request.setAttribute("vdatesqlint", vdatesqlint);
if(vdateint-vdatesqlint>1000000)//超过一天没有产生访问记录
{
request.setAttribute("notice", "改IP超过24位登陆");
visiteddao.insertVisitedNum(wnid, vdate, vip, sessionId);
}
else
{
if(visiteddao.queryCountByIP(vip, vdate)>=3)
{
request.setAttribute("notice", "该IP地址今日频繁登陆此网站,面临暴露");
}
else
{
request.setAttribute("notice", "改IP在连续24小时内重复登陆");
}
}
}
}
else //ip地址不存在
{
visiteddao.insertVisitedNum(wnid, vdate, vip, sessionId);
}
}
else //sessionID存在
{
}