精华内容
下载资源
问答
  • JSP使用网站访问人数统计功能,方法与技巧   实现网站访问人数统计功能的步骤:  创建静态登录页面,并指定表单提交由登录处理页面进行处理。创建登录处理页面获得登录信息,查询数据库,判断该用户...
     
    

    实现网站访问人数统计功能的步骤:                                        

    1. 创建静态登录页面,并指定表单提交由登录处理页面进行处理。
    2. 创建登录处理页面获得登录信息,查询数据库,判断该用户是否注册,如果该用户已注册,把已登录用户的信息保存在一个全局范围内。
    3. 在新闻发布系统左导航栏中加入超链接,用来导航到右侧的已访问人数统计页面。
    4. 创建已访问人数统计页面,从全局范围内取出访问者个数并显示。        

     

    需求:                                                              

      为**系统增加已访问人数统计功能。

    关键代码:                                                           

    1、创建静态登录页面login2.html        

    1 <form method="POST" name="form1" action="login2.jsp"> 

    2、创建登录处理页面login2.jsp,把已登录用户的信息保存在一个全局范围内        

    if (rs.next()) {         
       User logineduser = new User(name, pass);         
       session.setAttribute("LOGINED_USER", logineduser);         
       List loginedUsers = new ArrayList();  //访问者列表         
       if (application.getAttribute("LOGINED_USER") != null) {
           // 从全局范围内取出原有的访问者列表         
          loginedUsers = (List) application.getAttribute("LOGINED_USER");         
        }         
        // 把新登录用户的信息存入访问者列表中         
       loginedUsers.add(logineduser);         
       application.setAttribute("LOGINED_USER", loginedUsers);
       response.sendRedirect("index.jsp");         
    } 

    3、在新闻发布系统左导航left.jsp页面中加入超链接         

    1 <a href="showAllLoginedUsers.jsp" target="mainFrame">已访问人数统计</a>        

    4、创建已访问人数统计页面showAllLoginedUsers.jsp        

    <html>         
    <%                     
       // 访问者列表         
      List loginedUsers = new ArrayList();                     
       // 从全局范围内取出访问者列表                     
      if (application.getAttribute("LOGINED_USER") != null) {
          loginedUsers = (List) application.getAttribute("LOGINED_USER");
       }
    %>
    <body>
      <p align="center"><br><br><br>         
       目前,有<%=loginedUsers.size()%>人已经访问过本网站!<br><br>         
       访问者的登录名称分别是:<br>
       <% 
            for (int i = 0; i < loginedUsers.size(); i++) {
                User logineduser = (User) loginedUsers.get(i);
                out.print(logineduser.getName());
                out.print("<br/>");
            }
        %>
       </p>
    </body>
    </html>

     

    实现网站访问人数统计功能的方法和技巧                                   

    1. application对象是全局对象,存放在服务器端,供访问该网站的所有用户共享,所以很耗服务器资源,一般在网站用户访问量较小的情况下使用application对象。
    2. 使用application全局变量来存储已访问用户的信息集合,在读取和更改集合时都要对application对象进行强制类型转换。
    3. 当重新开启一个浏览器窗口,已访问人数会增加,并在页面上显示出这个用户的信息。
    4. 网站一旦因意外重启,则application对象将被重置,计数从0开始,所以通常将统计已访问用户信息存放到数据库中。

     

    不使用实现网站访问人数统计功能的方法和技巧的后果                       

    1. 如果用户访问人数过多,使用application对象来存储已访问用户信息,容易导致服务器负载过重而死机。
    2. 使用application对象不进行强制类型转换,会引发程序运行错误。
    3. 网站一旦因意外重启,application对象将被重置,计数从0开始,导致以往已访问网站用户的历史记录丢失。
    2 
    0 

    展开全文
  • 满意答案yxljm2019.11.10采纳率:59%等级:9已帮助:1010人魔兽世界怀旧服人口调查能够查询到截至游戏开服以来各个服务器的人口数量,那么大家都知道怎么查询吗?每个服务器的人口以及种族比例是多少呢?想知道的玩家...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    yxljm

    2019.11.10

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:59%    等级:9

    已帮助:1010人

    魔兽世界怀旧服人口调查能够查询到截至游戏开服以来各个服务器的人口数量,那么大家都知道怎么查询吗?每个服务器的人口以及种族比例是多少呢?想知道的玩家就一起来看看吧!

    魔兽世界怀旧服人口数量怎么查询?人口普查详情介绍

    人口普查

    (以下数据均截止到2019年9月11日)

    人口普查

    大家都知道测试服有两个服务器,分别是PVE和PVP,PVP服不出意料的飘红。从压力测试玩家的选择,其实可以看出以后国服方面的种族人数了。

    联盟方面的种族,侏儒较多,次之人类,剩下的其他种族则比较少的玩家出现,人类可以说是压力测试里面的联盟人数最活跃的种族了。

    而部落方面,也是一边倒的选择。亡灵种族在测试服开启的第一时间进入游戏就出现卡顿现象,出墓地出来,一路都是刚进入游戏的玩家。

    霜语 联盟:2300 部落:3800

    帕奇维克 联盟:1297 部落:3680

    毁灭之刃 联盟:1161 部落:1955

    灰烬使者 联盟:439 部落:401

    范克瑞斯 联盟:3612 部落:1834

    哈霍兰 联盟:4961 部落:2722

    奥罗 联盟:2627 部落:3106

    布鲁 联盟:560 部落:4916

    以上是利用拍卖行数据测试服务器的人口,仅供比例参考,数量肯定不止这些,看看比例就好。

    04分享举报

    展开全文
  • 统计网站访问人数

    千次阅读 2019-12-23 16:11:51
    // 执行SQL查询,返回结果集 ResultSet rs = pstmt.executeQuery(); // 判断结果集里是否有记录 if (rs.next()) { flag = true; } } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭...

    1.创建Web项目ApplicationDemo
    2.在在WEB-INF目录里创建lib目录,添加数据库驱动程序jar包
    在这里插入图片描述
    3.在web目录里修改首页index.jsp内容
    在这里插入图片描述
    4.在web里创建登录页面login.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
    
    <html>
    <head>
        <title>用户登录</title>
    </head>
    <body>
    <h3 style="text-align: center">用户登录</h3>
    <form action="do_login.jsp" method="post">
        <table border="1" cellpadding="10" style="margin: 0px auto">
            <tr>
                <td align="center">用户名</td>
                <td><input type="text" name="username"/></td>
            </tr>
            <tr>
                <td align="center">密&nbsp;码</td>
                <td><input type="password" name="password"/></td>
            </tr>
            <tr align="center">
                <td colspan="2">
                    <input type="submit" value="登录"/>
                    <input type="reset" value="重置"/>
                </td>
            </tr>
        </table>
    </form>
    <%
        String errMsg = (String) session.getAttribute("errMsg");
        if (errMsg != null) {
            out.println("<script>alert('" + errMsg + "')</script>");
        }
    %>
    </body>
    </html>
    
    

    5.导入数据库

    /*
     Navicat Premium Data Transfer
     Source Server         : java_mysql
     Source Server Type    : MySQL
     Source Server Version : 50562
     Source Host           : localhost:3306
     Source Schema         : hwdb
     Target Server Type    : MySQL
     Target Server Version : 50562
     File Encoding         : 65001
     Date: 23/10/2019 10:24:35
    */
     
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
     
    -- ----------------------------
    -- Table structure for t_user
    -- ----------------------------
    DROP TABLE IF EXISTS `t_user`;
    CREATE TABLE `t_user`  (
      `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号',
      `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
      `password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
     
    -- ----------------------------
    -- Records of t_user
    -- ----------------------------
    INSERT INTO `t_user` VALUES (1, 'admin', 'admin');
    INSERT INTO `t_user` VALUES (2, '无心剑', '903213');
    INSERT INTO `t_user` VALUES (3, '陈雨欣', '111111');
    INSERT INTO `t_user` VALUES (4, '李云剑', '123456');
     
    SET FOREIGN_KEY_CHECKS = 1;
    

    在这里插入图片描述
    6.在在src里创建net.hw.bean包,创建用户实体类User

    package net.xmh.bean;
    
    public class User {
        private int id;
        private String username;
        private String password;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    
        @Override
        public boolean equals(Object obj) {
            return username.equals(((User) obj).getUsername())
                    && password.equals(((User) obj).getPassword());
        }
    }
    

    7.在src里创建net.hw.dbutil包,在里面创建ConnectionManager类

    package net.xmh.dbutil;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    /**
     * 功能:数据库连接管理类
     * 作者:xmh
     * 日期:2019年10月21日
     */
    public class ConnectionManager {
        // 定义连接数据库的参数值
        private static final String DRIVER = "com.mysql.jdbc.Driver";
        private static final String URL = "jdbc:mysql://localhost:3306/xmhdb";
        private static final String USER = "root";
        private static final String PASSWORD = "123456";
    
        /**
         * 私有化构造方法,拒绝实例化
         */
        private ConnectionManager() {
        }
    
        /**
         * 获取数据库连接静态方法
         *
         * @return 数据库连接
         */
        public static Connection getConnection() {
            // 声明数据库连接
            Connection conn = null;
    
            try {
                // 安装数据库驱动程序
                Class.forName(DRIVER);
                // 获取数据库连接
                conn = DriverManager.getConnection(URL, USER, PASSWORD);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            // 返回数据库连接
            return conn;
        }
    
        /**
         * 关闭数据库连接静态方法
         *
         * @param conn 数据库连接
         */
        public static void closeConn(Connection conn) {
            if (conn != null) {
                try {
                    if (!conn.isClosed()) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    

    注意:修改数据库名称,用户名,密码
    在这里插入图片描述
    8.在src里创建net.hw.dao包,在里面创建用户数据访问接口UserDao

    package net.xmh.dao;
    
    /**
     * 功能:用户数据访问接口
     * 作者:xmh
     * 日期:2019年10月23日
     */
    public interface UserDao {
        /**
         * 登录方法
         *
         * @param username
         * @param password
         * @return true - 登录成功;false - 登录失败
         */
        boolean login(String username, String password);
    }
    
    

    9.在user.hw.dao里创建impl子包,在里面创建用户数据访问接口实现类UserDaoImpl

    package net.xmh.dao.impl;
    
    import net.xmh.dao.UserDao;
    import net.xmh.dbutil.ConnectionManager;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    /**
     * 功能:用户数据访问接口实现类
     * 作者:xmh
     * 日期:2019年10月23日
     */
    public class UserDaoImpl implements UserDao {
        @Override
        public boolean login(String username, String password) {
            // 定义标识变量
            boolean flag = false;
    
            // 获取数据库连接
            Connection conn = ConnectionManager.getConnection();
            // 定义SQL字符串
            String strSQL = "select * from t_user where username = ? and password = ?";
            try {
                // 创建预备语句对象
                PreparedStatement pstmt = conn.prepareStatement(strSQL);
                // 设置占位符的值
                pstmt.setString(1, username);
                pstmt.setString(2, password);
                // 执行SQL查询,返回结果集
                ResultSet rs = pstmt.executeQuery();
                // 判断结果集里是否有记录
                if (rs.next()) {
                    flag = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                // 关闭数据库连接
                ConnectionManager.closeConn(conn);
            }
    
            // 返回标识变量
            return flag;
        }
    }
    
    

    10.在web目录里创建登录处理页面do_login.jsp

    <%@ page import="net.xmh.dao.UserDao" %>
    <%@ page import="net.xmh.dao.impl.UserDaoImpl" %>
    <%@ page import="net.xmh.bean.User" %>
    <%@ page import="java.util.List" %>
    <%@ page import="java.util.ArrayList" %>
    <%@ page import="java.net.URLEncoder" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    <%
        // 设置请求对象字符编码
        request.setCharacterEncoding("utf-8");
    
        // 获取登录表单提交的数据
        String username = request.getParameter("username");
        String password = request.getParameter("password");
    
        // 创建用户访问对象
        UserDao userDao = new UserDaoImpl();
        // 判断用户是否登录成功
        if (userDao.login(username, password)) {
            // 创建登录用户对象
            User loginedUser = new User();
            // 设置用户对象属性
            loginedUser.setUsername(username);
            loginedUser.setPassword(password);
            // 创建用户列表对象
            List<User> loginedUsers = new ArrayList<>();
            // 判断application里是否有登录用户列表
            if (application.getAttribute("LOGINED_USERS") == null) {
                // 在application里添加登录用户列表
                application.setAttribute("LOGINED_USERS", loginedUser);
            } else {
                // 从application里取出登录用户列表
                loginedUsers = (List<User>) application.getAttribute("LOGINED_USERS");
            }
            if (!loginedUsers.contains(loginedUser)) {
                // 将当前登录成功的用户添加到登录用户列表
                loginedUsers.add(loginedUser);
                // 更新application里登录用户列表属性值
                application.setAttribute("LOGINED_USERS", loginedUsers);
            }
            // 清除session里errMsg属性
            if (session.getAttribute("errMsg") != null) {
                session.removeAttribute("errMsg");
            }
            // 采用重定向,跳转到登录成功页面
            response.sendRedirect("success.jsp?username=" + URLEncoder.encode(username, "utf-8"));
        } else {
            // 创建session属性errMsg
            session.setAttribute("errMsg", "用户名或密码错误,请重新登录!");
            // 采用重定向,跳转到登录页面
            response.sendRedirect("login.jsp");
        }
    %>
    

    11.在web目录里创建登录成功页面success.jsp

    <%@ page import="net.xmh.bean.User" %>
    <%@ page import="java.util.List" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>登录成功</title>
    </head>
    <body>
    <h3><%= request.getParameter("username") %>,登录成功!</h3>
    <%
        List<User> loginedUsers = (List<User>) application.getAttribute("LOGINED_USERS");
    %>
    目前,已有<%= loginedUsers.size() %>人访问过本网站。
    </body>
    </html>
    

    12.启动服务器
    在这里插入图片描述
    在这里插入图片描述
    再次登录
    在这里插入图片描述

    展开全文
  • 统计网站访问人数及当前在线人数

    千次阅读 2018-11-09 22:08:02
     统计网站访问人数及当前在线人数        ! Integer yourNumber=new Integer(0); %>  (session.isNew()){  Integer number=(Integer)application.getAttribute("Count");  if(number==null){  ...

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>统计网站访问人数及当前在线人数</title>
      </head>
      
      <body>
        <%! Integer yourNumber=new Integer(0); %>
        <% if(session.isNew()){
        Integer number=(Integer)application.getAttribute("Count");
        if(number==null){
        number=new Integer(1);}
        else
        {number=new Integer(number.intValue()+1);}
        application.setAttribute("Count",number);
        yourNumber=(Integer)application.getAttribute("Count");
        }
         %>
         欢迎访问本站,您是第<%=yourNumber %>个访问用户。
      </body>
    </html>

    展开全文
  • 如何统计网站的在线人数呢?

    万次阅读 2016-12-13 23:19:56
    如何统计网站的在线人数呢? 首先很简单的思想就是,如果只针对会员用户进行统计,在登录登出时加判断,然后维护一个表(或者其他存储方式)来存储在线会员即可。 但是有个问题就是,对于正常退出的会员当然可以...
  • 使用 Redis 统计在线用户人数

    万次阅读 2018-05-16 20:54:05
    使用 Redis 统计在线用户人数在构建应用的时候, 我们经常需要对用户的一举一动进行记录, 而其中一个比较重要的操作, 就是对在线的用户进行记录。本文将介绍四种使用 Redis 对在线用户进行记录的方案, 这些方案...
  • 可以直接统计出网站当前的在线人数。首先是创建MYSQL数据库表。以下为引用的内容:CREATE TABLE tablename (field type(max_length) DEFAULT default_value (NOT) NULL}Tiffany TEARDROP Earrings Tiffany LOVING HE
  • oracle查询员工人数最少的部门

    千次阅读 2012-10-18 16:48:02
    第一步:select count(*) coun,d_id deptId from t_emp group by d_id 查询t_emp表,根据部门d_id分组查询各部门的人数以d_id 第二步:select count(*) coun,d_id deptId from t_emp group by d_id order by coun...
  • 关于统计在线人数,第一反应想到的是创建一个大型字典存储用户id与对应的状态,但是这种方法耗费空间大,效率较低。 通过学习 redis 想到更高效的方法。 原理:通过将用户 id 作为位数,每次上线则将该位设为 1,...
  • NEST是.NET下使用Elasticsearch的高层客户端程序,对Elasticsearch进行了很多封装,支持DSL强类型查询。 下面是.NET CORE的一个简单示例 1.新建一个 .Net Core ...2.创建POPC类,网站在线人数 public class...
  • 网站做好了,领导让求几个指标,网上找了许久。 两个思路: 1,百度腾讯等,提供了统计的产品接口,可以直接使用,十分方便。 但是使用的方式是把数据放到他们的服务器上让他们去分析,这个接受不了。 2,网上的大致...
  • 基于MySQL+PHP的羽球费用查询网站
  • 1.每当用户登录到网站时,会创建一个session,session存储着用户信息,因此,我们需要设置一个session相关的监听器,在编译器中创建一个listener. 选中changes to attribute框,然后Finish,会看到自定义的监听器...
  • 从全球移动互联网网民的上网习惯上来看,周一上网人数最多,随后逐日下降,周六开始形成二次高峰。 二、全球移动互联网行为地图 从全球移动互联网用户使用习惯上,我们可以发现一些非常有趣的数据: 日本人平均每天...
  • maven 版本依赖、版本更新、版本查询网站: https://mvnrepository.com/ https://mvnrepository.com/
  • qwquiver A website for exploring and analyzing exam ...构建排名(高考录取人数排名风格) 适配手机端 响应式页面 Quick Start # 运行服务器 $ qwquiver serve # 考试管理 $ qwquiver exam # 列出所有考试 $ qwquiv
  • 考试人数实现新突破。全市普通高中共有43238人参加考试,居全省第二,比2017年42120人增加1118人,增长2.64%;一本人数实现新突破。全市一本上线4339人,比2017年的3689人增加650人,增长17.6%;一本上线率为10.04%...
  • 如果某些网站提供一些查询服务,这些数据可能在同一时间被多个用户访问,如果不采取措施,数据库可能会因为大量的访问而崩溃。下面的代码主要是解决在同一时刻,仅允许队列的前十进入相关操作,而其他的用户只能等待...
  • 友盟官方网站:http://www.umeng.com/ 1.先上两张张效果图 1.1首页 当点击下图中,红色选框中的图片后,会跳出网站访问流量统计界面(这个功能是第三方应用集成好...2.使用友盟 2.1在友盟官网首页,点击产品>>U-Web(网
  • java 实现统计在线人数

    千次阅读 2012-11-13 11:09:39
    对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的。  1、实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作。 public class SessionListener ...
  • 判断真实在线人数

    2012-01-30 17:02:30
    简要思路,并非代码类文档,看了后就明白了
  • http://mvnrepository.com/ps:maven学习:https://www.yiibai.com/maven/include-library-manully-into-maven-local-repository.html
  • java web监听器统计在线用户及人数

    万次阅读 多人点赞 2016-11-18 16:04:51
    在线用户使用HttpSessionListener监听器统计 每当一个session会话建立 在线用户人数+1 每当一个session会话销毁 在线用户人数-1 使用ServletRequestListener监听器统计用户信息 每当一个request建立 将当前用户放...
  • 统计在线用户及人数

    千次阅读 2017-09-16 20:01:15
    统计在线用户人数 首先要明白这个状态“统计在线用户人数”是伴随该web应用程序的整个生命历程,那么这个状态则应该存储到application域对象的属性中,当用户访问时人数加1并添加到application域对象的属性中,...
  • 我们可以通过ServletContextListener完成在线人数的统计和显示在线人数列表,首先listener和filter一样要在web.xml中进行描述。 代码如下: <listener> <listener-class>...
  • 一款游戏能够持续五年已经实属不易,而可以长达十年经久不衰,更是少之又少,而如今LOL已经走过了10个年头,2021年底就要过11岁生日...根据数据网站OPGG的统计,最近的一个周末,也就是昨天,全球各个服务器(未包括...
  • 这是整个10区的:人数最多服务器服务器 联盟人数 部落人数人数 相差比例安苏 12145 14336 26481 8.27%末日行者 18767 5616 24383 53.94%壁炉谷 23708 186 23894 98.44%贫瘠之地 12498 10723 23221 7.64%人数...
  • 数据库查询总结

    千次阅读 多人点赞 2019-09-18 15:57:17
    网站的开发基本上大多数时间都是用在对数据的增删查改上。 一.数据库查询知识框图 虽然查询方法大体上可以做出如上图分类,但通过学习你会发现其实许多种查询方法是相互交叉的运用的。 二.单表查询 单表查询...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,074
精华内容 7,229
关键字:

网站使用人数查询