Maison > Questions et réponses > le corps du texte
Lorsque Tomcat a démarré, la console a généré beaucoup d'informations. Les informations ont montré que lorsque Tomcat a démarré, de nombreux fichiers de configuration du projet ont été chargés et la méthode d'initialisation du projet a été appelée, mais je ne sais pas comment elle a été appelée. Où s’appelait-il ? Dois-je configurer quelque chose avec Tomcat ?
PS : projet javaweb
PHP中文网2017-07-05 10:04:11
Configurez les éléments suivants dans 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
Ce dont l'affiche a besoin, c'est que le système comprenne le cycle de vie de Servlet. Lorsque vous implémentez un servlet, laquelle de ses méthodes sera appelée au démarrage de l'application Web. Il y a trop d'articles à ce sujet :
http://www.jianshu.com/p/1d50...
http://www.runoob.com/servlet...
習慣沉默2017-07-05 10:04:11
Il existe trois manières :
Comme @treeandgrass l'a dit, réécrivez une certaine annotation Servlet init()
,但前提是在web.xml中给load-on-startup设上值(或者加@WebServlet
implémenter init()
,配在web.xml中(或者加@WebFilter
annotation pour un certain filtre);
Implémentez l'interface ServletContextListener et implémentez les contextInitialized()
,配在web.xml中(或者加@WebListener
annotations).
Parmi ces trois méthodes, j'utilise le plus souvent la dernière (ServletContextListener) (je n'utilise généralement cette méthode que lorsque j'utilise Spring sur le Web), car elle a toujours priorité sur l'exécution de Filter et de Servlet, et n'implémente pas de fonctions spécifiques. et le filtre sont mélangés.
Le travail d'initialisation comprend :
Initialisation du pool de threads, du pool de connexions à la base de données et du pool de connexions réseau
Chargement du conteneur IoC
Démarrer la minuterie
Autres objets qui doivent être initialisés
La plupart des travaux d'initialisation ci-dessus doivent être fermés lorsque le serveur Web s'arrête, et ces tâches doivent être écrites en contextDestroyed()
.