Replace a context-param element with a Servlet 3.0 annotation
If you are using Tomcat, you can use the Parameter tag in context.xml
, and it will work identical as a context-param put in web.xml
.
So you can use @WebInitParam
to catch a context variable.
http://tomcat.apache.org/tomcat-5.5-doc/config/context.html#Context_Parameters
You can find all javax.servlet
annotations in the javax.servlet.annotation
package summary:
@HandlesTypes
This annotation is used to declare the class types that aServletContainerInitializer
can handle.@HttpConstraint
This annotation is used within theServletSecurity
annotation to represent the security constraints to be applied to all HTTP protocol methods for which a correspondingHttpMethodConstraint
element does NOT occur within theServletSecurity
annotation.@HttpMethodConstraint
This annotation is used within theServletSecurity
annotation to represent security constraints on specific HTTP protocol messages.@MultipartConfig
Annotation that may be specified on aServlet
class, indicating that instances of theServlet
expect requests that conform to the multipart/form-data MIME type.@ServletSecurity
This annotation is used on aServlet
implementation class to specify security constraints to be enforced by a Servlet container on HTTP protocol messages.@WebFilter
Annotation used to declare a servletFilter
.@WebInitParam
This annotation is used on aServlet
orFilter
implementation class to specify an initialization parameter.@WebListener
This annotation is used to declare a WebListener.@WebServlet
Annotation used to declare a servlet.
You see, there's nothing like a @WebContextParam
. Which makes also less or more sense; on what kind of class would/could you set it?
Some Servlet based frameworks which rely on context parameters, such as JSF, also allows for setting some of them by JNDI. You might want to look into that instead. Or if it concerns homegrown code, then I'd look if @WebInitParam
isn't a more feasible option for you.