我在eclipse中创建了一个动态Web项目。现在我有一种情况,我需要在应用程序启动时启动一个线程[在main方法中缺少]。 现在我在整个项目中搜索包含main方法的类。但我没有得到它。
与web.xml一样
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
现在我想在index.jsp加载之前执行一些代码。 提前谢谢......
答案 0 :(得分:5)
通常,Web应用程序从应用程序容器启动,因此不需要主方法。
您可能需要添加context listner,以便通知您有关Web应用程序的启动以及启动线程的位置。
答案 1 :(得分:3)
你可以在启动时设置一个servlet加载,意味着它将在服务器启动时运行,如Apache tomcat ..
但请确保您要执行的任务应该在线程中,直到您在启动servlet上加载时编写的任务执行无法完成Web服务器将无法启动并运行,因此,如果您的任务将花费时间比网络服务器会说它无法在xyz秒内启动而且Web服务器也无法启动。
要在启动时加载服务器,您需要在web.xml中配置它
<servlet>
<servlet-name>initServelet</servlet-name>
<servlet-class>com.initServelet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
并且在你的servlet中你需要实现init方法,这个方法将在启动服务器时被调用。
public class initServelet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
// your code goes here
}
}
答案 2 :(得分:2)
Web应用程序没有主要方法。
相反,您应该在其中一个Lifecycle事件中初始化您的应用程序。看一下这个example
答案 3 :(得分:0)
您可以使用过滤器拦截对index.jsp的调用并执行任何初始化操作。
请参阅http://www.tutorialspoint.com/servlets/servlets-writing-filters.htm