Heim > Fragen und Antworten > Hauptteil
Beim Start von Tomcat gab die Konsole viele Informationen aus. Die Informationen zeigten, dass beim Start von Tomcat viele Projektkonfigurationsdateien geladen wurden und die Projektinitialisierungsmethode aufgerufen wurde, aber ich weiß nicht, wie sie aufgerufen wurde. Wo hieß es? Muss ich etwas mit Tomcat konfigurieren?
PS: Javaweb-Projekt
PHP中文网2017-07-05 10:04:11
web.xml中做如下配置
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>org.cai.MyServlet</servlet-class>
<strong><load-on-startup>0</load-on-startup></strong>
</servlet>
PHP中文网2017-07-05 10:04:11
楼主需要的是系统了解一下 Servlet 的生命周期。当你实现一个 Servlet 的时候,它的哪些方法会在 Web 应用启动的时候调用。这方面的文章太多了:
http://www.jianshu.com/p/1d50...
http://www.runoob.com/servlet...
習慣沉默2017-07-05 10:04:11
有三种办法:
如 @treeandgrass 所说,对某个Servlet重写init()
,但前提是在web.xml中给load-on-startup设上值(或者加@WebServlet
注解);
对某个Filter实现init()
,配在web.xml中(或者加@WebFilter
注解);
实现 ServletContextListener 接口,并实现contextInitialized()
,配在web.xml中(或者加@WebListener
注解)。
这三种方法中,我最常用最后一种(ServletContextListener)(在Web中使用Spring通常只用这种方法),因为它总是优先于Filter和Servlet执行的,而且不会跟实现具体功能的Servlet、Filter混在一起。
初始化的工作包括:
线程池、数据库连接池、网络连接池的初始化
IoC容器的加载
启动定时器
其他需要初始化的对象
以上大多数初始化工作是需要在Web服务器停止时关闭的,这些工作应写在contextDestroyed()
中。