Kuasai mekanisme kerja asas perisian tengah Tomcat
Dec 28, 2023 pm 05:25 PMMemahami prinsip pelaksanaan asas perisian tengah Tomcat memerlukan contoh kod khusus
Tomcat ialah pelayan web Java dan bekas Servlet sumber terbuka yang digunakan secara meluas. Ia sangat berskala dan fleksibel dan biasanya digunakan untuk menggunakan dan menjalankan aplikasi web Java. Untuk lebih memahami prinsip pelaksanaan asas perisian tengah Tomcat, kita perlu meneroka komponen teras dan mekanisme pengendaliannya. Artikel ini akan menganalisis prinsip pelaksanaan asas perisian tengah Tomcat melalui contoh kod tertentu.
Komponen teras Tomcat termasuk Penyambung, Bekas dan Pemproses. Penyambung bertanggungjawab untuk mengendalikan isu sambungan antara permintaan pelanggan dan respons pelayan bertanggungjawab untuk menguruskan kitaran hayat komponen Servlet dan memproses permintaan;
Mari kita lihat dahulu cara membuat pelayan Tomcat yang mudah. Berikut ialah contoh kod:
import org.apache.catalina.LifecycleException; import org.apache.catalina.startup.Tomcat; public class SimpleTomcatServer { public static void main(String[] args) { Tomcat tomcat = new Tomcat(); tomcat.setPort(8080); tomcat.addWebapp("/", "path/to/your/webapp"); try { tomcat.start(); tomcat.getServer().await(); } catch (LifecycleException e) { e.printStackTrace(); } } }
Dalam kod di atas, kami mencipta instance Tomcat menggunakan kelas Tomcat dan menetapkan nombor port pelayan kepada 8080. Seterusnya, kami menambah aplikasi web yang memetakan direktori akar ke laluan sumber yang ditentukan. Akhirnya, kami memulakan pelayan Tomcat dan menunggu.
Seterusnya, mari kita lihat dengan lebih mendalam prinsip pelaksanaan asas Tomcat. Penyambung Tomcat bertanggungjawab untuk mengendalikan sambungan antara permintaan pelanggan dan respons pelayan. Ia menggunakan Java NIO (I/O Baharu) untuk mencapai komunikasi rangkaian tidak menyekat dan meningkatkan prestasi pelayan dan keupayaan pemprosesan serentak. Berikut ialah contoh ringkas:
import org.apache.coyote.http11.Http11NioProtocol; public class SimpleConnector { public static void main(String[] args) { Http11NioProtocol protocol = new Http11NioProtocol(); protocol.setPort(8080); try { protocol.init(); protocol.start(); } catch (Exception e) { e.printStackTrace(); } } }
Dalam kod di atas, kami menggunakan kelas Http11NioProtocol untuk mencipta contoh penyambung dan menetapkan nombor port pelayan kepada 8080. Seterusnya, kami memulakan dan memulakan penyambung.
Bekas Tomcat (Bekas) bertanggungjawab mengurus kitaran hayat komponen Servlet dan memproses permintaan. Ia menggunakan mekanisme yang dipanggil rantaian kontena dalaman Tomcat (Rantai Kontena) untuk melaksanakan aliran pemprosesan Servlet. Berikut ialah contoh ringkas:
import org.apache.catalina.core.StandardContext; import org.apache.catalina.core.StandardEngine; import org.apache.catalina.core.StandardHost; import org.apache.catalina.core.StandardWrapper; import org.apache.catalina.startup.ContextConfig; public class SimpleContainer { public static void main(String[] args) { StandardContext context = new StandardContext(); context.setPath(""); context.addLifecycleListener(new ContextConfig()); StandardWrapper wrapper = new StandardWrapper(); wrapper.setName("hello"); wrapper.setServletClass("com.example.HelloServlet"); context.addChild(wrapper); StandardHost host = new StandardHost(); host.addChild(context); StandardEngine engine = new StandardEngine(); engine.addChild(host); try { context.start(); engine.start(); } catch (Exception e) { e.printStackTrace(); } } }
Dalam kod di atas, kami mencipta contoh bekas menggunakan kelas StandardContext dan menetapkan laluan kepada kosong. Seterusnya, kami menambah objek ContextConfig sebagai pendengar kitaran hayat untuk memuatkan maklumat konfigurasi aplikasi web.
Kemudian kami mencipta objek StandardWrapper dan menetapkan nama Servlet dan kelas Servlet. Seterusnya, kami menambah objek Wrapper pada bekas.
Seterusnya, kami mencipta objek StandardHost dan menambah objek StandardContext sebelumnya sebagai nod anak kepada hos.
Akhir sekali, kami mencipta objek StandardEngine dan menambah hos sebagai nod kanak-kanak pada enjin.
Akhirnya, kami menghidupkan bekas dan enjin.
Pemproses Tomcat (Pemproses) bertanggungjawab untuk memproses permintaan tertentu. Ia menggunakan pantulan Java untuk memuatkan dan memanggil komponen Servlet secara dinamik. Berikut ialah contoh ringkas:
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("Hello, Tomcat!"); } }
Dalam kod di atas, kami mencipta kelas HelloServlet, yang diwarisi daripada HttpServlet. Dalam kaedah doGet, kami memperoleh aliran keluaran melalui kaedah getWriter objek HttpServletResponse dan mengembalikan rentetan "Hello, Tomcat!"
Melalui contoh kod di atas, kita boleh mempunyai pemahaman awal tentang prinsip pelaksanaan asas perisian tengah Tomcat. Khususnya, Tomcat menggunakan penyambung untuk mengendalikan isu sambungan antara permintaan pelanggan dan respons pelayan, menggunakan bekas untuk mengurus kitaran hayat komponen Servlet dan mengendalikan permintaan dan menggunakan pemproses untuk mengendalikan permintaan tertentu. Mereka bekerjasama untuk melaksanakan pelayan Web Java dan bekas Servlet berprestasi tinggi dan berskala.
Atas ialah kandungan terperinci Kuasai mekanisme kerja asas perisian tengah Tomcat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Direktori akar tapak web Tomcat terletak dalam subdirektori webapps Tomcat dan digunakan untuk menyimpan fail aplikasi web, sumber statik dan direktori WEB-INF ia boleh didapati dengan mencari atribut docBase dalam fail konfigurasi Tomcat.

