Berbagi teknologi

Prinsip Tomcat, struktur, pola desain

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 apa

Server web yang menjalankan teknologi java servlet dan jsp, dapat menyediakan lingkungan berjalan untuk web java dan menangani permintaan klien melalui protokol http. Yaitu Tomcat = server http + wadah servlet. Produk serupa termasuk jetty

  • aplikasi web : Aplikasi web mengacu pada aplikasi yang diakses melalui browser Web, yang menggunakan teknologi dan standar Web (seperti HTTP, HTML, CSS, JavaScript, dll.) untuk menyediakan antarmuka pengguna dan berinteraksi dengan pengguna. Aplikasi web dapat mencakup komponen front-end dan back-end. Front-end bertanggung jawab atas antarmuka pengguna dan presentasi, dan back-end bertanggung jawab atas logika bisnis dan pemrosesan data.
  • Servlet : Servlet adalah bagian dari spesifikasi Java EE. Ini adalah program Java yang berjalan di sisi server. Ini digunakan untuk menerima permintaan dari klien (seperti browser web), memproses permintaan ini (termasuk mengakses database, memanggil logika bisnis, dll. ), dan kembali Menanggapi klien. Servlet adalah salah satu teknologi inti untuk membangun konten web dinamis

2 Struktur

konektor konektor+wadah

Kontainer adalah mesin, host, konteks, servlet/wrapper

Jadi arsitekturnya adalah layanan (port 8080), konektor, mesin, host (http:localhost.com), konteks (/mvc, aplikasi web), servlet/wrapper (/add, servlet)

f090bd57045f4088948e1e7da63585ca.png

 

3 komponen utama

konektor 3.1

3.1.1 Titik Akhir

Digunakan untuk: komunikasi lapisan jaringan tcp/ip, seperti NIONIO2

3.1.2 Prosesor

Digunakan untuk: analisis protokol lapisan aplikasi, seperti http

3.1.3 Adaptor

Digunakan untuk: konversi terpadu. Permintaan/respons Tomcat diubah menjadi permintaan/respons servlet, dan kemudian diteruskan ke container container.

  • permintaan servlet adalah antarmuka kunci di Java Servlet API.
  • Java Servlet API adalah sekumpulan antarmuka dan kelas di Java EE (sekarang dikenal sebagai Jakarta EE) untuk mengembangkan aplikasi Java sisi server. Servlet adalah salah satu dari tiga komponen utama JavaWeb (Servlet, Filter, Listener). Hal ini terutama digunakan untuk memproses permintaan klien dan menghasilkan tanggapan.

3.2 Pola desain

3.2.1 Merancang ide titik berubah dan titik konstan

Titik invarian diimplementasikan dengan kelas dan antarmuka abstrak (seperti ProtocolHanlder, abstractProtocol), dan titik perubahan diimplementasikan dengan kelas konkret (seperti Http11NioProtocol, Http11Nio2Protocol)

47fd583736914b5e9911f0e38c739565.png

27e141a1618a4d7b8977cd9fc5a4f24a.png

f646124c6f57416c8648621ea75dbfa3.png

2357e1b0231e4de2b32e8c70f79b00b6.png

6fc9747fa2b14a649d16a3e70e00650d.png

d81414cef6f5481a87660f58599c0e96.png

3.2.2 Mode adaptor

Adaptor, tomcat dan CoyoteAdapter.


3.2 kontainer

3.2.1 Cara mengelola mesin, host, konteks, dan servlet, dan menggunakan mode kombinasi agar semuanya dapat mengimplementasikan Container

  • Pola Komposit adalah pola desain struktural yang memungkinkan Anda menggabungkan objek ke dalam struktur pohon untuk mewakili hierarki "sebagian-keseluruhan". Dalam mode ini, penggunaan objek tunggal dan objek gabungan oleh klien bersifat konsisten, yaitu klien dapat menangani objek tunggal dan kombinasinya dengan cara yang sama.

Terus terang, kelas/antarmuka digunakan untuk merakit struktur pohon (dengan hubungan induk-anak). Ini adalah kombinasi, dan karena semuanya mengimplementasikan antarmuka yang sama, panggilan ke setiap bagian adalah sama.Seperti yang ditunjukkan di bawah ini

d785e0ea64ad4fb6952f9460fcbef154.png

3.2.2 Mesin, host, konteks, dan servlet dipanggil secara berurutan, menggunakan model rantai tanggung jawab Pipeline-Valve.

Pipa adalah rantai tanggung jawab dan antrian, dan elemen dalam antrian adalah katup. Katup dapat menjalankan logika pemrosesan dan mentransfernya ke nilai berikutnya.

Perbedaan antara katup dan filter: katup dari Tomcat, filter dari Java servlet api. Katup bekerja di tingkat wadah web dan mencegat semua permintaan aplikasi web. Filter bekerja di tingkat aplikasi dan mencegat permintaan aplikasi web tertentu.

08b1200a4585496e98a08c964952573a.png

3635bb9b0a7c46a1997621631c00212c.png

acb7a18568bd41c1b4ded295aeee2060.png

d28296d8ebba41d5acc6c209df8c0538.png

3.2.3 Siklus hidup manajemen mesin dan permintaan alokasi

Permintaan alokasi: komponen pemetaan pemetaan. Temukan pembungkus yang sesuai lapis demi lapis sesuai dengan URL.

Siklus hidup: Bertanggung jawab atas pembuatan container, inisialisasi, startup, penghancuran, dll. Setiap Kontainer mewarisi LifeCycle. Jadi ini juga merupakan mode kombinasi.

Pola pengamat juga digunakan (memantau perubahan status siklus hidup),

Mode kombinasi (struktur pohon memiliki hubungan induk-anak),

Pola desain template (tulis template universal (logika umum), panggil metode baru di template, dan implementasikan metode baru dengan cara yang konkret)

 

4 Desain arsitektur

  1. Daftar kebutuhan
  2. Kelas desain berorientasi objek
  3. Temukan titik permintaan yang berubah dan tidak berubah
  4. Titik perubahan diimplementasikan menggunakan kelas abstrak, dan titik invarian diimplementasikan menggunakan kelas konkrit.