统计网页网站点击量
实现一个简单的基于 Servlet 生命周期的网页点击计数器需要采取的步骤(假设web容器不会重新启动,若存在重新启动可能,建议将计数存入数据库):一、统计某一个页面①、以请求为准,每次请求计数都加一在 init() 方法中初始化一个全局变量。每次调用 doGet() 或 doPost() 方法时,都增加全局变量。如果需要,您可以使用一个数据库表来存储全局变量的值在 destroy() 中。在下次
实现一个简单的基于 Servlet 生命周期的网页点击计数器需要采取的步骤(假设web容器不会重新启动,若存在重新启动可能,建议将计数存入数据库):
一、统计某一个页面
①、以请求为准,每次请求计数都加一
在 init() 方法中初始化一个全局变量。
每次调用 doGet() 或 doPost() 方法时,都增加全局变量。
如果需要,您可以使用一个数据库表来存储全局变量的值在 destroy() 中。在下次初始化 Servlet 时,该值可在 init() 方法内被读取。这一步是可选的。
②、以session为准,当生成新的session计数加一
使用 isNew() 方法来检查该 session 会话是否已点击过相同页面。
您可以通过显示全局计数器的值,来在网站上展示页面的总点击量。
实例
package com.runoob.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class PageHitCounter
*/
@WebServlet("/PageHitCounter")
public class PageHitCounter extends HttpServlet {
private static final long serialVersionUID = 1L;
private int hitCount;
public void init()
{
// 重置点击计数器
hitCount = 0;
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
// 增加 hitCount
hitCount++;
PrintWriter out = response.getWriter();
String title = "总点击量";
String docType = "<!DOCTYPE html> \n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title + "</h1>\n" +
"<h2 align=\"center\">" + hitCount + "</h2>\n" +
"</body></html>");
}
public void destroy()
{
// 这一步是可选的,但是如果需要,您可以把 hitCount 的值写入到数据库
}
}
在web.xml配置servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>PageHitCounter</servlet-name>
<servlet-class>com.runoob.test.PageHitCounter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PageHitCounter</servlet-name>
<url-pattern>/TomcatTest/PageHitCounter</url-pattern>
</servlet-mapping>
</web-app>
二、统计某一个网站
①、在过滤器的 init() 方法中初始化一个全局变量。
②、每次调用 doFilter 方法时,都增加全局变量。
③、如果需要,您可以在过滤器的 destroy() 中使用一个数据库表来
存储全局变量的值。在下次初始化过滤器时,该值可在 init() 方法内
被读取, 这一步是可选的。
实现一个简单的网站点击计数器:
// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class SiteHitCounter implements Filter{
private int hitCount;
public void init(FilterConfig config)
throws ServletException{
// 重置点击计数器
hitCount = 0;
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws java.io.IOException, ServletException {
// 把计数器的值增加 1
hitCount++;
// 输出计数器
System.out.println("网站访问统计:"+ hitCount );
// 把请求传回到过滤器链
chain.doFilter(request,response);
}
public void destroy()
{
// 这一步是可选的,但是如果需要,您可以把 hitCount 的值写入到数据库
}
}
现在让我们来编译上面的 Servlet,并在 web.xml 文件中创建以下条目:
<filter>
<filter-name>SiteHitCounter</filter-name>
<filter-class>SiteHitCounter</filter-class>
</filter>
<filter-mapping>
<filter-name>SiteHitCounter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
现在访问网站的任意页面,比如 http://localhost:8080/。这将会在每次任意页面被点击时,把计数器的值增加 1,它会在日志中显示以下消息:
网站访问统计: 1
网站访问统计: 2
网站访问统计: 3
网站访问统计: 4
网站访问统计: 5
三 、 推荐一个实用小工具
⭐任何网址前面加上 wn.run/ ,就会展示出用于该网页的各种在线工具,并且点击某一工具时,会直达针对该网页的功能详情页(万能命令);
如旧网址 https:/blog.csdn.net/qq_41538097
新 https://wanneng.run/https:/blog.csdn.net/qq_41538097
效果图
现有的功能 网页翻译:、查看网页历史记录:、查看当前站点油猴脚本:、在线pc端模拟器:、网页截图:、生成网址二维码:、网页转pdf:、生成短网址:、网站工具:等
更多推荐
所有评论(0)