有時候我們需要知道某個頁面被訪問的次數,這時我們就需要在頁面上添加頁面統計器,頁面訪問的統計一般在用戶第一次載入時累加該頁面的訪問數上。
要實作一個計數器,您可以利用應用程式隱式物件和相關方法getAttribute()和setAttribute()來實作。
這個物件表示JSP頁面的整個生命週期中。當JSP頁面初始化時建立此對象,當JSP頁面呼叫jspDestroy()時刪除該對象。
以下是在應用程式中建立變數的語法:
application.setAttribute(String Key, Object Value);您可以使用上述方法來設定一個計數器變數及更新該變數的值。讀取該變數的方法如下:
application.getAttribute(String Key);在頁面每次被造訪時,你可以讀取計數器的目前值,並遞增1,然後重新設置,在下一個使用者造訪時就將新的值顯示在頁面上。
這個實例將介紹如何使用JSP來計算特定頁面造訪的總人數。如果你要計算你網站使用頁面的總點擊量,那麼你就必須將該程式碼放在所有的JSP頁面上。
<%@ page import="java.io.*,java.util.*" %><html><head><title>Applcation object in JSP</title></head><body><% Integer hitsCount = (Integer)application.getAttribute("hitCounter"); if( hitsCount ==null || hitsCount == 0 ){ /*第一次造訪*/ out.println("Welcome to my website!"); hitsCount = 1; }else{ /* 傳回存取值*/ out.println("Welcome back to my website!"); hitsCount += 1; } application.setAttribute("hitCounter", hitsCount); %><center><p>Total number of visits: <%= hitsCount%></p></center></body></html>
現在我們將上面的程式碼放置在main.jsp檔案上,並造訪http://localhost:8080/main.jsp檔案。你會看到頁面會產生個計數器,在我們每次刷新頁面時,計數器都會改變(每次刷新增加1)。 你也可以透過不同的瀏覽器訪問,計數器會在每次訪問後增加1。如下圖所示:
Welcome back to my website!Total number of visits: 12使用以上方法,在web伺服器重啟後,計數器會被重設為0,也就是前面保留的資料都會消失,你可以用一下幾種方式解決該問題:
在資料庫中定義一個用於統計網頁存取量的資料表count,欄位為hitcount,hitcount預設值為0,將統計資料寫入到資料表中。
在每次訪問時我們讀取表中hitcount字段。
每次造訪時讓hitcount自增1。
在頁面上顯示新的hitcount 值作為頁面的造訪量。
如果你需要統計每個頁面的訪問量,你可以使用以上邏輯將程式碼加入所有頁面。