# JSP點擊量統計
有時候我們需要知道某個頁面被訪問的次數,這時我們就需要在頁面上添加頁面統計器,頁面訪問的統計一般在用戶第一次載入時累加該頁面的訪問數上。
要實現一個計數器,您可以利用應用程序隱式對象和相關方法getAttribute()和setAttribute()來實現。
這個對象表示JSP頁面的整個生命周期中。當JSP頁面初始化時創建此對象,當JSP頁面調用jspDestroy()時刪除該對象。
以下是在應用中創建變量的語法:
~~~
application.setAttribute(String Key, Object Value);
~~~
您可以使用上述方法來設置一個計數器變量及更新該變量的值。讀取該變量的方法如下:
~~~
application.getAttribute(String Key);
~~~
在頁面每次被訪問時,你可以讀取計數器的當前值,并遞增1,然后重新設置,在下一個用戶訪問時就將新的值顯示在頁面上。
* * *
## 實例演示
該實例將介紹如何使用JSP來計算特定頁面訪問的總人數。如果你要計算你網站使用頁面的總點擊量,那么你就必須將該代碼放在所有的JSP頁面上。
~~~
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<html>
<head>
<title>訪問量統計</title>
</head>
<body>
<%
Integer hitsCount =
(Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 ){
/* 第一次訪問 */
out.println("歡迎訪問JSP教程!");
hitsCount = 1;
}else{
/* 返回訪問值 */
out.println("歡迎再次訪問JSP教程!");
hitsCount += 1;
}
application.setAttribute("hitCounter", hitsCount);
%>
<p>頁面訪問量為: <%= hitsCount%></p>
</body>
</html>
~~~
現在我們將上面的代碼放置于main.jsp文件上,并訪問*http://localhost:8080/testjsp/main.jsp*文件。你會看到頁面會生成個計數器,在我們每次刷新頁面時,計數器都會發生變化(每次刷新增加1)。
你也可以通過不同的瀏覽器訪問,計數器會在每次訪問后增加1。如下所示:
* * *
## 復位計數器
使用以上方法,在 web 服務器重啟后,計數器會被復位為 0,即前面保留的數據都會消失,你可以使用以下幾種方式解決該問題:
* 在數據庫中定義一個用于統計網頁訪問量的數據表 count,字段為 hitcount,hitcount 默認值為0,將統計數據寫入到數據表中。
* 在每次訪問時我們讀取表中 hitcount 字段。
* 每次訪問時讓 hitcount 自增 1。
* 在頁面上顯示新的 hitcount 值作為頁面的訪問量。
* 如果你需要統計每個頁面的訪問量,你可以使用以上邏輯將代碼添加到所有頁面上。
- Java Web項目開發學習手冊
- 一、B/S開發環境搭建
- 1.1 tomcat服務器目錄結構及作用
- 1.2 在IDE開發工具上配置tomcat服務器
- 1.3 簡單web項目在tomcat服務器上運行的方法
- 1.4 開發工具設置
- 1.5 總結
- 二、Servlet技術應用
- 2.1 HttpServlet中的主要方法及應用
- 2.1.1 基于Eclipse完成一個JavaWeb項目
- 2.2 HttpRequest,HttpResponse的應用
- 2.2.1客戶端請求
- 2.2.2服務器響應
- 2.2.3Servlet HTTP 狀態碼
- 2.2.4圖片驗證碼類
- 2.2.5注冊模擬實現(帶驗證碼)
- 2.3 ServletConfig對象和ServletContext對象的概念
- 2.4 總結
- 三、JSP技術應用
- 3.1 JSP基本語法
- 3.2 JSP標簽和指令
- 3.3 JSP中的隱式對象
- 3.4 常用應用操作
- 3.4.1 JSP客戶端請求
- 3.4.2 JSP服務器響應
- 3.4.3 HTTP狀態碼
- 3.4.4 表單處理
- 3.4.5 過濾器
- 3.4.6 Cookie處理
- 3.4.7 Session處理
- 3.4.8 文件上傳
- 3.4.9 日期處理
- 3.4.10 頁面重定向
- 3.4.11 點擊量統計
- 3.4.12 自動刷新
- 3.4.13 發送郵件
- 3.5 JSP高級應用
- 3.5.1 JSP標準標簽庫(JSTL)
- 3.5.2 JSP連接數據庫
- 3.5.3 JSP XML數據處理
- 3.5.4 JSP JavaBean
- 3.5.5 自定義標簽
- 3.5.6 表達式語言
- 3.5.7 異常處理
- 3.5.8 調試
- 3.5.9 JSP國際化
- 3.6 實踐代碼
- 3.6.1 實踐代碼
- 3.6.2 項目實戰
- 3.7 總結
- 四、MVC思想的理解和搭建MVC
- 4.1 MVC設計模式的思想
- 4.2 MVC設計模式的實現步驟
- 4.3 項目實踐
- 4.4 總結
- 五、EL表達式和JSTL技術
- 5.1 EL表達式及其應用
- 5.2 常用的JSTL標簽的應用
- 5.3 項目實踐
- 5.4 總結
- 六、Cookie和Session
- 6.1 cookie對象的概念和應用
- 6.2 session對象的概念和應用
- 6.3 項目實踐
- 6.4 總結
- 七、過濾器技術應用
- 7.1 Filter的概念及應用
- 7.2 Filter、FilterChain、FilterConfig 介紹
- 7.3 用戶登錄過濾案例
- 7.4 項目實戰
- 7.5總結
- 八、異步請求技術
- 8.1 JSON數據格式
- 8.2 使用AJAX實現異步請求
- 8.3 用戶名校驗案例
- 8.4小結
- 綜合項目技術實訓
- 1.BS項目開發項目實戰
- 2.項目需求分析和系統設計
- 2.1需求分析
- 2.2類型模型設計
- 2.3原型設計
- 3.項目數據庫分析和系統設計
- 4.BS項目編程實現
- 4.1搭建框架和命名規約
- 4.2實現步驟
- 4.2.1創建實體類
- 4.2.2創建過濾器類
- 4.2.3創建工具類
- 4.2.4創建DAO接口及其實現類
- 4.2.5創建Service接口及其實現類
- 4.2.6創建測試類
- 4.2.7創建控制器類
- 5.企業開發流程規范
- 6.總結
- 九、練習題及答案
- 企業開發常用技術
- 1.Maven技術
- Java命名規范解讀
- 參考資料
- 開發中常用的應用服務器和Web服務器