2010-04-01 63 views
0

我想向我的JSF Web应用程序添加一个计数器。像在PHP中一样,我们可以使用外部文本文件来存储计数和增量,并将其写入每个请求。如何在JSF中使用?JSF中的HIt计数器

+0

给出更多细节 – Bozho 2010-04-01 06:25:23

回答

0

你可以这样做,但唯一可以考虑的情况是做作业。无论如何,只需要一个读取/增量/写入文件的Backing Bean。

看一下Apache Commons IO FileUtils的一些好帮手方法。虽然如果这是作业,你无疑会得到更好的标记滚动自己;-)

1

我建议只使用Filter这一点。相应地执行javax.servlet.Filter并将其映射到web.xml上的感兴趣的url-pattern

E.g. (半伪):

public void doFilter(request, response) { 
    int count = readCountFromFile(); 
    count++; 
    writeCountToFile(count); 
    chain.doFilter(request, response); 
} 

Java IO tutorial可能会有所帮助如何读取和写入文件内容。

您不一定需要JSF。 JSF只是建立在Servlet API的基础之上,你可以使用过滤器。否则,你必须创建一个bean,你必须记得确保每个视图调用这个bean 请求。

+0

写入文件的事实,会是性能问题吗?每次访问磁盘缓慢的事实。 – neo 2015-02-10 14:32:25

+0

@neo:目前这个问题没有涵盖。 OP明确要求写入磁盘。 – BalusC 2015-02-10 14:40:23

+0

好吧我试图实现一个热门计数器,当我看到你的答案时,我发表了一条评论,让我对事情变得更加清楚......我想我会用一个包含每个页面元素的地图来实现它(作为缓存)并定期将结果定期刷新到数据库,例如每天一次。 – neo 2015-02-10 15:50:14