FacesContext和“Servlet”语境
有没有与 FacesContext 等效的东西,但是在 servlet 环境中?
我有一些 DAOSessionManager 来处理我的数据库的事务。当当前页面是使用 JSF 编写时,我可以使用 FacesContext 来识别当前的 http 请求,但是 servlet 呢?
我找不到任何方法来获取当前的 Servlet 上下文或 httpRequest...
谢谢。
PS:是的,从我的 DAO 层引用 FacesContext 是一种耻辱,但这是一个开始。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是
ServletContext
。它可以通过继承的 在 servlet 类中使用getServletContext()
方法。与 FacesContext 的主要区别在于 ServletContext 不是
ThreadLocal
,因此您无法像FacesContext#getCurrentInstance()
做。您确实需要传递ServletContext
引用到您需要的 DAO 方法中:或者更好的是,为了避免紧密耦合,只需从中提取所需的信息并传递它:
It's the
ServletContext
. It's available inside servlet classes by the inheritedgetServletContext()
method.The major difference with
FacesContext
is that theServletContext
isn'tThreadLocal
, so you cannot obtain it "statically" from the current thread likeFacesContext#getCurrentInstance()
does. You really need to pass theServletContext
reference around into the DAO methods wherever you need it:Or better yet, to avoid tight coupling, just extract the desired information from it and pass it: