时间:2021-05-20
一、Web页面的点击计数器
很多时候,可能有兴趣知道网站的某个特定页面上的总点击量。使用Servlet来计算这些点击量是非常简单的,因为一个Servlet的生命周期是由它运行的容器控制的。
以下是基于Servlet生命周期实现一个简单的页面点击计数器需要的步骤:
在这里我假设Web容器不会被重新启动。如果Web容器被重新启动或Servlet被销毁,计数器将被重置。
实例:
这个例子演示了如何实现一个简单的页面点击计数器:
import java.io.*;import java.sql.Date;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class PageHitCounter extends HttpServlet{ private int hitCount; public void init() { // Reset hit counter. hitCount = 0; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); // This method executes whenever the servlet is hit // increment hitCount hitCount++; PrintWriter out = response.getWriter(); String title = "Total Number of Hits"; String docType = "<!doctype html public \"-//w3c//dtd html 4.0 " + "transitional//en\">\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() { // This is optional step but if you like you // can write hitCount value in your database. } }现在编译上述Servlet并在web.xml文件中创建以下条目:
.... <servlet> <servlet-name>PageHitCounter</servlet-name> <servlet-class>PageHitCounter</servlet-class> </servlet> <servlet-mapping> <servlet-name>PageHitCounter</servlet-name> <url-pattern>/PageHitCounter</url-pattern> </servlet-mapping>....现在使用URL http://localhost:8080/PageHitCounter来调用这个Servlet。每次页面刷新时,计数器的值都会加1,这将产生如下所示的结果:
二、网站点击计数器
很多时候,可能有兴趣知道整个网站的总点击量。在Servlet中,这也是非常简单的,可以使用过滤器实现这一点。
以下是实现一个基于过滤器生命周期的简单的网站点击计数器需要的步骤:
在这里我假设Web容器不会被重新启动。如果Web容器被重新启动或Servlet被销毁,点击计数器将被重置。
实例:
这个例子演示了如何实现一个简单的网站点击计数器:
// Import required java librariesimport 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{ // Reset hit counter. hitCount = 0; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException { // increase counter by one hitCount++; // Print the counter. System.out.println("Site visits count :"+ hitCount ); // Pass request back down the filter chain chain.doFilter(request,response); } public void destroy() { // This is optional step but if you like you // can write hitCount value in your database. } }现在来编译上述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>....现在调用任意URL如URL:http://localhost:8080/。每次任意页面被点击时,计数器的值都会加1并且会在日志中显示如下所示的消息:
测试工程:https://github.com/easonjim/5_java_example/tree/master/servletbasics/test14
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这是一种方法实现计数器。想看另一种方法的请点击:【PHP】简单的网站访问量计数器实现想看具体代码思路的也请点击上面的链接。创建Embed-Count文件夹在Em
1)文本计数器2)图形计数器
PHP实例剖析:计数器作者:Sucre_tiger本款计数器用文本计数,没有用到数据库,可以实现如下功能:利用一个文本文件实现多个页的计数减少服务器的I/O占用
本文实例讲述了php实现计数器的方法。分享给大家供大家参考。具体如下:这里收藏了三款php计数器代码,他们三个都有一个同共点就是全部无需数据库,而是利用了文本文
现在有很多的项目,对计数器的实现甚是随意,比如在实现网站文章点击数的时候,是这么设计数据表的,如:”article_id,article_name,articl