首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

防刷新的 JSP 訪問計數器實現

     編輯:關於JSP

利用 Cookie 判斷是否首次訪問,僅首次遞增計數文件,刷新不重複計數,解決傳統計數器刷新即增的問題。

核心代碼

<%@ page contentType="text/html;charset=gb2312" import="java.io.*" %>
<html><body>
<%
String file = "count.txt";
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
reader.close();

int count = (line == null) ? 0 : Integer.parseInt(line);
String cookie = request.getHeader("Cookie");

if (cookie == null) { // 首次訪問
    count++;
    PrintWriter pw = new PrintWriter(new FileWriter(file));
    pw.println(count);
    pw.close();
}
%>
<p align="center">您是第 <b><font color="red"><%=count%></font></b> 位訪客。</p>
</body></html>

原理解析

  • 讀取文件當前計數
  • 檢查 request.getHeader("Cookie"):無 Cookie 視為新訪客
  • 新訪客寫回遞增後的計數,並隱式設置 Session Cookie(瀏覽器關閉失效)
  • 刷新時攜帶 Cookie,不再遞增

局限與改進

  • 僅防同一瀏覽器會話刷新,清除 Cookie 或換瀏覽器仍會計數
  • 生產環境建議用數據庫存儲,配合 IP+UserAgent+時間窗口去重
  • 高併發下文件讀寫需加鎖或改用原子操作
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved