I am creating a simple web application. I need to get reference to ServletContext object in that class. How can i get it?
How to get the object of ServletContext interface. getServletContext() method of ServletConfig interface returns the object of ServletContext. getServletContext() method of GenericServlet class returns the object of ServletContext.
Since the ServletContext object is available to all the servlets of the Web application, other servlets can retrieve the attribute from the ServletContext object by using the getAttribute() method.
You'd better pass it as argument to the constructor of your object, or set it using a setter method.
In fact, you may obtain the context attribute that is relevant to your object and pass only it via constructor/setter. For example:
YourClass obj =
new YourClass((AnotherClass) servletContext.getAttribute("yourAttribute"));
A much worse and more complication option is to:
ServletContextListener
<listener><listener-class></listener-class></listener>
contextInitialized(..)
get the ServletContext
from the event and store it in a singleton - a static field somehwere.Alternatively, you can do this on each request, using a ServletRequestListener
and store it in a ThreadLocal
instead.
Then you can obtain the value via calling your singleton/threadlocal holder like this:
ServletContextHolder.getCurrentServletContext()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With