如何在Grails中实现(唯一)页面视图跟踪?
在我的应用程序中,我有不同的页面,用户可以与之交互。我需要的是以下内容。我想跟踪:如何在Grails中实现(唯一)页面视图跟踪?,grails,grails-2.0,Grails,Grails 2.0,在我的应用程序中,我有不同的页面,用户可以与之交互。我需要的是以下内容。我想跟踪: 每个页面上有多少用户 每个页面上有多少唯一用户 我想在没有google analytics的情况下跟踪数据,因为我想自己分析数据。使用Grails过滤器: class TrackingFilters { def trackingService def filters = { access(controller: '*', action: '*') { be
class TrackingFilters {
def trackingService
def filters = {
access(controller: '*', action: '*') {
before = {
if (!session.user) {
trackingService.trackIpAddress(getIpAddress())
} else {
trackingService.trackUser(session.user)
}
}
}
}
}
更新
Grails过滤器是可以让Grails在请求前后执行的代码片段。
可以指定哪些控制器以及哪些操作受使用修改器的影响
您可以使用命令创建过滤器
grails创建过滤器示例。跟踪
你选择的名字只属于你一个人
然后,您可以在生成的骨架类中定义一个过滤器(我创建了“访问”过滤器,应用于所有控制器和操作)
在筛选器中,您可以访问请求和会话,因此您应该能够使用此上下文跟踪您的用户,例如:
request.getRemoteAddr()
request.getHeader("X-Forwarded-For")
request.getHeader("Client-IP")
非常迂腐:trackingService是一个由您实现的假设服务。使用谷歌分析,而不是重新发明轮子。我想跟踪数据,并在我的grails应用程序中使用它进行数据分析。那又怎样?使用api提取数据并使用它。所以我认为OP可以简单地编辑他的问题,然后说“我知道我可以用GA做这件事,但我宁愿自己做”,然后有人会说“好吧,在这种情况下,你可以这样做…”有很多很好的理由避免GA,包括想要跟踪非公开页面的访问,或者包含安全或私人信息的页面。您能稍微解释一下您的代码吗?它能做什么?trackingService在做什么?trackIpAddress是如何获得IP的?我不知道您在这里询问的是整个实现,从如何将代码挂接到grails到如何实际编写代码。我将更新我的答案,对什么是Grails过滤器进行一般性解释,但我没有时间为您重新实现google analytics;-)