情况是这样的, 在一个站点有一个文件 www.abc.com/abc/abc.xml 一个xml文件.每天有很多的程序会读取这个文件,这些程序很多,有vc写的,有其他站点jsp.等等,那么我想统计下到底我的这个abc.xml文件一天被读取了多少次,是否做的到呢? 是jsp还是java?请高手指点一二.谢谢了
解决方案 »
- Template /template/ajax/submit.ftl not found.
- struts2.0标签棘手问题
- help!!ssh整合过程中抛出这样一个异常!!
- 电影网站
- 求一免费的,好用的,JSP生成静态页面html的新闻系统,相当感谢!
- jsp中,怎么进行文件名的改名操作?新手分不多,解决问题就给分(80分)
- 谁有jsp论坛源码
- 超级菜!不通过刷新也不提交表单如何能够在后台得到表单数据?
- resin + 虚拟目录
- JAVA导出Excel数据量过大(50万以上)内存溢出如何解决?
- 请问谁有java生成jpg曲线图的例子阿?谢谢!
- 在servlet中怎么取select的已经选定的option的value值?
2读取text的时候加一节点,专门负责记录读取次数.
3数据库写一字段用来存储数量,当程序读取xml的时候加1位.
因为有不同程序读取xml,所以必须有一中间文件记录.
查找www.abc.com/abc/abc.xml相关访问纪录,例如 post /abc/abc.xml等。
统计出访问纪录个数,不就是你的文件被访问次数吗?
jsp,或者 servlet 都可以,但是需要指出,jsp其实就是servlet,这里用serlvet,配置到这个文件文件的url上,那么每次访问上述链接都会触发servler,计数器可以++了 ;另外一种是filter,拦截你需要的url,简单分析一下就可以让计数器++了;上述两种方法都是可插拔的,不想统计时从web.xml中注释掉配置即可。而filter更适合你:1、它专门为解决你的问题而存在,2、可以写更少的代码。
到底是如何写jsp,才能监控这个abc.xml被读取了呢?
Process p=Runtime.getRuntime().exec("cmd /c dir d:\\dictionary.txt /t:a");
InputStream in=p.getInputStream();
StringBuffer out = new StringBuffer();
byte[] b = new byte[1024];
int n=0;
while ((n=in.read(b))!=-1){
out.append(new String(b, 0, n));
}
System.out.println(out.toString());
} catch (IOException e) {
e.printStackTrace();
}dir d:\\dictionary.txt /t:w
dir d:\\dictionary.txt /t:c
dir d:\\dictionary.txt /t:a试验一下这种方法,可能对你有帮助