Permintaan Pelanggan JSP, Respons Pelayan & Kod Status HTTP

Isi kandungan:

Anonim

Tindakan JSP yang menggunakan konstruk dalam sintaks XML untuk mengawal tingkah laku servlet engine. Kami akan mengetahui lebih terperinci mengenai pelbagai elemen Tindakan JSP seperti permintaan pelanggan, respons pelayan, kod status HTTP.

Dalam tutorial ini, anda akan belajar-

  • Permintaan Pelanggan JSP
  • Respons Pelayan JSP
  • Kod Status HTTP JSP

Permintaan Pelanggan JSP

  • Apabila halaman web diminta, ia akan menghantar maklumat ke pelayan web di tajuk HTTP.
  • Kita boleh menggunakan maklumat ini menggunakan objek HTTPServletRequest.
  • Maklumat yang dihantar oleh penyemak imbas disimpan dalam tajuk permintaan HTTP permintaan.
  • Kami menggunakan tajuk yang berbeza untuk mengirim maklumat ke objek permintaan.

Tajuk yang berbeza dijelaskan di bawah:

Kepala Penerangan Contohnya
Terima Ini menentukan jenis MIME yang dapat ditangani oleh penyemak imbas atau pelanggan lain Gambar / png atau gambar / jpeg.webp
Terima-charset Ia menggunakan set watak yang digunakan oleh penyemak imbas untuk memaparkan maklumat ISO-8859-1
Terima- Pengekodan Ini menentukan jenis pengekodan yang dikendalikan oleh penyemak imbas Gzip atau kompres
Terima-bahasa Ini menentukan bahasa yang ditentukan pelanggan En, en_us
Kebenaran Header yang digunakan oleh klien ketika cuba mengakses halaman web yang dilindungi kata laluan
Sambungan Ini menunjukkan sama ada pelanggan dapat menangani sambungan HTTP yang berterusan (penyemak imbas dapat mengambil beberapa fail) Terus hidup
Panjang kandungan Berlaku untuk menghantar permintaan. Ia memberikan ukuran data pos bait
Kuki Mengembalikan kuki ke pelayan (yang sebelumnya dihantar ke penyemak imbas)
Tuan rumah Menentukan hos dan port URL asal
Sekiranya diubahsuai sejak Ini menunjukkan bahawa ia hanya memerlukan halaman jika telah diubah atau diubah
Sekiranya tidak diubah suai sejak Ini menunjukkan bahawa ia memerlukan halaman hanya jika belum diubah atau diubah
Perujuk Menunjukkan URL halaman URL rujukan
Ejen pengguna Mengenal pasti permintaan penyemak imbas atau pelanggan

Kaedah berikut digunakan untuk membaca tajuk HTTP di halaman JSP:

  1. Cookie [] getCookies () - mengembalikan array yang mengandungi objek cookie yang telah dihantar oleh pelanggan
  2. Enumeration getAttributeNames () - mengandungi penghitungan nama atribut untuk permintaan
  3. Enumeration getHeaderNames () - mengandungi penghitungan nama header.
  4. Enumeration getParameterNames () - mengandungi penghitungan mendapatkan nama parameter dalam permintaan.
  5. HttpSessiongetSession () - mengembalikan sesi semasa yang berkaitan dengan permintaan atau jika tidak mempunyai sesi maka ia akan membuat yang baru.
  6. Locale getLocale () - mengembalikan tempat pilihan yang akan diterima oleh pelanggan. Ia telah diberikan kepada respons. Secara lalai, nilai akan menjadi lokasi pelayan lalai.
  7. Objek getAttribute (String name) - mengembalikan nilai atribut bernama sebagai objek.
  8. ServletInputStreamgetInputStream () - mengambil semula permintaan sebagai data binari.
  9. String getAuthType () - mengembalikan nama skema pengesahan untuk melindungi servlet
  10. String getCharacterEncoding () - mengembalikan nama pengekodan aksara yang digunakan dalam badan permintaan.
  11. String getContentType () - mengembalikan jenis permintaan MIME.
  12. String getContextPath () - mengembalikan bahagian permintaan URI menunjukkan jalan konteks URI
  13. String getHeader (String name) - mengembalikan tajuk permintaan sebagai rentetan
  14. String getMethod () - mengembalikan nama kaedah HTTP seperti GET, POST
  15. String getParameter (String name) - mengembalikan parameter permintaan sebagai rentetan.
  16. String getPathInfo () - mengembalikan maklumat laluan yang berkaitan dengan URL
  17. String getQueryString () - mengembalikan rentetan pertanyaan yang dikaitkan dengan URL permintaan
  18. String getServletPath () - mengembalikan bahagian URL permintaan yang memanggil JSP
  19. String [] getParameterValues ​​(String name) - mengembalikan array objek rentetan yang mengandungi nilai yang diminta parameter

