JSP 教程
1. JSP 教程 2. JSP 简介 3. JSP 开发环境搭建 4. JSP 结构 5. JSP 生命周期 6. JSP 语法 7. JSP 指令 8. JSP 动作元素 9. JSP 隐式对象 10. JSP 客户端请求 11. JSP 服务器响应 12. JSP HTTP 状态码 13. JSP 表单处理 14. JSP 过滤器 15. JSP Cookie 处理 16. JSP Session 17. JSP 文件上传 18. JSP 日期处理 19. JSP 页面重定向 20. JSP 点击量统计 21. JSP 自动刷新 22. JSP 发送邮件 23. JSP 标准标签库(JSTL) 24. JSP 连接数据库 25. JSP XML 数据处理 26. JSP JavaBean 27. JSP 自定义标签 28. JSP 表达式语言 29. JSP 异常处理 30. JSP 调试 31. JSP 国际化

JSP 点击量统计

JSP 点击量统计

有时候我们需要知道某个页面被访问的次数,这时我们就需要在页面上添加页面统计器,页面访问的统计一般在用户第一次载入时累加该页面的访问数上。

要实现一个计数器,您可以利用应用程序隐式对象和相关方法getAttribute()和setAttribute()来实现。

这个对象表示JSP页面的整个生命周期中。当JSP页面初始化时创建此对象,当JSP页面调用jspDestroy()时删除该对象。

以下是在应用中创建变量的语法:


application.setAttribute(String Key, Object Value);

您可以使用上述方法来设置一个计数器变量及更新该变量的值。读取该变量的方法如下:


application.getAttribute(String Key);

在页面每次被访问时,你可以读取计数器的当前值,并递增1,然后重新设置,在下一个用户访问时就将新的值显示在页面上。


实例演示

该实例将介绍如何使用JSP来计算特定页面访问的总人数。如果你要计算你网站使用页面的总点击量,那么你就必须将该代码放在所有的JSP页面上。


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ page import="java.io.*,java.util.*" %>

<html>

<html>

<head>

<title>访问量统计</title>

</head>

<body>

<%

    Integer hitsCount = 

      (Integer)application.getAttribute("hitCounter");

    if( hitsCount ==null || hitsCount == 0 ){

       /* 第一次访问 */

       out.println("欢迎访问!");

       hitsCount = 1;

    }else{

       /* 返回访问值 */

       out.println("欢迎再次访问!");

       hitsCount += 1;

    }

    application.setAttribute("hitCounter", hitsCount);

%>



<p>页面访问量为: <%= hitsCount%></p>





</body>

</html>

现在我们将上面的代码放置于main.jsp文件上,并访问http://localhost:8080/testjsp/main.jsp文件。你会看到页面会生成个计数器,在我们每次刷新页面时,计数器都会发生变化(每次刷新增加1)。

你也可以通过不同的浏览器访问,计数器会在每次访问后增加1。如下所示:


复位计数器

使用以上方法,在 web 服务器重启后,计数器会被复位为 0,即前面保留的数据都会消失,你可以使用以下几种方式解决该问题:

  • 在数据库中定义一个用于统计网页访问量的数据表 count,字段为 hitcount,hitcount 默认值为0,将统计数据写入到数据表中。
  • 在每次访问时我们读取表中 hitcount 字段。

  • 每次访问时让 hitcount 自增 1。
  • 在页面上显示新的 hitcount 值作为页面的访问量。

  • 如果你需要统计每个页面的访问量,你可以使用以上逻辑将代码添加到所有页面上。