Rumah > Soal Jawab > teks badan
Apabila tomcat bermula, konsol mengeluarkan banyak maklumat Maklumat menunjukkan bahawa apabila tomcat bermula, banyak fail konfigurasi projek telah dimuatkan, dan kaedah permulaan projek dipanggil, tetapi saya tidak tahu bagaimana ia dipanggil. Di mana ia dipanggil? Adakah saya perlu mengkonfigurasi sesuatu dengan tomcat?
PS:projek web java
PHP中文网2017-07-05 10:04:11
Konfigurasikan perkara berikut dalam 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
Apa yang diperlukan oleh poster adalah untuk sistem memahami kitaran hayat Servlet. Apabila anda melaksanakan Servlet, kaedah yang manakah akan dipanggil apabila aplikasi web dimulakan. Terdapat terlalu banyak artikel tentang ini:
http://www.jianshu.com/p/1d50...
http://www.runoob.com/servlet...
習慣沉默2017-07-05 10:04:11
Ada tiga cara:
Seperti yang @treeandgrass katakan, tulis semula anotasi Servlet init()
,但前提是在web.xml中给load-on-startup设上值(或者加@WebServlet
tertentu);
melaksanakan init()
,配在web.xml中(或者加@WebFilter
anotasi untuk Penapis tertentu);
Laksanakan antara muka ServletContextListener dan laksanakan contextInitialized()
,配在web.xml中(或者加@WebListener
anotasi).
Di antara ketiga-tiga kaedah ini, saya menggunakan yang terakhir (ServletContextListener) paling kerap (saya biasanya hanya menggunakan kaedah ini apabila menggunakan Spring dalam Web), kerana ia sentiasa diutamakan daripada pelaksanaan Penapis dan Servlet, dan tidak melaksanakan fungsi tertentu dan Penapis dicampurkan bersama.
Kerja permulaan termasuk:
Permulaan kumpulan benang, kumpulan sambungan pangkalan data dan kumpulan sambungan rangkaian
Memuatkan bekas IoC
Pemasa mula
Objek lain yang perlu dimulakan
Kebanyakan kerja permulaan di atas perlu ditutup apabila pelayan web berhenti, dan tugasan ini harus ditulis dalam contextDestroyed()
.