English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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 值作为页面的访问量。
如果你需要统计每个页面的访问量,你可以使用以上逻辑将代码添加到所有页面上。