如何在没有web.xml的情况下以编程方式配置<context-param>

时间:2016-07-13 10:07:20

标签: servlets context-param

是否有其他方法可以配置上下文参数,不包括使用web.xml的上下文参数,如下例所示?

<context-param>
    <param-name>com.sun.faces.numberOfLogicalViews</param-name>
    <param-value>10</param-value>
</context-param>

2 个答案:

答案 0 :(得分:11)

从Servlet 3.0开始,您可以通过ServletContext#setInitParameter()以编程方式设置它们。

ServletContextListener放在您的网络项目的任何位置。 @WebListener注释将使容器在webapp启动期间自动拾取并运行它。

@WebListener
public class Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        ServletContext servletContext = event.getServletContext(); 
        servletContext.setInitParameter("com.sun.faces.numberOfLogicalViews", "10");
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // NOOP.
    }

}

答案 1 :(得分:0)

如果您使用的是嵌入式Tomcat,则如下所示:

Context.getServletContext()
    .getServletRegistrations()
    .get("webdavservlet")
    .setInitParameter("listings", "true");