如何在没有 web.xml 的情况下以编程方式配置 <context-param>
How to configure <context-param> programmatically without web.xml
除了下面示例中使用 web.xml
的方法之外,还有其他方法可以配置上下文参数吗?
<context-param>
<param-name>com.sun.faces.numberOfLogicalViews</param-name>
<param-value>10</param-value>
</context-param>
从 Servlet 3.0 开始,您可以通过 ServletContext#setInitParameter()
以编程方式设置它们。
只需在下面 ServletContextListener
anywhere in your web project. The @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.
}
}
如果您使用的是嵌入式 Tomcat,它是这样的:
Context.getServletContext()
.getServletRegistrations()
.get("webdavservlet")
.setInitParameter("listings", "true");
除了下面示例中使用 web.xml
的方法之外,还有其他方法可以配置上下文参数吗?
<context-param>
<param-name>com.sun.faces.numberOfLogicalViews</param-name>
<param-value>10</param-value>
</context-param>
从 Servlet 3.0 开始,您可以通过 ServletContext#setInitParameter()
以编程方式设置它们。
只需在下面 ServletContextListener
anywhere in your web project. The @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.
}
}
如果您使用的是嵌入式 Tomcat,它是这样的:
Context.getServletContext()
.getServletRegistrations()
.get("webdavservlet")
.setInitParameter("listings", "true");