struktur JSP
Pelayan web memerlukan enjin JSP, yang merupakan bekas untuk memproses halaman JSP. Bekas itu bertanggungjawab untuk memintas permintaan untuk halaman JSP. Tutorial ini menggunakan Apache dengan bekas JSP terbina dalam untuk menyokong pembangunan JSP.
Bekas JSP bekerjasama dengan pelayan web untuk menyediakan persekitaran operasi yang diperlukan dan perkhidmatan lain untuk operasi biasa JSP, dan boleh mengenal pasti dengan betul elemen khas yang unik untuk halaman web JSP.
Rajah berikut menunjukkan lokasi bekas JSP dan fail JSP dalam aplikasi web.
Pemprosesan JSP
Langkah berikut menunjukkan cara pelayan web menggunakan JSP untuk mencipta halaman web:
-
Sama seperti halaman web biasa yang lain, penyemak imbas anda menghantar permintaan HTTP ke pelayan.
Pelayan web menyedari bahawa ini adalah permintaan untuk halaman web JSP dan menghantar permintaan itu kepada enjin JSP. Ini dilakukan menggunakan URL atau fail .jsp.
Enjin JSP memuatkan fail JSP daripada cakera dan menukarkannya kepada servlet. Transformasi ini hanya menukar semua teks templat ke dalam pernyataan println() dan menukar semua elemen JSP kepada kod Java.
Enjin JSP menyusun servlet ke dalam kelas boleh laku dan menghantar permintaan asal kepada enjin servlet.
Satu komponen pelayan web akan memanggil enjin servlet, dan kemudian memuatkan dan melaksanakan kelas servlet. Semasa pelaksanaan, servlet menjana output dalam format HTML dan membenamkannya dalam respons HTTP dan menyerahkannya ke pelayan Web.
Pelayan web mengembalikan respons HTTP kepada penyemak imbas anda dalam bentuk halaman web HTML statik.
Akhirnya, pelayar web memproses halaman web HTML yang dijana secara dinamik dalam respons HTTP seolah-olah ia adalah halaman web statik.
Langkah-langkah yang dinyatakan di atas boleh diwakili oleh rajah berikut:
Secara amnya, enjin JSP akan menyemak sama ada servlet yang sepadan dengan fail JSP sudah wujud , dan semak sama ada tarikh pengubahsuaian fail JSP lebih awal daripada servlet. Jika tarikh pengubahsuaian fail JSP lebih awal daripada servlet yang sepadan, maka bekas boleh memastikan bahawa fail JSP tidak diubah suai dan servlet adalah sah. Ini menjadikan keseluruhan proses lebih cekap dan lebih pantas daripada bahasa skrip lain (seperti PHP).
Secara amnya, halaman web JSP ialah cara lain untuk menulis servlet tanpa menjadi induk pengaturcaraan Java. Kecuali untuk fasa tafsiran, halaman web JSP boleh dianggap hampir sebagai servlet biasa.