java – 如何在一个简单的类文件中获取ServletContext对象?

我正在创建一个简单的Web应用程序.我需要在该类中引用ServletContext对象.我怎么才能得到它?
最佳答案
您最好将它作为参数传递给对象的构造函数,或者使用setter方法设置它.

实际上,您可以获取与对象相关的上下文属性,并仅通过构造函数/ setter传递它.例如:

YourClass obj = 
    new YourClass((AnotherClass) servletContext.getAttribute("yourAttribute"));

一个更糟糕,更复杂的选择是:

>创建一个ServletContextListener
>使用< listener>< listener-class>< / listener-class>< / listener>在web.xml中注册
> on contextInitialized(..)从事件中获取ServletContext并将其存储在单例中 – 静态字段somehwere.

或者,您可以使用ServletRequestListener在每个请求上执行此操作,并将其存储在ThreadLocal中.

然后你可以通过调用你的singleton / threadlocal持有者获得这个值,如下所示:

ServletContextHolder.getCurrentServletContext()

转载注明原文:java – 如何在一个简单的类文件中获取ServletContext对象? - 代码日志