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

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

需求:

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

关键代码:

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>

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

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

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

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

JSP使用网站访问人数统计功能,方法与技巧的更多相关文章

  1. 【JAVA系列】使用JavaScript实现网站访问次数统计代码

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[JAVA系列]使用JavaScript实现网站 ...

  2. jsp网站访问次数统计

    JSP 点击量统计 有时候我们需要知道某个页面被访问的次数,这时我们就需要在页面上添加页面统计器,页面访问的统计一般在用户第一次载入时累加该页面的访问数上. 要实现一个计数器,您可以利用应用程序隐式对 ...

  3. servlet过滤器--使用过滤器统计网站访问人数的计数(注解形式)

    文章目录 1.什么是过滤器? 2.过滤器核心对象 3.过滤器创建和配置 4.举例子 1.什么是过滤器? 主要用于对客户端的请求进行过滤处理,再将经过过滤后的请求转交给下一个资源. 2.过滤器核心对象 ...

  4. Asp.Net 网站访问人数及在线人数

    利用Application对象和Session对象可以统计历史访问人数和当前在线人数. 在会话开始和结束时,一定要进行加锁和解锁操作.由于多个用户可以共享Application对象,因此加锁是必要的, ...

  5. jsp网站访问次数统计的几种方法

    我采用的是jsp网页,但是不管采用什么语言,原理是一样的. 第一种,单页面统计.就是说,只要点击这个页面就会统计一次. <body> <%!//在这种标记中定义的变量为全局变量 in ...

  6. application 统计网站访问人数

    参考书<JSP Web 开发案例教程> index.jsp welcome.jsp 显示

  7. 013. asp.net统计网站访问人数

    Global.asax中的代码: <%@ Application Language="C#" %> <script runat="server" ...

  8. 26种提高ASP.NET网站访问性能的优化方法 .

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池 ...

  9. 使用国外 DNS 造成国内网站访问慢的解决方法

    本文原载于 wzyboy's blog,转载请注明本文地址: https://wzyboy.im/post/874.html ,谢谢合作. 为什么要用国外 DNS 由于众所周知的问题,国内 DNS 服 ...

随机推荐

  1. C#调用C++dll文件 运行提示找不到函数的入口点

    1.首先用DllAnalyzer查看dll的输出函数名,发现输出的函数名有所变化,多了@xxx和一些别的奇怪的字符,实际上是因为C++重载机制造成的,使用使用extern "C"关 ...

  2. XML序列化和反序列化(C#)

    主要参考资料: http://www.codeproject.com/Articles/483055/XML-Serialization-and-Deserialization-Part-1 http ...

  3. 在使用add()方法添加组件到容器时,必须指定将其放置在哪个区域中

    BorderLayout是Window.Frame和Dialog的默认布局管理器,其将容器分成North.South.East.West和Center 5个区域,每个区域只能放置一个组件. 在使用ad ...

  4. MemoryStream类读写内存

    和FileStream一样,MemoryStream和BufferedStream都派生自基类Stream,因此它们有很多共同的属性和方法,但是每一个类都有自己独特的用法.这两个类都是实现对内存进行数 ...

  5. 华为OJ平台试题 —— 数组:输入n个整数,输出当中最小的k个

    输入n个整数.输出当中最小的k个: 代码: /*  * 输入n个整数,输出当中最小的k个.  * 输入说明:1.输入两个整数:2.输入一个整数数组  * 输出说明:输出一个整数数组  */ <p ...

  6. 蓝桥杯 第三届C/C++预赛真题(10) 取球游戏(博弈)

    今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断. 我们约定: 每个人从盒子中取出的球的数目必须是:1 ...

  7. git & github 菜鸟笔记

    1.概念: 最先进的分布式版本控制系统 文件修改该提交的内容:---版本 文件名 用户 说明 日期 GitHub网站上线了,它为开源项目免费提供Git存储 --CVS及SVN都是集中式的版本控制系统, ...

  8. [Linux 学习] Centos 图形和命令行界面切换

    要想切换图形界面和命令行界面切换, 需修改一个文件... root 下, 到 /etc/inittab 修改 id:5:initdefault Linux系统有7个运行级别(runlevel): 运行 ...

  9. hdu 2074 叠筐 好有意思的绘图题

    叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  10. Java Cache

    Ehcache http://www.ehcache.org/ Memcached http://memcached.org/ Server http://blog.couchbase.com/mem ...