JSP 點(diǎn)擊量統(tǒng)計(jì)

jsp 點(diǎn)擊量統(tǒng)計(jì)

有時(shí)候我們需要知道某個(gè)頁面被訪問的次數(shù),這時(shí)我們就需要在頁面上添加頁面統(tǒng)計(jì)器,頁面訪問的統(tǒng)計(jì)一般在用戶第一次載入時(shí)累加該頁面的訪問數(shù)上。

要實(shí)現(xiàn)一個(gè)計(jì)數(shù)器,您可以利用應(yīng)用程序隱式對象和相關(guān)方法getattribute()和setattribute()來實(shí)現(xiàn)。

這個(gè)對象表示jsp頁面的整個(gè)生命周期中。當(dāng)jsp頁面初始化時(shí)創(chuàng)建此對象,當(dāng)jsp頁面調(diào)用jspdestroy()時(shí)刪除該對象。

以下是在應(yīng)用中創(chuàng)建變量的語法:

application.setattribute(string key, object value);

您可以使用上述方法來設(shè)置一個(gè)計(jì)數(shù)器變量及更新該變量的值。讀取該變量的方法如下:

application.getattribute(string key);

在頁面每次被訪問時(shí),你可以讀取計(jì)數(shù)器的當(dāng)前值,并遞增1,然后重新設(shè)置,在下一個(gè)用戶訪問時(shí)就將新的值顯示在頁面上。

實(shí)例演示

該實(shí)例將介紹如何使用jsp來計(jì)算特定頁面訪問的總?cè)藬?shù)。如果你要計(jì)算你網(wǎng)站使用頁面的總點(diǎn)擊量,那么你就必須將該代碼放在所有的jsp頁面上。

<%@ page language="java" contenttype="text/html; charset=utf-8"
    pageencoding="utf-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<html>
<head>
<title>訪問量統(tǒng)計(jì)</title>
</head>
<body>
<%
    integer hitscount = 
      (integer)application.getattribute("hitcounter");
    if( hitscount ==null || hitscount == 0 ){
       /* 第一次訪問 */
       out.println("歡迎訪問碩編程!");
       hitscount = 1;
    }else{
       /* 返回訪問值 */
       out.println("歡迎再次訪問碩編程!");
       hitscount += 1;
    }
    application.setattribute("hitcounter", hitscount);
%>

<p>頁面訪問量為: <%= hitscount%></p>


</body>
</html>

現(xiàn)在我們將上面的代碼放置于main.jsp文件上,并訪問http://localhost:8080/testjsp/main.jsp文件。你會(huì)看到頁面會(huì)生成個(gè)計(jì)數(shù)器,在我們每次刷新頁面時(shí),計(jì)數(shù)器都會(huì)發(fā)生變化(每次刷新增加1)。

你也可以通過不同的瀏覽器訪問,計(jì)數(shù)器會(huì)在每次訪問后增加1。如下所示:

復(fù)位計(jì)數(shù)器

使用以上方法,在 web 服務(wù)器重啟后,計(jì)數(shù)器會(huì)被復(fù)位為 0,即前面保留的數(shù)據(jù)都會(huì)消失,你可以使用以下幾種方式解決該問題:

  • 在數(shù)據(jù)庫中定義一個(gè)用于統(tǒng)計(jì)網(wǎng)頁訪問量的數(shù)據(jù)表 count,字段為 hitcount,hitcount 默認(rèn)值為0,將統(tǒng)計(jì)數(shù)據(jù)寫入到數(shù)據(jù)表中。
  • 在每次訪問時(shí)我們讀取表中 hitcount 字段。

  • 每次訪問時(shí)讓 hitcount 自增 1。
  • 在頁面上顯示新的 hitcount 值作為頁面的訪問量。

  • 如果你需要統(tǒng)計(jì)每個(gè)頁面的訪問量,你可以使用以上邏輯將代碼添加到所有頁面上。
相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频