English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

إحصاء النقرات في 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.*" %>



访问量统计


<%
    Integer hitsCount = 
      (Integer)application.getAttribute("hitCounter");
    if( hitsCount ==null || hitsCount == 0 ){
       /* 第一次访问 */
       out.println("欢迎访问基础教程网!");
       hitsCount = 1;
    }
       /* إرجاع القيمة الزيارة */
       out.println("مرحبًا بعودتك إلى موقع دليل الأساسيات!");
       hitsCount += 1;
    }
    application.setAttribute("hitCounter", hitsCount);
%>
<p>عدد زيارات الصفحة: <%= hitsCount%></p>
</body>
</html>

الآن سنقوم بوضع الكود المذكور أعلاه في ملف main.jsp ونسجله.http://localhost:8080/testjsp/main.jspملف. سترى أن الصفحة تولد معادلة، وستتغير المعادلة في كل مرة نقوم بتحديث الصفحة (زيادة المعادلة مرة واحدة في كل تحديث).

يمكنك أيضًا زيارة الموقع من خلال متصفحات مختلفة، حيث سيتم زيادة المعادلة بعد كل زيارة. كما يظهر في المثال التالي:

إعادة تعيين المعادلة

باستخدام هذه الطريقة، سيتم إعادة تعيين معادلة الحساب بعد إعادة تشغيل خادم الويب، مما يؤدي إلى فقدان البيانات المحفوظة مسبقًا، يمكنك حل هذه المشكلة باستخدام الطرق التالية:

  • تعريف جدول بيانات count في قاعدة البيانات لتحليل عدد زيارات الصفحة، الحقل هو hitcount، القيمة الافتراضية لـ hitcount هي 0، وسيتم كتابة البيانات التحليلية في الجدول.

  • نقرأ حقل hitcount في كل زيارة.

  • زيادة hitcount بـ 1 في كل زيارة.

  • اعرض قيمة hitcount الجديدة كعدد الزيارات للصفحة.

  • إذا كنت بحاجة إلى تتبع عدد الزيارات لكل صفحة، يمكنك استخدام هذه اللógica لإضافة الكود إلى جميع الصفحات.