zoukankan      html  css  js  c++  java
  • 网站计数器(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就被销毁,所以将数据存到文件中)。这样对文件只进行一次读和写操作。

    图示:

  • 相关阅读:
    ACM 2的N次方
    文件默认打开方式 转
    java 的 一点记录
    zhuan 漫谈C语言及如何学习C语言
    eclipse
    code::blocks
    心态决定命运_no excuses, suck it up, obey your teacher
    uml_2_application and viso application
    paint conflict with lingoes
    stm learning record
  • 原文地址:https://www.cnblogs.com/vitosun/p/3828533.html
Copyright © 2011-2022 走看看