永久servlet在服务器启动时加载,并在服务器启动之前一直存在
关掉。

我需要启动一些服务器端Java程序,然后这些程序提供完全唯一且独立于Web服务器的功能。我希望在Tomcat启动时这样做。我看到的解决方案是永久Servlet,它将调用这些Java程序。

那么,如何在Tomcat 6中配置永久Servlet?

有关来自http://java.sun.com/developer/onlineTraining/Servlets/Fundamentals/servlets.html的永久Servlet的更多详细信息


  临时与永久Servlet
  
  可以针对每个客户端请求启动和停止Servlet,也可以在启动Web服务器时启动Servlet,并在服务器关闭之前保持活动状态。临时Servlet是按需加载的,它是节省服务器资源以减少使用功能的好方法。
  
  永久servlet在服务器启动时加载,并在服务器关闭之前一直处于活动状态。当Servlet的启动成本非常高(例如与DBMS建立连接),提供永久的服务器端功能(例如RMI服务)或必须响应时,它们作为服务器的永久扩展安装。尽可能快地满足客户的要求。
  
  无需任何特殊代码即可使servlet临时或永久化。这是服务器配置的功能。
  
  因为可以在Web服务器启动时加载servlet,所以它们可以使用这种自动加载机制来简化服务器端Java程序的加载。然后,这些程序可以提供完全唯一且独立于Web服务器的功能。例如,一个Servlet可以通过TCP / IP端口提供基于R的服务(rlogin,rsh等),同时使用servlet请求/响应协议来呈现和处理用于管理servlet的HTML页面。

最佳答案

您可以使用ServletContextListener进行所需的操作。在您的web.xml中注册一个,例如:

<listener>
    <listener-class>com.example.MyServletContextListener</listener-class>
</listener>


然后创建该类以执行所需的操作:

public class MyServletContextListener implements ServletContextListener {
    public void contextInitialized(ServletContextEvent sce) {
        // initialize and startup whatever you need here
    }

    public void contextDestroyed(ServletContextEvent sce) {
        // shutdown and destroy those things here
    }
}

09-10 06:02
查看更多