tomcat启动时自动启动Servlet ...?

时间:2011-03-17 05:45:41

标签: spring tomcat servlets

我有一个要求,我在这列中有一个表是phno,name,id。当我更新表时,一个servlet需要读取该表并连续收集phno,而不向该servlet发出任何请求。然后我们可以获得新的phno 并将短信发送给那些人。

任何人都有关于此发送短信的想法。我正在使用java spring,tomcat。还有其他办法吗?

3 个答案:

答案 0 :(得分:5)

如果您根本不想对其发出HTTP请求,请不要使用HttpServlet。使用ServletContextListener

public class Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        // Do some stuff during webapp's startup.
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // Do some stuff during webapp's shutdown.
    }

}

<listener>中注册web.xml条目,或者当您已经在Servlet 3.0上注册@WebListener注释时。

从此侦听器开始,您可以使用ExecutorService来运行后台线程。或者,当您的servletcontainer / appserver支持它时(Tomcat不支持),而是利用其作业调度工具。

答案 1 :(得分:1)

如果要在启动时加载servlet,请在load-on-startup内的启动时添加要加载的servlet的web.xml元素:

<servlet>
    <servlet-name>MyStartupServlet</servlet-name>
    <servlet-class>com.package.MyStartupServlet</servlet-class>
    <load-on-startup/>
</servlet> 

答案 2 :(得分:0)

查看SMS Gateway。您可能需要订阅一些SMS网关才能从您的程序发送短信。