Contoh:

Dalam contoh di bawah, kami menggunakan kaedah yang berbeza menggunakan objek permintaan

<% @ bahasa halaman = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ halaman import = "java.io. * java.util. *"%> Permintaan Pelanggan Guru JSP 

Permintaan Pelanggan Guru JSP

tajuk guru tajuk guru Nilai <%HttpSession gurusession = request.getSession ();out.print (" Nama Sesi adalah " + gurusession + " ");Lokasi gurulocale = request.getLocale ();out.print (" Nama Lokal adalah " + gurulocale + " ");Jalur rentetan = request.getPathInfo ();out.print (" Nama Path adalah " + path + " ");Rentetan lpath = request.get ();out.print (" Laluan konteks adalah " + lipath + " ");String servername = request.getServerName ();out.print (" Nama Pelayan adalah " + servername + " ");int portname = request.getServerPort ();out.print (" Pelabuhan Pelayan adalah " + nama port + " ");Penghitungan hnames = request.getHeaderNames ();sementara (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" " + paramName + "");String paramValue = request.getHeader (paramName);out.println ("" + paramValue + " ");}%>

Penjelasan kod:

Baris Kod 17: Dengan menggunakan objek permintaan, kita mendapatkan objek sesi dari sesi tersebut, dan kita mendapatkan nilai objek dari sesi tersebut

Baris Kod 19: Dengan menggunakan objek permintaan, kita mendapatkan lokasi sesi tertentu i.een_US untuk JSP itu.

Baris Kod 21: Dengan menggunakan objek permintaan, kami mendapatkan maklumat jalan untuk JSP itu. Dalam kes ini, tidak sah kerana tidak ada jalan untuk URL yang disebutkan.

Baris Kod 23: Dengan menggunakan objek permintaan, kita mendapatkan jalur konteks, iaitu jalur akar

Baris Kod 25: Dengan menggunakan objek permintaan, kami mendapat nama pelayan.

Baris Kod 27: Dengan menggunakan objek permintaan, kita mendapatkan port pelayan.

Baris Kod 29-35: Dengan menggunakan objek permintaan, kami mendapatkan nama header yang keluar sebagai penghitungan, dan oleh itu kami mendapat semua nilai header dalam nama header.

Dalam ini, kami mendapat semua nilai tajuk sebagai kuki, hos, sambungan, terima bahasa, terima pengekodan.

Apabila anda melaksanakan kod di atas, anda mendapat output berikut:

Keluaran :

Kami mendapat rangkaian nilai seperti nama sesi, nama tempat, nama jalan, nama pelayan, nama port, host, jalan konteks dan semua nilai tajuk JSP itu.

Respons Pelayan JSP

  • Apabila permintaan diproses dan kemudian tindak balas dihasilkan dari pelayan web. Ia terdiri daripada baris status, tajuk respons, baris kosong dan dokumen.
  • Ia adalah objek HTTPServletResponseclass, yang merupakan objek tindak balas.
  • Garis status adalah versi HTML.

Tajuk respons disebutkan di bawah:

