JSP使用网站访问人数统计功能,方法与技巧
实现网站访问人数统计功能的步骤:
- 创建静态登录页面,并指定表单提交由登录处理页面进行处理。
- 创建登录处理页面获得登录信息,查询数据库,判断该用户是否注册,如果该用户已注册,把已登录用户的信息保存在一个全局范围内。
- 在新闻发布系统左导航栏中加入超链接,用来导航到右侧的已访问人数统计页面。
- 创建已访问人数统计页面,从全局范围内取出访问者个数并显示。
需求:
为**系统增加已访问人数统计功能。
关键代码:
1、创建静态登录页面login2.html
- <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页面中加入超链接
- <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>
实现网站访问人数统计功能的方法和技巧
- application对象是全局对象,存放在服务器端,供访问该网站的所有用户共享,所以很耗服务器资源,一般在网站用户访问量较小的情况下使用application对象。
- 使用application全局变量来存储已访问用户的信息集合,在读取和更改集合时都要对application对象进行强制类型转换。
- 当重新开启一个浏览器窗口,已访问人数会增加,并在页面上显示出这个用户的信息。
- 网站一旦因意外重启,则application对象将被重置,计数从0开始,所以通常将统计已访问用户信息存放到数据库中。
不使用实现网站访问人数统计功能的方法和技巧的后果
- 如果用户访问人数过多,使用application对象来存储已访问用户信息,容易导致服务器负载过重而死机。
- 使用application对象不进行强制类型转换,会引发程序运行错误。
- 网站一旦因意外重启,application对象将被重置,计数从0开始,导致以往已访问网站用户的历史记录丢失。
JSP使用网站访问人数统计功能,方法与技巧的更多相关文章
- 【JAVA系列】使用JavaScript实现网站访问次数统计代码
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[JAVA系列]使用JavaScript实现网站 ...
- jsp网站访问次数统计
JSP 点击量统计 有时候我们需要知道某个页面被访问的次数,这时我们就需要在页面上添加页面统计器,页面访问的统计一般在用户第一次载入时累加该页面的访问数上. 要实现一个计数器,您可以利用应用程序隐式对 ...
- servlet过滤器--使用过滤器统计网站访问人数的计数(注解形式)
文章目录 1.什么是过滤器? 2.过滤器核心对象 3.过滤器创建和配置 4.举例子 1.什么是过滤器? 主要用于对客户端的请求进行过滤处理,再将经过过滤后的请求转交给下一个资源. 2.过滤器核心对象 ...
- Asp.Net 网站访问人数及在线人数
利用Application对象和Session对象可以统计历史访问人数和当前在线人数. 在会话开始和结束时,一定要进行加锁和解锁操作.由于多个用户可以共享Application对象,因此加锁是必要的, ...
- jsp网站访问次数统计的几种方法
我采用的是jsp网页,但是不管采用什么语言,原理是一样的. 第一种,单页面统计.就是说,只要点击这个页面就会统计一次. <body> <%!//在这种标记中定义的变量为全局变量 in ...
- application 统计网站访问人数
参考书<JSP Web 开发案例教程> index.jsp welcome.jsp 显示
- 013. asp.net统计网站访问人数
Global.asax中的代码: <%@ Application Language="C#" %> <script runat="server" ...
- 26种提高ASP.NET网站访问性能的优化方法 .
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池 ...
- 使用国外 DNS 造成国内网站访问慢的解决方法
本文原载于 wzyboy's blog,转载请注明本文地址: https://wzyboy.im/post/874.html ,谢谢合作. 为什么要用国外 DNS 由于众所周知的问题,国内 DNS 服 ...
随机推荐
- Spark1.5堆内存分配
这是spark1.5及以前堆内存分配图 下边对上图进行更近一步的标注,红线开始到结尾就是这部分的开始到结尾 spark 默认分配512MB JVM堆内存.出于安全考虑和避免内存溢出,Spark只允许我 ...
- Python Excel 导入导出【转】
一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 二.使用介绍 1.导入模块 import x ...
- ubus
openwrt提供了一个系统总线ubus,类似linux桌面操作系统的d-bus,目标是提供系统级的进程间通信(IPC)功能. 为了提供各种后台进程和应用程序之间的通信机制,ubus被开发出来,由3部 ...
- shell30题之第一题
1.1.1 Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下 ...
- 01 Servlet & Jsp 技术概述
Servlet 介绍 servlet 是运行在web服务器或应用服务器上的java程序, 它是一个中间层, 负责连接来自web浏览器或其他http客户端的请求和HTTP服务器上的数据库或应用程序. 为 ...
- TaskTracker学习笔记
转自:http://blog.csdn.net/androidlushangderen/article/details/41477061 上次分析完JobTracker通过TaskScheduler如 ...
- <!>字体效果
<h1>...</h1>标题字(最大) <h6>...</h6>标题字(最小) <b>...</b>粗体字 <strong ...
- scrollHeight、clientHeight、offsetHeight、scrollTop等的定义以及图解
开发中经常遇到使用scrollHeight.scrollTop.clientHeight.offsetHeight等的情况,网上有众多关于这些属性的解释,但是并不全面和直观,现在将这些属性结合图例整理 ...
- linux系统web项目运行环境搭建
允许本地访问端口:iptables -P OUTPUT ACCEPT MySQL数据库安装1.yum install mysql 2.yum install mysql-server 3.删除MySQ ...
- Django admin 注册多个app
class game(models.Model): content = models.TextField() def __str__(self): return 'To game %s' % self ...