java - 记录 jsf 页面请求的 IP 地址

标签 java jsf-2 primefaces

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

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

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

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

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

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

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

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

最佳答案

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

关于java - 记录 jsf 页面请求的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15740528/

相关文章:

java - MongoDB 查询来自 Java 驱动程序的分页

java - 任务 ':app:packageRelease' 执行失败 无法从存储 "C:\Users\": Keystore was tampered with, 读取 key key0 或密码不正确

java - JSF/RichFaces 4 问题 : initiating component while rendering is false

javascript - 将 JSON 对象传递给 Java 类,而不使用 servlet

c# - C# 和 Java 对象的共享业务规则

java.lang.StackOverflowError 在 Weblogic 12c 上运行 JSF 2 示例

jsf-2 - 如何使用 JSF 生成网站图标 <link>?

css - 设置 p :selectManyCheckbox 的每个单独复选框的背景颜色

java - Primefaces 在单行上显示列表

jsf - 使用客户端 ID 引用组件与使用 p :component 引用组件之间的区别