Rumah >Java >Javabermula >Kitaran hayat servlet dibahagikan kepada beberapa peringkat

Kitaran hayat servlet dibahagikan kepada beberapa peringkat

青灯夜游
青灯夜游asal
2023-02-23 13:46:2631440semak imbas

Kitaran hayat Servlet merujuk kepada keseluruhan proses servlet daripada penciptaan hingga kemusnahan, yang boleh dibahagikan kepada 3 peringkat: 1. Peringkat permulaan, memanggil kaedah init() untuk melaksanakan kerja permulaan Servlet 2; Peringkat berjalan (memproses permintaan ), bekas akan mencipta objek ServletRequest yang mewakili permintaan HTTP dan objek ServletResponse yang mewakili respons HTTP untuk permintaan yang ditentukan, dan kemudian menghantarnya sebagai parameter kepada kaedah service() Servlet 3. Pemusnahan fasa.

Kitaran hayat servlet dibahagikan kepada beberapa peringkat

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Java 8, komputer DELL G3.

1.

Apa itu Servlet?

Servlet (Server Applet) ialah singkatan Java Servlet dipanggil program perkhidmatan kecil atau penyambung perkhidmatan dan mempunyai ciri Platform dan protokol bebas, ialah program yang dijalankan pada pelayan web atau pelayan aplikasi.

2. Peranan Servlet

Ia bertindak sebagai pelayan daripada pelayar web atau lain-lain Pelanggan HTTP Lapisan tengah antara permintaan dan pangkalan data atau aplikasi pada pelayan HTTP. Fungsi utama ialah mengumpul input pengguna daripada borang web, menyemak imbas dan menjana data secara interaktif, dan juga menjana kandungan web dinamik.

2. Kitaran hayat Servlet

Kitaran hayat servlet boleh ditakrifkan sebagai keseluruhan proses daripada penciptaan hingga kemusnahan .

Tiga langkah ialah: pemulaan------> permintaan pemprosesan------> objek ---------->Initialize

(panggil kaedah

init () ) --------->Proses/ balas kepada pelanggan Tamatkan permintaan (panggil perkhidmatan() kaedah) ---------> musnahkan (panggil musnahkan() kaedah, akhirnya kutipan sampah dilakukan oleh pemungut sampah JVM) 1) Fasa permulaan

Apabila pelanggan menghantar permintaan HTTP kepada bekas Servlet untuk mengakses Servlet , bekas Servlet terlebih dahulu Menghuraikan permintaan dan semak sama ada objek Servlet sudah wujud dalam memori Jika ya, gunakan objek Servlet secara langsung Jika tidak, buat objek contoh Servlet dan kemudian mulakan Servlet dengan memanggil kaedah init(). Perlu diingat bahawa semasa keseluruhan kitaran hayat Servlet, kaedah init()nya hanya boleh dipanggil sekali.

2) Fasa berjalan (permintaan pemprosesan)

Ini adalah fasa paling penting dalam kitaran hayat Servlet Dalam fasa ini, bekas Servlet akan mencipta wakil untuk permintaan ini Objek ServletRequest permintaan HTTP dan objek ServletResponse mewakili respons HTTP, dan kemudian hantarkannya sebagai parameter kepada kaedah servis() Servlet.

Kaedah service() mendapatkan maklumat permintaan pelanggan daripada objek ServletRequest dan memproses permintaan itu, serta menjana hasil respons melalui objek ServletResponse.

Semasa keseluruhan kitaran hayat Servlet, untuk setiap permintaan akses Servlet, bekas Servlet akan memanggil kaedah service() Servlet dan mencipta objek ServletRequest dan ServletResponse baharu, iaitu, service() Kaedah akan dipanggil beberapa kali sepanjang kitaran hayat Servlet.

3) Fasa pemusnahan

Apabila pelayan ditutup atau aplikasi web dialih keluar daripada bekas, Servlet dimusnahkan apabila aplikasi web ditutup. Sebelum memusnahkan Servlet, bekas Servlet akan memanggil kaedah destroy() Servlet untuk membenarkan objek Servlet melepaskan sumber yang didudukinya. Kaedah destroy() hanya boleh dipanggil sekali semasa keseluruhan kitaran hayat Servlet.

Perlu diambil perhatian bahawa sebaik sahaja objek Servlet dicipta, ia akan berada dalam memori dan menunggu untuk akses pelanggan Objek Servlet tidak akan dimusnahkan sehingga pelayan ditutup atau aplikasi web dialih keluar daripada bekas.

3. Penjelasan terperinci tentang kaedah kitaran hayat

Cipta objek Servlet dan cipta objek Servlet melalui pelayan mekanisme refleksi Pertama Ia akan dibuat hanya atas permintaan. (Lalai)

1 kaedah init() Panggil Servlet. Kaedah init() objek memulakan maklumat Servlet Kaedah init() hanya akan dipanggil sekali selepas penciptaan (fasa permulaan)

