只对新用户计数

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

只对新用户计数
表结构 tb_newusercount 字段user_id,user_ip,user_times
DB类
package com.count.Online;

import java.sql.*;

public class DB {
    private Connection con;
    private Statement stm;
    private ResultSet rs;
    private String classname="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    private String

url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_database08";

    public DB(){}
    public Connection getCon(){      
     try{
      Class.forName(classname);
     }
     catch(ClassNotFoundException e){
      e.printStackTrace();
     }
     try{
         con=DriverManager.getConnection(url,"sa","");
     }
     catch(Exception e){
         e.printStackTrace(System.err);
      con=null;
     }
     return con;
    }
    public Statement getStm(){
     try{
        con=getCon();
        stm=con.createStatement();
     }catch(Exception e){e.printStackTrace(System.err);}
      return stm;
   }
   public Statement getStmed(){
     try{
        con=getCon();
        stm=con.createStatement

(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
     }catch(Exception e){e.printStackTrace(System.err);}
     return stm;
    }
    public ResultSet search(String sql){
     getStmed();
     try{
      rs=stm.executeQuery(sql);
     }catch(Exception e){e.printStackTrace();}
     return rs;
    }
    public int dosql(String sql){
     int i=-1;
     getStmed();
     try{
      i=stm.executeUpdate(sql);
     }catch(Exception e){e.printStackTrace();}
     return i;
    }
    public void closed(){
     try{
      if(rs!=null)rs.close();
     }
     catch(Exception e){e.printStackTrace();}     
     try{
      if(stm!=null)stm.close();
     }
     catch(Exception e){e.printStackTrace();}     
     try{
      if(con!=null)con.close();
     }
     catch(Exception e){e.printStackTrace();}     
    }
}
CountOnline.java类
package com.count.Online;

import java.sql.*;
public class CountOnline {
 private String userip;
 private String nowdate;
 private int times;
 private DB db=new DB();
 public CountOnline(){}
 public void setUserip(String userip){
  this.userip=userip;
 }
 public String getUserip(){
  return this.userip;
 }
 public void setNowdate(String nowdate){
  this.nowdate=nowdate;
 }
 public String getNowdate(){
  return this.nowdate;
 }
 public void setTimes(int times){
  this.times=times;
 }
 public int getTimes(){
  return this.times;
 }
    public ResultSet checkuser(){
     String sql="select * from tb_newusercount where

user_ip='"+this.userip+"'";
     ResultSet rs=null;
     try{
      rs=db.search(sql);
         if(rs.next()){
          this.times=rs.getInt("user_times")+1;
          sql="update tb_newusercount set user_times="+this.times+" where

user_ip='"+this.userip+"'";
          db.dosql(sql);
         }
         else{
          this.times=1;
          sql="insert into tb_newusercount values('"+this.userip+"',1)";
          db.dosql(sql);
         }
         rs=db.search("select * from tb_newusercount");
     }catch(Exception e){e.printStackTrace();}
     return rs;
    }
    public void dbclose(){
     db.closed();
    }
}
index.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*" %>
<jsp:useBean id="mycount" class="com.count.Online.CountOnline"/>
<%
  String ip=request.getRemoteAddr();
  mycount.setUserip(ip);
  ResultSet rs=mycount.checkuser();
  rs.last();
  int num=rs.getRow();
%>
<html>
  <head>
    <title>只对新用户计数的计数器</title>
  <link rel="stylesheet" type="text/css" href="css/style.css">
  </head>
  <body>
    <center>
      <table height="90" width="200" border="1" bordercolor="black"

bordercolorlight="black" bordercolordark="white" cellspacing="0" style="margin-

top:200">
        <tr bgcolor="lightgrey">
         <td align="center">访问者IP地址</td>
         <td align="center">访问次数</td>
        </tr>
        <%
           rs.beforeFirst();
           while(rs.next()){
        %>
        <tr>
          <td align="center"><%=rs.getString("user_ip")%></td>
          <td align="center"><%=rs.getInt("user_times")%></td>
        </tr>
        <%
           }
        %>
        <tr>
         <td align="center" colspan="2">
           您的IP为:<%=ip%>
           <br>
           您的访问次数为:<%=mycount.getTimes()%>次
           <br>
           共有 <%=num%> 个新用户访问过本页(以ip计算有多少个用户访问过)
         </td>
        </tr>
      </table>
      <%
        mycount.dbclose();
      %>
    </center>
  </body>
</html>
 

JSP--课堂笔记(购物车、网站计数器) JSP实现购物车(部分) 1、实现商品展示界面(以下) <%@ page import="java.util.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> &l... 阅读详情

相关推荐

LeetCode-1107. 每日新用户统计(中等)

题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/new-users-daily-count 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 本人思路: – 1、按用户分组,找到每个用户首次登陆的日期(即登陆日期最早的),构成临时表temp – 2、再按日期筛选出符合时间限制的用户,并按日期分组来统计用户数 select min_activity_date as login_date, count(temp.user_id...

qq_42053453的博客 274

【PHP】简单的网站访问量计数器实现

简单的网站访问量计数器实现首先说明思路:1.用户向服务器发出访问请求 2.服务器读取访问次数文件,+1,向客户端返回 3.服务器保存新的浏览次数 4.新用户访问,重复123即可 解决方案(主要算法):1.数据文件:counter.dat 2.读出数据文件 打开文件; 如果不存在,创建,并以0为初识数据; 否则,读出数据; 关闭文件。 3.把累加后的数据写入文件coun...

码婆Doph 1万+

Leetcode力扣 MySQL数据库 1107 每日新用户统计

Leetcode力扣 MySQL数据库 1107 每日新用户统计

m0_46458212的博客 264

JSP计数

JSP计数器     许多地方都会用到的JSP计数器,希望对大家有帮助,做为收藏之用吧。计数器//同步更新计数器    synchronized void counter(){        ServletContext application=getServletContext();       //构造application对象(可选)        String szPath=a

不经历风雨怎么见彩虹 1343

jsp: 使用application对象实现网站计数

任务要求: 在一些站点中,经常会看到网站计数器的功能。要点: 网站的来访人数可能会很多,有可能超过20位整数,大整数类BigInteger 使用application范围的属性保存计数。 用户每次在第一次访问时才需要进行计数的操作,而重复刷新页面时则不应重复计数,使用isNew()判断用户是否是第一次访问。 Web开发属于多线程操作,所以在进行更改、保存时需要进行同步操作。 首先看一下普通的网站计数器 <%@ page language="java" contentType="text/html;

hey,欢迎浏览我的博客,希望能给你提供帮助。 8439

JSP内置对象—application实现网络访问计数

JSP内置对象——application 例:实现网络访问计数器 <body> <% int x; if(application.getAttribute("count")==null){ x=0; x++; application.setAttribute("count",x); } else{ x=(Integer) application.get...

qq_45686696的博客 723

简单的计数器(jsp)

     简易计数器                                String usercount;            request.getSession(true);            if (session.isNew()) {                count++;                usercount = String.valueOf(cou

孤毒天蝎的专栏 509

互联网大厂SQL真题(二)

互联网大厂SQL真题(二),日活及新用户占比。

linken01的博客 364

牛客sql练习 - 69

描述 牛客每天有很多人登录,请你统计一下牛客每个日期登录新用户个数 drop table if exists login; CREATE TABLE `login` ( `id` int(4) NOT NULL, `user_id` int(4) NOT NULL, `client_id` int(4) NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id`)); 考点 分组计数除了用count group by也可以用 sum(case ) # 对满足

theodorewy的博客 239

两个简单网站计数器的比较

第一个: [code="java"] 您是第位访问者!! [/code] 第二个: [code="java"] 网站统计 您是第位访客! [/code] 2个页面都是用application完成的一个网站的计数器操作,每次当有新的用户来的时候,就要求记录的数字加1,在...

浪漫国度 205

7重置mysql root_mysql创建新用户步骤及常见问题

mysql创建新用户步骤1.创建用户CREATE USER 'ying'@'%' identified by '123456';2.赋予用户权限GRANT ALL ON *.* TO 'ying'@'%' WITH GRANT OPTION;刷新权限flush PRIVILEGES;4.查询用户SELECT user,host,Password from mysql.`user` WHERE us...

weixin_33863049的博客 167

LeetCode MySQL 1107. 每日新用户统计

文章目录1. 题目2. 解题 1. 题目 Traffic 表: +---------------+---------+ | Column Name | Type | +---------------+---------+ | user_id | int | | activity | enum | | activity_date | date | +---------------+---------+ 该表没有主键,它可能有重复的行。 activity 列是

Michael是个半路程序员 945

JSP中Session的使用

JSP session使用方法 &lt;%@page contentType="text/html;charset=GB2312"%&gt;&lt;html&gt;  &lt;head&gt;  &lt;/head&gt;  &lt;body&gt;  &lt;%String s = session.getId(); //获取session ID号  %&gt;    &

weixin_33826268的博客 64

牛客SQL70 牛客每个人最近的登录日期(五)(最易懂题解)

请你写出一个sql语句查询每个日期新用户的次日留存率,结果保留小数点后面3位数(3位之后的四舍五入),并且查询结果按照日期升序排序 select date ,ifnull( round( (sum(case when (user_id,date_add(date, interval 1 day))in (select user_id,date

m0_56033865的博客 552

SharePoint站点点击量计数器Web部件

Sharepoint - Hit Counter Webpart

NetSuite 张老师 3332

独家 | ChatGPT Claude和Gemini 数据分析大比拼(第一部分)(下)

作者:Yu Dong翻译:陈之炎校对:付文欣 本文约2500字,建议阅读5分钟 十个问题帮你测试出哪个AI助手能写出最佳的SQL代码。4.2. 问题5:新用户计数提示:请帮我写一个SQL查询,计算每个月的首次用户数量。首次用户是指下第一个订单的用户。GPT-4o、Claude 3.5 Sonnet和Gemini Advanced:所有三个AI助手都提供了正确的查询,获得了满分。4.3. 问题6:...

数据派THU 1255

数据库脚本样例

1、登陆数据库 mysql -uroot -p'xxxxxx' --default-character-set=utf8; 2、导出数据库 mysqldump -uroot -proot fanfou > fanfou0816.sql 3、数据库表中插入新用户 insert into user (Host, User, Password) VALUES('%', 'skysip', PA

lotusagile的专栏 440

php带数据库的网页计数,php网页计数器的例子(文本与数据库)

先来看一个简易的php计数器,代码如下:复制代码 代码示例://php简易计数器function displayCounter() {$counterFile = "include/counter.txt"; //定义路径变量if (!file_exists($counterFile)) { //如果不存在,则创建文件并写入初值0exec( "echo 0 > $counterFile"...

weixin_29291863的博客 335

《React Retro Hit Counter》开源项目常见问题解决方案

《React Retro Hit Counter》开源项目常见问题解决方案 一、项目基础介绍 《React Retro Hit Counter》是一个开源项目,它旨在重现90年代风格的网页计数器。该计数器使用React框架进行开发,具有复古的视觉效果,可以轻易地嵌入任何网页中以增加趣味性。项目主要使用的编程语言是JavaScript。 二、新手常见问题及解决步骤 问题1:如何安装项目依赖 问题描述...

gitblog_00286的博客 323
上一篇: css
下一篇: javascript 实现的点击复制代码,运行代码
facepp
博客等级 码龄22年 342粉丝 638原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值