我正在创建一个简单的网络应用程序。我需要获取对该类中 ServletContext 对象的引用。我怎么才能得到它?
您最好将其作为参数传递给对象的构造函数,或使用 setter 方法设置它。
事实上,您可以获取与您的对象相关的上下文属性,并通过构造函数/设置器仅传递它。例如:
YourClass obj =
new YourClass((AnotherClass) servletContext.getAttribute("yourAttribute"));
一个更糟糕、更复杂的选择是:
- 创建一个
ServletContextListener
- 在 web.xml 中注册它
<listener><listener-class></listener-class></listener>
- on
contextInitialized(..)
得到ServletContext
来自事件并将其存储在单例中 - 某处的静态字段。
或者,您可以对每个请求执行此操作,使用ServletRequestListener
并将其存储在ThreadLocal
反而。
然后你可以通过调用你的单例/线程本地持有者来获取该值,如下所示:
ServletContextHolder.getCurrentServletContext()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)