(1) Kaedah init direka untuk dipanggil sekali sahaja. Ia dipanggil apabila Servlet pertama kali dibuat, dan tidak lagi dipanggil pada setiap permintaan pengguna berikutnya. Oleh itu,
ia digunakan untuk permulaan sekali, dicipta apabila pengguna memanggil URL Servlet untuk kali pertama Anda juga boleh menentukan bahawa Servlet dimuatkan apabila pelayan bermula untuk kali pertama .

(2)Apabila pengguna memanggil Servlet, tika Servlet akan dibuat dan setiap permintaan pengguna akan menjana urutan baharu Ia akan diserahkan kepada kaedah doGet atau doPost apabila sesuai.

(3) Kaedah init() hanya mencipta atau memuatkan beberapa data, yang akan digunakan sepanjang kitaran hayat Servlet.

Kaedah init ditakrifkan seperti berikut:

public void init() throws ServletException {
  // 初始化代码...
}

kaedah servis()

Sebagai tindak balas kepada permintaan, panggil kaedah perkhidmatan() atau doGet(), doPost() untuk memproses permintaan Kaedah ini dijalankan dalam berbilang benang negeri. (Fasa tindak balas kepada permintaan pelanggan)

(1) Kaedah perkhidmatan() ialah kaedah utama untuk melaksanakan tugas sebenar, mengendalikan permintaan daripada klien (pelayar) dan format Jawapan ditulis semula kepada pelanggan.

(2) Setiap kali pelayan menerima permintaan Servlet, pelayan akan menjana urutan baharu dan memanggil perkhidmatan.

(3) Proses Servlet menerima dan membalas permintaan pelanggan Pertama, pelanggan menghantar permintaan kepada kaedah perkhidmatan() untuk bertindak balas kepada permintaan kod sumber yang dalam kaedah service() Padankan kaedah permintaan, pilih untuk memanggil doGet, doPost dan kaedah lain, dan kemudian masukkan kaedah yang sepadan untuk memanggil kaedah lapisan logik untuk melaksanakan respons kepada pelanggan. Memandangkan tiada kaedah doGet, doPost, dsb. dalam antara muka Servlet dan GenericServlet, kaedah ini ditakrifkan dalam HttpServlet Oleh itu, setiap kali kami mentakrifkan Servlet, kami mesti melaksanakan doGet atau doPost dan kaedah lain.

(4) kaedah service() Semak jenis permintaan HTTP (GET, POST, PUT, DELETE, dll.), dan panggil doGet, doPost, doPut, doDelete apabila sesuai dan kaedah lain untuk diproses.

Kaedah perkhidmatan ditakrifkan seperti berikut:

public void service(ServletRequest request,ServletResponse response) 
      throws ServletException, IOException{
}

Memandangkan kaedah perkhidmatan() dipanggil oleh bekas, kaedah perkhidmatan akan memanggil doGet, doPost, kaedah doPut, doDelete dan lain-lain. Oleh itu, kami tidak perlu melakukan apa-apa dengan kaedah service(), kami hanya perlu menulis semula doGet() atau doPost() mengikut jenis permintaan pelanggan.

3 kaedah doGet()

digunakan untuk memproses permintaan , Kaedah dijalankan dalam keadaan berbilang benang. (Fasa respons kepada permintaan pelanggan)

doGet() ialah kaedah yang paling biasa digunakan dalam permintaan perkhidmatan, digunakan untuk memproses permintaan Apabila jenis permintaan URL ialah permintaan GET , Atau ia adalah jenis permintaan yang tidak ditentukanborang HTML, maka permintaan itu akan diproses dengan kaedah doGet().

Kaedah doGet ditakrifkan seperti berikut:

public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

kaedah doPost()

digunakan untuk memproses permintaan dan kaedah berjalan dalam keadaan berbilang benang. (Fasa respons kepada permintaan pelanggan)

doPost() ialah kaedah yang paling biasa digunakan dalam permintaan perkhidmatan Ia digunakan untuk memproses permintaan apabila permintaan itu datang daripada permintaan yang ditetapkan khas taip sebagai POST borang HTML, maka permintaan akan dikendalikan oleh kaedah doPost().

Kaedah doPost ditakrifkan seperti berikut:

public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

5

Apabila sudah lama tidak dipanggil atau pelayan ditutup, kaedah destroy() akan dipanggil untuk memusnahkan objek Servlet. (Fasa penamatan)

(1) Kaedah

musnah() hanya akan dipanggil sekali, pada penghujung kitaran hayat Servlet.

(2) Kaedah destroy() membenarkan

Servlet menutup sambungan pangkalan data, menghentikan utas latar belakang, menulis senarai kuki atau klik kaunter ke cakera dan melakukan aktiviti pembersihan lain yang serupa .

(3) Selepas memanggil kaedah destroy(), objek

servlet ditandakan untuk pengumpulan sampah.

Kaedah musnah ditakrifkan seperti berikut:

public void destroy() {
    // 终止化代码...
  }

4 🎜>Adalah lebih mudah untuk melihat carta tempoh selepas memahami kandungan di atas.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Kitaran hayat servlet dibahagikan kepada beberapa peringkatPengajaran Pengaturcaraan

! !

Atas ialah kandungan terperinci Kitaran hayat servlet dibahagikan kepada beberapa peringkat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn