网站计数器(ServletContext实现)

网站计数器是针对所有用户的,因此可以考虑如下方法:

1、将用户访问次数,存放到数据库中的一个统计表中,每有一个用户访问,数据库中就加1。

     优点:容易理解,方便实现。

     缺点:对数据库访问太频繁,服务器压力大(如果访问用户太多)。

2、设置一个静态变量,但服务器启动时,可以通过配置文件或表初始化该变量,当服务器关闭时,再将变量的值写入到文件或者数据库中。

    优点:效率高,不会频繁的访问文件或者数据库。

    缺点:实现复杂,要求对文件操作。

3、使用ServletContext,实现和第二种方法类似。

一次有效的点击:用户登录到注销。

servlet的生命周期:

      Servlet生命周期分为三个阶段:

  1,初始化阶段  调用init()方法        // 该方法只会被调用一次(当用户第一次访问servlet时)

  2,响应客户请求阶段  调用service()方法

  3,终止阶段  调用destroy()方法    //销毁servlet实例(释放内存)在三种情况下会被调用1、reload 该servlet(webApps)2.关闭tomcat 3.关机

ServletContext操作方法:

设置Context属性:
ServletContext sc=this.getServletContext();
//sc.setAttribute(String attributeName,object value);
sc.setAttribute("person1","Jim"));
sc.setAttribute("person2","Green");
获取Context属性:
ServletContext sc=this.getServletContext();
//sc.getAttribute(String name);
sc.getAttribute("person1");

实现思路:在服务器中存放一个文件用来存放访问计数,当servlet初始化时从文件中读取该数,然后进行累加(只在用户登录成功后才进行累加)并显示,当调用destroy()方法时将当前的数存到文件中(因为destroy后该servletcontext就被销毁,所以将数据存到文件中)。这样对文件只进行一次读和写操作。

图示:

原文地址:https://www.cnblogs.com/vitosun/p/3828533.html