Servlet 3.1 网页访问计数器

很多时候,我们可能有兴趣知道某个特定页面上的总点击量

使用 Servlet 来统计这些访问量是非常简单的,因为 Servlet 的生命周期是由它运行所在的容器控制的

下面是实现一个简单的基于 Servlet 生命周期的网页访问计数器的步骤:

  1. 在 init() 方法中初始化一个全局变量
  2. 每次调用 doGet() 或 doPost() 方法时,都增加全局变量

当然可以增加以下步骤

  1. 如果需要,可以使用一个数据库表来存储全局变量的值在 destroy() 中,在下次初始化 Servlet 时,该值可在 init() 方法内被读取,这一步是可选的
  2. 如果只想对一个 session 会话计数一次页面点击,那么请使用 isNew() 方法来检查该 session 会话是否已点击过相同页面,这一步是可选的
  3. 通过显示全局计数器的值,在网站上展示页面的总访问量,这一步是可选的

这里,我们假设 Web 容器将无法重新启动

因为如果是重新启动或 Servlet 被销毁,计数器将被重置

范例

下面的范例演示了如何实现一个简单的网页访问计数器

// author: 简单教程(www.twle.cn)
// Copyright © 2015-2065 www.twle.cn. All rights reserved.

package cn.twle.demo;


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet(name = "PageHitCounterServlet", urlPatterns = {"page_hit"}, loadOnStartup = 1)
public class PageHitCounterServlet 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 = "网页访问量 | 简单教程(www.twle.cn)";
        String docType = "<!DOCTYPE html>";
        out.println(docType +
            "<title>" + title + "</title>" +
            "<body bgcolor=\"#f0f0f0\">" +
            "<p>" + title + "</p>" +
            "<p>" + hitCount + "</p>");
    }

    public void destroy() 
    { 
        // 这一步是可选的,但是如果需要,可以把 hitCount 的值写入到数据库
    } 

}

在浏览器上输入 http://localhost:8080/servlet/page_hit 来访问网页

它会在每次页面刷新时,把计数器的值增加 1

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.