永久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
}
}