Jsf 是否以编程方式添加上下文参数?

Jsf 是否以编程方式添加上下文参数?,jsf,servlets,Jsf,Servlets,有没有办法以编程方式添加上下文参数?我不想添加到web xml中。具体地说,我想做这篇文章的答案所建议的:。是的,这是可能的 在servlet的init方法中,使用 getServletConfig().getServletContext().setInitParameter("[Parameter name]", "[value]"); 或者干脆 getServletContext().setInitParameter("[Parameter name]", "[value]"); 这一定

有没有办法以编程方式添加上下文参数?我不想添加到web xml中。具体地说,我想做这篇文章的答案所建议的:。

是的,这是可能的

在servlet的init方法中,使用

getServletConfig().getServletContext().setInitParameter("[Parameter name]", "[value]");
或者干脆

getServletContext().setInitParameter("[Parameter name]", "[value]");
这一定对你有好处

对于应用程序负载

在web.xml中,当您声明这个servlet时,为这个servlet提供
元素作为1

<servlet>
 <servlet-name>TestServlet</servlet-name>
 <servlet-class>TestServlet</servlet-class>
 <load-on-startup>1</load-on-startup>
</servlet>

TestServlet
TestServlet
1.

但是,这种方法不能保证需要上下文参数的API在以编程方式设置后会读取它。这是因为程序员知道将加载到应用程序中的第一个servlet,并且在该servlet中,将设置init参数。一些API(如JSF!)使用
ServletContextListener
ServletContainerInitializer
初始化API,它们在创建第一个
Servlet
之前运行很长时间。因此,也许
ServletContextListener
或另一个是设置初始化参数的最佳位置?顺便说一句,
setInitParameter
似乎只能从Servlet 3.0以后的版本