Untuk menggunakan berbilang projek melalui Tomcat, anda perlu mencipta direktori aplikasi web untuk setiap projek dan kemudian: Penggunaan automatik: Letakkan direktori aplikasi web dalam direktori aplikasi web Tomcat. Penggunaan manual: Gunakan projek secara manual dalam aplikasi pengurus Tomcat. Sebaik sahaja projek itu digunakan, ia boleh diakses dengan nama penggunaannya, contohnya: http://localhost:8080/project1.

Untuk mengkonfigurasi Tomcat menggunakan nama domain, ikuti langkah berikut: Buat sandaran server.xml. Buka server.xml dan tambahkan elemen Hos, gantikan example.com dengan nama domain anda. Buat sijil SSL untuk nama domain (jika perlu). Tambahkan penyambung SSL dalam server.xml, tukar port, fail stor kunci dan kata laluan. Simpan server.xml. Mulakan semula Tomcat.

Menjalankan projek dengan nombor port yang berbeza pada pelayan Tomcat memerlukan langkah berikut: Ubah suai fail server.xml dan tambah elemen Penyambung untuk menentukan nombor port. Tambah elemen Konteks untuk menentukan aplikasi yang dikaitkan dengan nombor port. Buat fail WAR dan gunakannya ke direktori yang sepadan (webapps atau webapps/ROOT). Mulakan semula Tomcat untuk menggunakan perubahan.

Bilangan maksimum sambungan Tomcat mengehadkan bilangan pelanggan yang disambungkan pada masa yang sama, manakala bilangan maksimum utas mengehadkan bilangan utas yang boleh mengendalikan permintaan pada masa yang sama. Had ini menghalang keletihan sumber pelayan dan dikonfigurasikan dengan menetapkan sifat maxConnections dan maxThreads dalam server.xml untuk memadankan kapasiti dan beban pelayan.

Tomcat boleh menjalankan HTML dan JSP Kaedahnya adalah seperti berikut: salin fail HTML ke subdirektori yang sepadan dengan direktori Tomcat dan aksesnya dalam penyemak imbas. Salin fail JSP ke subdirektori yang sepadan bagi direktori Tomcat, dan gunakan arahan <%@ page %> untuk menentukan kod Java dan mengaksesnya dalam penyemak imbas.

Log ralat permulaan Tomcat biasanya terletak dalam fail catalina.out Fail ini mengandungi maklumat ralat yang berlaku semasa proses permulaan Ralat biasa termasuk pengecualian aplikasi, ralat konfigurasi dan masalah sambungan yang kerap mencari masalah yang berpotensi.

Ya, direktori kerja Tomcat boleh dikosongkan. Sebab: 1. Simpan fail sementara (seperti fail JSP yang dikompilasi dan maklumat sesi); Kaedah pembersihan: 1. Manual: Hentikan pelayan dan padam semua fail dan subdirektori dalam direktori kerja 2. Automatik: Tetapkan nama laluan Pengurus dalam fail konfigurasi kepada direktori yang tidak wujud, dan ia akan dikosongkan secara automatik pada permulaan.
