zoukankan      html  css  js  c++  java
  • JSP点击计数器

    以下内容引用自http://wiki.jikexueyuan.com/project/jsp/hits-counter.html

    一个点击计数器能得知关于网站某个特定页面的访问量。假设人们第一次登陆主页,通常在index.jsp页面上设置一个点击计数器。

    可以使用Application隐式对象和相关方法getAttribute()和setAttribute()实现一个点击计数器。

    这个对象通过其整个生命周期来表示此JSP页面。初始化这个对象时创建JSP页面,当此JSP页面被jspDestroy()方法删除时该对象也被删除。

    以下是在应用层设置变量的语法:

    application.setAttribute(String Key, Object Value);

    可以使用上述的方法设置点击计数器的变量或者重置相同的变量。接下来描述的是一个方法,该方法是读取先前方法设置的变量。

    application.getAttribute(String Key);

    每次用户访问网页,可以读取点击计数器的当前值,增加1并且再次设置点击计数器作为以后使用。

    示例:

    这个例子展示了如何使用JSP来统计一个特定的页面的点击量。如果想计算网站点击量,那么将不得不在所有JSP页面包含相同的代码。

    <%@ page import="java.io.*,java.util.*" %>
    
    <html>
    <head>
    <title>Applcation object in JSP</title>
    </head>
    <body>
    <%
        Integer hitsCount = (Integer)application.getAttribute("hitCounter");
        if( hitsCount ==null || hitsCount == 0 ){
           /* First visit */
           out.println("Welcome to my website!");
           hitsCount = 1;
        }else{
           /* return visit */
           out.println("Welcome back to my website!");
           hitsCount += 1;
        }
        application.setAttribute("hitCounter", hitsCount);
    %>
    <center>
    <p>Total number of visits: <%= hitsCount%></p>
    </center>
    </body>
    </html>

    现在将上面的代码放在main.jsp中,并且使用URL:http://localhost:8080/main.jsp来调用此JSP。每当刷新该页面时,这将显示的点击计数器值会增加。可以尝试使用不同的浏览器访问该网页,会发现每次点击计数器将增加,显示的结果如下:

    计数器重置

    如果重新启动应用程序如Web服务器,这将重置应用程序变量,点击计数器将重置为零。为了避免这种损失,可以用下面专业的方法实现点击计数器:

    • 定义一个带有单一计数的数据库表,叫做点击量。设置它的值为0。

    • 每次点击,读取该表得到点击量的值。

    • 点击量加1,更新该表中的值。

    • 显示点击计数器的新值作为总页面的点击量。

    • 如果想计算所有页面的点击量,对所有的页面实现上面的逻辑。

    测试工程:https://github.com/easonjim/5_java_example/tree/master/jspbasics/test14

  • 相关阅读:
    RVM Ruby 版本管理器的删除 Gatling
    JWT 构建Rails API 授权登录
    Linux grep根据关键字匹配前后几行
    bootstrap-table 常用总结-树形结构
    linux 下jq的使用
    SHELL脚本获取域名对应的IP地址
    golang将切片或数组进行分组
    linux的统计实现
    Linux:“awk”命令的妙用
    rails 上传文件
  • 原文地址:https://www.cnblogs.com/EasonJim/p/6954567.html
Copyright © 2011-2022 走看看