tomcat + apache 如何统计素材的下载次数,寻求高效的方案

问题描述

目前公司网上网站提供一些软件和素材下载,考虑到静态资源的处理能力,所有的静态资源都走了apache,这样的话我如何统计那些素材的下载次数了。有人说通过分析apache日志,不过那不是我想要的方案,我想能否通过java程序去处理,然后下载走apache了,希望大家给点提示。。。 问题补充:scl333 写道

解决方案

引用目前我就是采用的这种方案做的,在网站下载页面提供链接直接映射到控制器,先记录下载次数,然后sendredirect到指定的下载目录,不过从实现效果来看不是很稳定,统计的次数常常少于真正下载的次数,所以寻找其他方案。用过滤器,把资源文件的路径映射一下,直接在filter里面计数就行了,这种方式应该是最好的,因为它不可能不通过filter下载。而你用servlet的话,别人只要通过盗链就可以下载,不需要通过你的servlet。除非你的servlet配置的路径跟过滤器一样。不过过滤器肯定是最佳选择。一般网站上防止别人盗链 盗采你的图片或者其他资源 一般都是通过filter来过滤的。
解决方案二:
楼主你说实际下载量远远大于你统计到的下载量? 我认为, 你通过redirect重定向的资源, 很可能是直接可以访问的资源, 也就是说没有任何权限控制, 登录验证什么的? 这样用户通过下载工具下载, 会同时开启很多请求并发下载, 而且, 被下载工具记录资源后, 很多时候其他用户下载同样资源(没有访问你的网站), 下载工具也会直接请求到你的服务器上, 分流数据. 如果要更好的统计, 最好的方法是自己控制资源返回(servlet中读取资源, 以流返回, 而不是URL直接能访问到目标文件), 并加上验证.
解决方案三:
你的项目一个过滤器都没用?不需要你redirect啊
解决方案四:
实现一个servlet, 在servlet中计数, 所有的下载都通过这个servlet转向或直接回写给客户端即可.例如 所有的下载都以这个格式 /download/?id=29831servlet记录id=29831的下载次数, 并重定向这个资源的实际地址, 或者直接读数据, 返回给客户端.
解决方案五:
首先你的素材,是放在某些特定的文件夹下的吧。最简单的办法是配置过滤器,把路径映射到你的这个文件夹,每请求一次,记录一次。就ok了。

时间: 2024-11-04 10:32:07

tomcat + apache 如何统计素材的下载次数,寻求高效的方案的相关文章

服务器文件下载计数-服务器文件下载同时统计下载次数

问题描述 服务器文件下载同时统计下载次数 根据一个链接统计从服务器端下载某个文件的次数,如何实现啊?求大神! 解决方案 服务器log日志中统计http请求等

命令行下Apache日志统计举例

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/1414820 Apache日志统计举例 加些来了解一下如何统计Apache的访问日志,一般可以用tail命令来实时查看日志文件变化,但是各种的应用系统中的日志会非常复杂,一堆长度超过你浏览极限的日志出现在你眼前时,你会觉得非常无奈,怎么办呢?这时可以用grep.sed.awk和sort等筛选工具帮助你解决这个问题.

在Windows环境下的Tomcat + Apache配置

Tomcat除了支持Java Servlet/JSP之外,也可以当做网站服务器使用,但是在对于静态的html文件.图片文件等的解析效率上不如Apache HTTPD的执行效率高.应用tomcat的服务器如果网站的访问量较大,系统资源占用会明显升高,近日笔者在项目执行过程中遇到这一问题,便也想到同时应用tomcat+apache服务.Apache负责静态资源处理,tomcat负责jsp和java servlet等动态资源的处理.在网上看了不少介绍Apache和Tomcat集成的帖子.大多为互相转贴

Windows下的Tomcat+Apache配置

Tomcat除了支持Java Servlet/JSP之外,也可以当做网站服务器使用,但是在对于静态的html文件.图片文件等的解析效率上不如Apache HTTPD的执行效率高.应用tomcat的服务器如果网站的访问量较大,系统资源占用会明显升高,近日笔者在项目执行过程中遇到这一问题,便也想到同时应用tomcat+apache服务.Apache负责静态资源处理,tomcat负责jsp和java servlet等动态资源的处理.在网上看了不少介绍Apache和Tomcat集成的帖子.大多为互相转贴

Dede下载频道不显示下载次数解决方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 现在dede版本的下载频道都无法统计下载次数,官方也没有提供解决的办法,我这里的办法也只是暂时救急用的.其实就是下载次数换成浏览次数 解决办法:找到模板文件夹里的article_soft.htm,并找到"下载次数",将<script src="{dede:field name='phpurl'/}/coun

Firefox4下载次数达1亿 全球占有率7.94%

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 北京时间4月23日消息,据国外媒体报道,根据Mozilla自己的统计,仅仅就在发布一个月后,目前Firefox 4的下载累计次数已经达1亿次.另据互联网流量监测机构StatCounter的统计,目前Firefox占全球浏览器市场的7.94%. Firefox4下载次数达1亿 全球占有率7.94% 根据StatCounter的数据,除Firef

java web-如何用jsp实现将文件上传至Tomcat服务器上,并可以下载

问题描述 如何用jsp实现将文件上传至Tomcat服务器上,并可以下载 在做一个资源管理系统,现在需要实现将文件上传至Tomcat服务器下的并在另外的页面可以实现下载的功能,除了知道这是需要上传至Tomcat服务器下之外,什么都不会,不知道怎么实现,也不知道要怎么写代码,希望各位路过的大侠指教!!!还有一个问题就是,要怎么实现已上传文件的预览呢?原谅我是个技术渣吧...感谢大家!!! 解决方案 需要借助插件的,代码还是得自己探索的.参考下这个http://bbs.csdn.net/topics/

如何统计页面浏览的次数?

问题描述 如何统计页面浏览的次数? 解决方案 解决方案二:每刷新一次数据库中的计数器值加1?解决方案三:看我要怎么做了...如果打开一次算一次..数据库里放一个页面点击次数字段那Load事件...每次一把点击数+1...再更新到数据库解决方案四:方法有多种,一般是当请求该页面时将数据库中的相应字段值加1,可以写在LInkButton的事件中,也可以在被浏览页面的Page_Load方法中处理.解决方案五:该回复于2011-06-10 09:32:27被版主删除解决方案六:可以调用51la等来统计也

sql 数据库怎么 统计 出差人员的次数

问题描述 sql 数据库怎么 统计 出差人员的次数 我要的效果是: 姓名 出差次数 向晟 1 向明 1 龙恺 2 ............. 求解答!!!!!! 就是出差人数以逗号隔开在分组 解决方案 select ITEM_姓名, count(*) as 次数 from 表 group by ITEM_姓名 解决方案二: 楼上的已经正确解答了 解决方案三: CREATE FUNCTION [dbo].[FN_SPLIT](@Long_str varchar(max),@split_str va