以下內容引用自http://wiki.jikexueyuan.com/project/jsp/hits-counter.html:
一個點擊計數器能得知關於網站某個特定頁面的訪問量。假設人們第一次登陸主頁,通常在index.jsp頁面上設置一個點擊計數器。
可以使用Application隱式對象和相關方法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 ){ /* First visit */ out.println("Welcome to my website!"); hitsCount = 1; }else{ /* return visit */ 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中,並且使用URL:http://localhost:8080/main.jsp
來調用此JSP。每當刷新該頁面時,這將顯示的點擊計數器值會增加。可以嘗試使用不同的瀏覽器訪問該網頁,會發現每次點擊計數器將增加,顯示的結果如下:
計數器重置
如果重新啟動應用程序如Web服務器,這將重置應用程序變量,點擊計數器將重置為零。為了避免這種損失,可以用下面專業的方法實現點擊計數器:
-
定義一個帶有單一計數的數據庫表,叫做點擊量。設置它的值為0。
-
每次點擊,讀取該表得到點擊量的值。
-
點擊量加1,更新該表中的值。
-
顯示點擊計數器的新值作為總頁面的點擊量。
- 如果想計算所有頁面的點擊量,對所有的頁面實現上面的邏輯。
測試工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test14