通过img标签调用实现静态页面访问次数统计的简单方法

来源:互联网 发布:全屋软水 知乎 编辑:程序博客网 时间:2024/06/06 03:10
测试页面: test.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>         <title>test</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">-->  </head>    <body>  this is a test page.<script type="text/javascript">document.write("<img src=http://127.0.0.1:8080/EasyCMS/pv.jsp border=0 width=0 height=0>");</script>   </body></html>

统计程序: pv.jsp 

 

假设部署位置为http://127.0.0.1:8080/EasyCMS/pv.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="java.io.*"%><%String path="/opt/test.txt";writeNumber(String.valueOf(readNumber(path)+1),path);%><%=readNumber(path) %><%!/** * 写入数字内容 *  * @param number * @param filename * @return */public  boolean writeNumber(String number, String filename) {try {FileOutputStream fos = new FileOutputStream(filename);OutputStreamWriter writer = new OutputStreamWriter(fos);writer.write(number);writer.close();fos.close();} catch (IOException e) {e.printStackTrace();return false;}return true;}/** * 读取数字内容 *  * @param filename * @return */public int readNumber(String filename) {int number = 0;try {File file = new File(filename);if (file.exists()) {FileReader fr = new FileReader(file);BufferedReader br = new BufferedReader(fr);String contents = br.readLine();if (contents != null && contents.length() > 0) {contents = contents.replaceAll("[^0-9]", "");number = Integer.valueOf(contents);}br.close();fr.close();}} catch (IOException e) {e.printStackTrace();}return number;} %>

基本思想:

 

访问静态页面时,通过img标签指定src 为访问统计的地址, img标签向统计程序发出请求,实现统计.

统计示例代码采用文件来记录访问次数,实际项目可以记录数据库.

 

关键代码:

<script type="text/javascript">document.write("<img src=http://127.0.0.1:8080/EasyCMS/pv.jsp border=0 width=0 height=0>");</script>


0 0