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

统计点击量 JSP

A volte è necessario sapere il numero di volte che una pagina è stata visitata, in questo caso è necessario aggiungere un contatore di pagina sul sito. La statistica delle visite generalmente si accumula sul numero di visite della pagina durante il primo caricamento dell'utente.

Per implementare un contatore, è possibile utilizzare l'oggetto implicito dell'applicazione e i metodi getAttribute() e setAttribute().

Questa oggetto rappresenta l'intero ciclo di vita della pagina JSP. Questo oggetto viene creato quando la pagina JSP viene inizializzata e viene eliminato quando la pagina JSP chiama jspDestroy().

Ecco la sintassi per creare una variabile nell'applicazione:

application.setAttribute(String Key, Object Value);

È possibile utilizzare il metodo sopra descritto per impostare una variabile contatore e aggiornare il valore di questa variabile. Il metodo per leggere la variabile è il seguente:

application.getAttribute(String Key);

Ogni volta che la pagina viene visitata, è possibile leggere il valore corrente del contatore, aumentarlo di 1 e poi reimpostarlo, in modo che il nuovo valore venga visualizzato sulla pagina durante l'accesso successivo dell'utente.

Esempio di dimostrazione

Questo esempio spiega come utilizzare JSP per calcolare il numero totale di visite a una pagina specifica. Se si desidera calcolare il numero totale di clic su una pagina del proprio sito web, è necessario inserire questo codice su tutte le pagine JSP.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<html>
<head>
<title>Statistica delle visite</title>
</head>
<body>
<%
    Integer hitsCount = 
      (Integer)application.getAttribute("hitCounter");
    if( hitsCount == null || hitsCount == 0 ){
       /* Primo accesso */
       out.println("Benvenuto sul sito di tutorial di base!");
       hitsCount = 1;
    }
       /* 返回访问值 */
       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 值作为页面的访问量。

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