1

我有一个正在运行的 JSF2 应用程序,现在想添加一个请求日志记录功能。

日志将保存到 db 并由标准用户/页面/IP 三重奏和其他生成的内容组成。

现在在托管 bean 中的 @PostConstruct 注释方法中调用 dao 方法,但这似乎是代码重复。

@PostConstruct
public void init() {
     loggingDao.save(user,page,ip);
}

如何使用托管 bean 在 jsf 端集中这个日志记录/审计过程?由于这是一个横切场景,我不想将此代码添加到每个托管 bean。

编辑 这个问题得到了很多评论,这意味着它没有以正确的方式提出。

最后一次机会:我需要在我的站点上记录/观看用户交互,它可能是登录操作或单击按钮以列出项目(映射到支持 bean 方法)或页面导航/重定向。

我还假设我可以使用相同的架构来决定用户是否有权在网站上执行特定操作,但这是另一个故事,因为它的结果会有所不同。

4

1 回答 1

0

您可以为此使用 servlet 过滤器或 JSF 阶段侦听器。如果要记录每个请求,包括 CSS 和 JavaScript 资源,请使用过滤器。如果您只对 JSF 请求感兴趣,可以使用阶段侦听器。只需进入“恢复视图之前”阶段并记录您想要的任何内容。

于 2013-04-01T10:08:52.443 回答