如何在Grails中实现(唯一)页面查看跟踪?

时间:2013-06-02 18:35:18

标签: grails grails-2.0

在我的应用中,我有不同的页面,用户可以与之交互。我需要的是以下内容。我想跟踪:

  1. 每页有多少用户?
  2. 每页有多少个唯一身份用户?
  3. 我想在没有谷歌分析的情况下跟踪数据,因为我想自己分析数据。

1 个答案:

答案 0 :(得分:2)

使用Grails过滤器:

class TrackingFilters {
    def trackingService

    def filters = {
        access(controller: '*', action: '*') {
            before = {
                if (!session.user) {
                    trackingService.trackIpAddress(getIpAddress())
                } else {
                    trackingService.trackUser(session.user)
                }
            }
        }
    }
}

<强>更新 Grails过滤器是一段代码,您可以在请求之前和之后执行grails。 您可以使用修饰符指定哪些控制器以及哪些操作受到影响。

您可以使用该命令创建过滤器     grails create-filters example.Tracking

您选择的名称仅限于您。

然后你可以在tyhis生成的骨架类中定义一个过滤器,(我创建了“访问”过滤器,适用于所有控制器和动作)

在过滤器内部,您可以访问请求和会话,因此您应该能够使用此上下文来跟踪您的用户,例如:

request.getRemoteAddr()
request.getHeader("X-Forwarded-For")
request.getHeader("Client-IP")

完全迂腐:trackingService是您实施的假设服务。