有時候我們需要知道某個頁面被訪問的次數(shù),這時我們就需要在頁面上添加頁面統(tǒng)計器,頁面訪問的統(tǒng)計一般在用戶第一次載入時累加該頁面的訪問數(shù)上。
要實現(xiàn)一個計數(shù)器,您可以利用應(yīng)用程序隱式對象和相關(guān)方法getAttribute()和setAttribute()來實現(xiàn)。
這個對象表示JSP頁面的整個生命周期中。當JSP頁面初始化時創(chuàng)建此對象,當JSP頁面調(diào)用jspDestroy()時刪除該對象。
以下是在應(yīng)用中創(chuàng)建變量的語法:
application.setAttribute(String Key, Object Value);
您可以使用上述方法來設(shè)置一個計數(shù)器變量及更新該變量的值。讀取該變量的方法如下:
application.getAttribute(String Key);
在頁面每次被訪問時,你可以讀取計數(shù)器的當前值,并遞增1,然后重新設(shè)置,在下一個用戶訪問時就將新的值顯示在頁面上。
該實例將介紹如何使用JSP來計算特定頁面訪問的總?cè)藬?shù)。如果你要計算你網(wǎng)站使用頁面的總點擊量,那么你就必須將該代碼放在所有的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>
現(xiàn)在我們將上面的代碼放置于main.jsp文件上,并訪問http://localhost:8080/main.jsp文件。你會看到頁面會生成個計數(shù)器,在我們每次刷新頁面時,計數(shù)器都會發(fā)生變化(每次刷新增加1)。 你也可以通過不同的瀏覽器訪問,計數(shù)器會在每次訪問后增加1。如下所示:
Welcome back to my website! Total number of visits: 12
使用以上方法,在web服務(wù)器重啟后,計數(shù)器會被復(fù)位為0,即前面保留的數(shù)據(jù)都會消失,你可以使用一下幾種方式解決該問題:
更多建議: