Accessing ServletContext and ServletRequest in CDI Beans
Today I’ve found one interesting question on StackOverFlow of one user asking to read the web.xml context params from a CDI Bean. Luckily it’s not complicated at all to accomplish this task.
In order to be able to read the web.xml context-params from a CDI Bean all you need to do is injecting the ServletContext into your CDI Bean. This is our starting point:
<context-param>
<param-name>upload.path</param-name>
<param-value>/home/jboss/data</param-value>
</context-param>
The Servlet Context can be injected safetly into any CDI bean as follows:
@ApplicationScoped
public class Utils {
@Inject
private ServletContext context;
}
Then you can read your context params easily as follows:
context.getInitParameter("upload.path");
Much the same way you can inject the HTTPServletRequest and extract the request’s parameters or access the HTTPSession:
@Inject
private HttpServletRequest httpRequest;
Recommended Articles
Maximize Your CDI Applications with Jakarta EE 11 and beans.xml
Enhance your CDI applications using Jakarta EE 11's beans.xml for improved compatibility and functionality. #CDI #JakartaEE11 #WildFly #Java #Middleware #CloudNative
Using CDI Beans in JBoss - WildFly Modules | Enterprise Java Tutorials
Learn how to use CDI beans and AS resources in JBoss WildFly modules, deploying a demo bean with @ApplicationScoped and javax.annotation.Resource.
Upgrading Java EE 6 to CDI: A Step-by-Step Guide with Eclipse and Maven
Learn how to migrate your Java EE 6 EJB-based application to a CDI-based application using Eclipse and the Maven plugin. Get started with this comprehensive tutorial.
Enhance Your Enterprise Java Applications with Contexts and Dependency Injection (CDI) - JSR 299
JSR 299 CDI simplifies Java EE development, bridging the gap between enterprise and web tiers. Learn how to leverage CDI for transactional support in your applications.