Kepala Penerangan
Benarkan Ini menentukan kaedah permintaan seperti GET, POST yang diminta oleh pelayan
Kawalan cache Dokumen jawapan boleh dicache. Ia boleh bersifat awam, peribadi dan tanpa cache. Tidak ada cache yang menentukan bahawa dokumen tidak boleh disimpan dalam cache
Sambungan Ini memberi arahan sama ada penyemak imbas harus menggunakan ConnectionHTTP yang tersimpan atau tidak. Nilai tutup menunjukkan bahawa penyemak imbas tidak boleh menggunakan berterusan dalam HTTPConnections dan "terus-hidup" bermaksud menggunakan sambungan berterusan
Kandungan-pelupusan Untuk bertanya kepada pengguna sama ada menyimpan tindak balas ke cakera atau tidak
Pengekodan kandungan Halaman mesti dikodkan semasa penghantaran
Panjang kandungan Bilangan bait dalam tindak balas
Jenis kandungan Ia menentukan jenis tindak balas MIME
Tamat tempoh Menentukan sampai bila kandungan harus dianggap ketinggalan zaman dan tidak boleh disimpan dalam cache
Terakhir diubah suai Ini menunjukkan bila dokumen terakhir diubah
Lokasi Ini harus disertakan dengan semua respons yang mempunyai kod status 300 sebagai kod status
Segarkan Ini menentukan cara mencari halaman yang dikemas kini.
Cuba semula Ia dapat digunakan dengan respons 503 untuk memberitahu pelanggan tentang seberapa cepat ia dapat mengulangi permintaan
Tetapkan kuki Menentukan kuki yang berkaitan dengan halaman

Berikut adalah kaedah menggunakan objek tindak balas:

  1. String encodeRedirectURL (String URL) - mengekod URL dalam kaedah redirectURL.
  2. String encodeURL (String URL) - menyandikan URL dengan memasukkan ID sesi.
  3. Boolean mengandungHeader (String name) - mengandungi header di JSP atau tidak.
  4. Boolean isCommited () - tindak balas telah dilakukan atau tidak.
  5. Batal addCookie (Cookie cookie) - menambah cookie pada tindak balas
  6. Void addDateHeader (String name, String value) - menambah nama dan nilai tarikh header tindak balas
  7. Void addHeader (String name, String value) - menambahkan header respons dengan nama dan nilai
  8. Void addIntHeader (String name, int value) - menambah header respons dengan nama dan nilai integer
  9. Void flushBuffer () - memaksa kandungan dalam penyangga ke output ke klien.
  10. Void reset () - membersihkan data dalam buffer.
  11. Void resetBuffer - membersihkan penampan kandungan dalam tindak balas tanpa membersihkan kod status.
  12. Void sendError (intsc, Stringmsg) - menghantar tindak balas ralat kepada pelanggan menggunakan kod status.
  13. Void sendRedirect (String location) - menghantar respons pengalihan sementara kepada klien.
  14. Void setBufferSize (ukuran int) - menetapkan ukuran penyangga badan
  15. Void setCharacterEncoding (String charset) - menetapkan pengekodan watak
  16. Void setContentType (String type) - menetapkan jenis kandungan tindak balas
  17. Void setContentLength (intlen) - menetapkan panjang kandungan tindak balas
  18. Void setLocale (Locale lcl) - menetapkan jenis respons tempatan
  19. Void setStatus (intsc) - menetapkan kod status tindak balas

Contoh:

Dalam contoh ini, kita merangkumi pelbagai kaedah getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ bahasa halaman = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ halaman import = "java.io. * java.util. *"%> Tindak Balas Tindakan Guru 

Respons Guru

<%Lokal lcl = respons.getLocale ();out.println ("Lokasi adalah: + lcl + "\ n");tindak balas.flushBuffer ();Output PrintWriter = respons.getWriter ();output.println ("Ini dari objek penulis");Jenis rentetan = respons.getContentType ();out.println ("Jenis kandungan: + type + "\ n");// Tetapkan muat semula, muatkan masa automatik sebagai 5 saatrespons.setIntHeader ("Segarkan", 5);// Dapatkan masa sekarangTarikh dt = Tarikh baru ();out.println ("Tarikh hari ini adalah: + dt.toString () + "\ n");%>

Penjelasan kod:

Baris Kod 13: Menggunakan objek tindak balas, kita mendapat objek lokal dari sesi JSP ini

Baris Kod 15: Menggunakan objek tindak balas, flushbuffer digunakan untuk memaksa kandungan penyangga menjadi klien

Baris Kod 16: Menggunakan objek tindak balas, kita mendapatkan objek penulis yang mendapat output dalam aliran output

Garis Kod18: Dengan menggunakan objek tindak balas, kita mendapatkan jenis kandungan iaitu objek respons jenis MIME

