JSP點擊計數器

來源:互聯網
上載者:User

標籤:test   重新整理   變數   特定   代碼   local   ref   htm   網站   

以下內容引用自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

JSP點擊計數器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.