JSP 點擊量統(tǒng)計
jsp 點擊量統(tǒng)計
有時候我們需要知道某個頁面被訪問的次數(shù),這時我們就需要在頁面上添加頁面統(tǒng)計器,頁面訪問的統(tǒng)計一般在用戶第一次載入時累加該頁面的訪問數(shù)上。
要實現(xiàn)一個計數(shù)器,您可以利用應用程序隱式對象和相關方法getattribute()和setattribute()來實現(xiàn)。
這個對象表示jsp頁面的整個生命周期中。當jsp頁面初始化時創(chuàng)建此對象,當jsp頁面調(diào)用jspdestroy()時刪除該對象。
以下是在應用中創(chuàng)建變量的語法:
application.setattribute(string key, object value);
您可以使用上述方法來設置一個計數(shù)器變量及更新該變量的值。讀取該變量的方法如下:
application.getattribute(string key);
在頁面每次被訪問時,你可以讀取計數(shù)器的當前值,并遞增1,然后重新設置,在下一個用戶訪問時就將新的值顯示在頁面上。
實例演示
該實例將介紹如何使用jsp來計算特定頁面訪問的總人數(shù)。如果你要計算你網(wǎng)站使用頁面的總點擊量,那么你就必須將該代碼放在所有的jsp頁面上。
<%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <%@ page import="java.io.*,java.util.*" %> <html> <html> <head> <title>訪問量統(tǒng)計</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>
現(xiàn)在我們將上面的代碼放置于main.jsp文件上,并訪問http://localhost:8080/testjsp/main.jsp文件。你會看到頁面會生成個計數(shù)器,在我們每次刷新頁面時,計數(shù)器都會發(fā)生變化(每次刷新增加1)。
你也可以通過不同的瀏覽器訪問,計數(shù)器會在每次訪問后增加1。如下所示:復位計數(shù)器
使用以上方法,在 web 服務器重啟后,計數(shù)器會被復位為 0,即前面保留的數(shù)據(jù)都會消失,你可以使用以下幾種方式解決該問題:
- 在數(shù)據(jù)庫中定義一個用于統(tǒng)計網(wǎng)頁訪問量的數(shù)據(jù)表 count,字段為 hitcount,hitcount 默認值為0,將統(tǒng)計數(shù)據(jù)寫入到數(shù)據(jù)表中。
- 在每次訪問時我們讀取表中 hitcount 字段。
- 每次訪問時讓 hitcount 自增 1。
- 在頁面上顯示新的 hitcount 值作為頁面的訪問量。
- 如果你需要統(tǒng)計每個頁面的訪問量,你可以使用以上邏輯將代碼添加到所有頁面上。