访问在网络服务器启动期间初始化的 Servlet

Access Servlet which is initialize during webserver startup

这与问题有关 How do i get servlet instance from web.xml in my java class

人们不清楚这类问题的用例是什么。我有同样的问题,想给一个用例。

在我的应用程序中,我有一个名为 Configuration 的 class,它扩展了 HttpServlet。在我的 web.xml 中,我有一个为配置定义的启动时加载 servlet。此 class 读取应用程序所需的所有属性,并且绝对有必要在启动期间读取此属性,因为我根据这些属性为我的网络服务器的每个实例做不同的事情。现在我需要在我的 spring 控制器中获取此实例的句柄,以便我可以获得属性的值。我该怎么做?

Configuration 是 Servlet 有什么具体原因吗?如果此 class 的唯一目的是读取稍后要使用的属性并且它本身不服务于任何请求,则它不应该是 Servlet。

有两种方法可以进行这些配置 classes。

一,你可以把这个class注解成一个@Component,让这个class在启动的时候被Spring实例化。然后你可以在任何你需要的地方注入这个bean。

第二种方法,不使用 Spring,是在您的 web.xml 中注册一个 ServletContextListener。创建一个 class 实现 ServletContextListener 并在 contextInitialized() 方法内部,调用配置 class 的方法,其中 属性 加载逻辑所在。

http://www.mkyong.com/servlet/what-is-listener-servletcontextlistener-example/