JSP - 訪問計數器



在本章中,我們將討論 JSP 中的訪問計數器。訪問計數器會告訴您網站特定頁面被訪問的次數。通常,您會將訪問計數器附加到您的 index.jsp 頁面,假設人們首先訪問您的主頁。

要實現訪問計數器,您可以使用 Application 隱式物件以及關聯的方法 getAttribute()setAttribute()

此物件在 JSP 頁面的整個生命週期中表示 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>Application 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 https://:8080/main.jsp 呼叫此 JSP。這將顯示訪問計數器的值,該值在您重新整理頁面時會增加。您可以嘗試使用不同的瀏覽器訪問該頁面,您會發現訪問計數器每次訪問都會增加,您將收到如下結果:

Welcome back to my website!

Total number of visits: 12

訪問計數器重置

當您重新啟動應用程式(即 Web 伺服器)時會發生什麼?這將重置您的應用程式變數,並且您的計數器將重置為零。為了避免這種丟失,請考慮以下幾點:

  • 定義一個包含單個計數的資料庫表,例如 hitcount。為其分配零值。

  • 每次訪問時,讀取表以獲取 hitcount 的值。

  • 將 hitcount 的值加 1,並使用新值更新表。

  • 顯示 hitcount 的新值作為總頁面訪問次數。

  • 如果要統計所有頁面的訪問次數,請為所有頁面實現上述邏輯。

廣告