以编程方式添加context-param?

Tob*_*les 2 jsf servlets

有没有办法以编程方式添加上下文参数?我不想添加web-xml.具体来说,我想做本文中的答案建议:在JSF 1.2中使用EL调用参数方法.

Rav*_*lli 8

对的,这是可能的.

在servlet的init方法中,使用

getServletConfig().getServletContext().setInitParameter("[Parameter name]", "[value]");
Run Code Online (Sandbox Code Playgroud)

或者干脆

getServletContext().setInitParameter("[Parameter name]", "[value]");
Run Code Online (Sandbox Code Playgroud)

这必须为你做到这一点.

对于应用程序负载,

在web.xml中,当您声明此servlet时,请为此servlet提供<load-on-startpup>1的元素.

<servlet>
 <servlet-name>TestServlet</servlet-name>
 <servlet-class>TestServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)

  • 一些API(比如JSF!)使用`ServletContextListener`或`ServletContainerInitializer`来初始化API,它们在创建第一个'Servlet`之前很久就运行了. (4认同)
  • 然而,这种方法不能保证需要相关上下文参数的 API 会在 * 以编程方式设置之后* 读取它。 (2认同)