Baris Kod 21: Menggunakan objek respons, ia digunakan untuk memuat secara automatik dalam setiap 5 saat kerana 5 diatur sebagai parameter kedua

Apabila anda melaksanakan kod di atas, anda mendapat output berikut:

Pengeluaran:

  • Di sini kita mendapat output seperti ini dari objek penulis dari getWriter, yang memberi kita objek dan kita dapat mengeluarkan dalam aliran output.
  • Kami mendapat tempat sebagai en_us dan jenis kandungan sebagai teks / html
  • Kami mendapat charset sebagai ISO 8859
  • Tarikh hari ini sebagai tarikh semasa.

Kod Status HTTP JSP

  • Apabila permintaan diproses, tindak balas dihasilkan. Baris status respons terdiri daripada versi HTTP, kod status dan mesej yang berkaitan.
  • Mesej tersebut secara langsung dikaitkan dengan kod status dan versi HTTP, dan ia ditentukan oleh pelayan.
  • Secara lalai 200 ditetapkan sebagai kod status di JSP, jadi kami tidak perlu menetapkan secara jelas.
  • Kita boleh menetapkan sebagai kaedah respons.setStatus ()

Kodnya terdapat dalam 5 kategori berikut:

  • 100-199 - Di sini pelanggan menunjukkan bahawa ia harus bertindak balas dengan beberapa tindakan
  • 200-299 - Ini menandakan bahawa permintaan berjaya
  • 300-399 - Mereka digunakan untuk fail yang telah dipindahkan dan biasanya menyertakan header lokasi yang menunjukkan alamat baru
  • 400-499 - Menunjukkan kesalahan oleh pelanggan
  • 500-599 - Menunjukkan ralat oleh pelayan

Beberapa kod status biasa ada di bawah:

  • 200 - Menunjukkan semuanya baik-baik saja
  • 301 - Ia telah bergerak secara kekal
  • 304 - Tidak diubah sejak perubahan terakhir
  • 400 - Permintaan buruk
  • 404 - Tidak dijumpai
  • 405 - Kaedah tidak dijumpai
  • 500 - Ralat Pelayan Dalaman
  • 503 - Perkhidmatan tidak tersedia
  • 505 - Versi HTTP tidak disokong

Beberapa kaedahnya disenaraikan di bawah:

  1. SetStatus kekosongan awam (intstatusCode)

    Ini menetapkan kod status mana yang ingin kita tetapkan di Halaman JSP itu. Ini akan memberi kita mesej kod status yang telah ditetapkan

  2. Hantar kekosongan awam (URL rentetan)

    Ia menghasilkan tindak balas 302 bersama dengan tajuk lokasi yang memberikan URL dokumen baru

  3. Kesalahan kekosongan awam (intcode, Stringmsg)

    Ini mengirimkan kod status bersama dengan pesanan ringkas dan diformat di dalam dokumen HTML.

Contoh:

Dalam contoh ini, kami menghantar ralat ke halaman JSP secara eksplisit.

<% @ bahasa halaman = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Kod Status Guru <% Respons.sendError (404, "Halaman Guru Tidak Ditemui"); %>

Penjelasan kod:

Baris Kod 10: Dengan menggunakan objek tindak balas, kami mengirimkan kesalahan ke halaman dengan dua parameter.

  1. Kod status - Ini boleh menjadi perkara di atas. Dalam kes ini, kita telah menggambarkan sebagai 404
  2. Mesej - Ini boleh menjadi mesej khusus yang ingin kami tunjukkan kesalahannya

Sekiranya anda melaksanakan kod di atas, anda akan mendapat output berikut:

Pengeluaran:

Di sini kita mendapat kod ralat sebagai 404, yang dikirim dari kod dan juga memaparkan pesan "Halaman Guru tidak dijumpai" yang dilihat dalam output.

Ringkasan:

  • Dalam artikel ini, kami telah mengetahui tentang permintaan klien dan respons pelayan tentang bagaimana permintaan tersebut dicegat dan bagaimana respons dimanipulasi.
  • Kami juga telah mengetahui tentang kod status HTTP untuk menunjukkan kod ralat atau kod kejayaan untuk fail tertentu.