用Servlet 3.0注释替换context-param元素

vkr*_*mer 10 annotations servlets java-ee

给定:Java EE 5 Web应用程序,其web.xml具有类似的代码段

<context-param>
    <description>c</description>
    <param-name>a</param-name>
    <param-value>b</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

将上下文参数规范转换为基于注释的策略需要做些什么.

Bal*_*usC 9

你可以找到所有javax.servlet在注释中javax.servlet.annotation包的摘要:

  • @HandlesTypes 此批注用于声明ServletContainerInitializer可以处理的类类型.
  • @HttpConstraint 在注释中使用此ServletSecurity注释来表示要应用于注释HttpMethodConstraint中不会出现相应元素的所有HTTP协议方法的安全性约束ServletSecurity.
  • @HttpMethodConstraint 在注释中使用此ServletSecurity注释来表示对特定HTTP协议消息的安全性约束.
  • @MultipartConfig 可以在Servlet类上指定的注释,指示Servlet符合multipart/form-data MIME类型的expect请求的实例.
  • @ServletSecurity 此批注用于Servlet实现类,以指定Servlet容器对HTTP协议消息强制执行的安全性约束.
  • @WebFilter 用于声明servlet的注释Filter.
  • @WebInitParam 此批注用于ServletFilter实现类以指定初始化参数.
  • @WebListener 此批注用于声明WebListener.
  • @WebServlet 用于声明servlet的注释.

你看,没有什么比这更像了@WebContextParam.这也意味着更少或更多; 在什么样的课程/你可以设置它?

一些依赖于上下文参数的基于Servlet的框架(如JSF)也允许通过JNDI设置其中一些框架.你可能想要研究一下.或者如果它涉及自己开发的代码,那么我会看看你@WebInitParam是不是一个更可行的选择.


小智 5

如果您使用的是 Tomcat,则可以在 中使用 Parameter 标记context.xml,它的工作方式与放入 中的上下文参数相同web.xml。因此,您可以使用@WebInitParam来捕获上下文变量。

http://tomcat.apache.org/tomcat-5.5-doc/config/context.html#Context_Parameters