Permintaan Klien JSP, Respons Server & Kode Status HTTP

Daftar Isi:

Anonim

Tindakan JSP yang menggunakan konstruksi dalam sintaks XML untuk mengontrol perilaku mesin servlet. Kita akan mempelajari lebih detail tentang berbagai elemen JSP Action seperti permintaan klien, respons server, kode status HTTP.

Dalam tutorial ini, Anda akan belajar-

  • Permintaan Klien JSP
  • Respons Server JSP
  • Kode Status HTTP JSP

Permintaan Klien JSP

  • Ketika halaman web diminta, itu mengirimkan informasi ke server web di header HTTP.
  • Kita dapat menggunakan informasi ini menggunakan objek HTTPServletRequest.
  • Informasi yang dikirim oleh browser disimpan di header permintaan permintaan HTTP.
  • Kami menggunakan tajuk yang berbeda untuk mengirim informasi ke objek permintaan.

Header yang berbeda dijelaskan di bawah ini:

Header Deskripsi Contoh
Menerima Ini menentukan jenis MIME yang dapat ditangani oleh browser atau klien lain Image / png atau image / jpeg.webp
Terima-charset Ini menggunakan kumpulan karakter yang digunakan oleh browser untuk menampilkan informasi ISO-8859-1
Terima- Pengkodean Ini menentukan jenis pengkodean yang ditangani oleh browser Gzip atau kompres
Terima-bahasa Ini menentukan bahasa yang ditentukan klien En, en_us
Otorisasi Header digunakan oleh klien saat mencoba mengakses halaman web yang dilindungi kata sandi
Koneksi Ini menunjukkan apakah klien dapat menangani koneksi HTTP yang persisten (browser dapat mengambil banyak file) Berusaha agar hidup
Panjang konten Berlaku untuk mengirim permintaan. Ini memberikan ukuran data posting byte
Kue kering Mengembalikan cookie ke server (yang sebelumnya dikirim ke browser)
Tuan rumah Menentukan host dan port dari URL asli
Jika diubah sejak Ini menunjukkan bahwa itu hanya membutuhkan halaman jika telah diubah atau dimodifikasi
Jika tidak diubah sejak Ini menunjukkan bahwa itu membutuhkan halaman hanya jika belum diubah atau dimodifikasi
Perujuk Menunjukkan URL halaman URL pengarah
Agen pengguna Mengidentifikasi browser atau klien yang membuat permintaan

Metode berikut digunakan untuk membaca header HTTP di halaman JSP:

  1. Cookie [] getCookies () - mengembalikan larik yang berisi objek cookie yang telah dikirim klien
  2. Enumeration getAttributeNames () - berisi enumerasi nama atribut untuk permintaan
  3. Enumeration getHeaderNames () - berisi pencacahan nama header.
  4. Enumeration getParameterNames () - berisi enumerasi untuk mendapatkan nama parameter dalam permintaan.
  5. HttpSessiongetSession () - mengembalikan sesi saat ini yang terkait dengan permintaan atau jika tidak memiliki sesi maka itu akan membuat yang baru.
  6. Lokal getLocale () - mengembalikan lokal pilihan tempat klien akan menerima konten. Itu telah ditetapkan ke respons. Secara default, nilainya akan menjadi lokal default server.
  7. Objek getAttribute (Nama string) - mengembalikan nilai atribut bernama sebagai objek.
  8. ServletInputStreamgetInputStream () - mengambil badan permintaan sebagai data biner.
  9. String getAuthType () - mengembalikan nama skema otentikasi untuk melindungi servlet
  10. String getCharacterEncoding () - mengembalikan nama pengkodean karakter yang digunakan dalam isi permintaan.
  11. String getContentType () - mengembalikan tipe MIME dari isi permintaan.
  12. String getContextPath () - mengembalikan bagian URI permintaan yang menunjukkan jalur konteks URI
  13. String getHeader (String name) - mengembalikan header permintaan sebagai string
  14. String getMethod () - mengembalikan nama metode HTTP seperti GET, POST
  15. String getParameter (String name) - mengembalikan parameter permintaan sebagai string.
  16. String getPathInfo () - mengembalikan informasi jalur yang terkait dengan URL
  17. String getQueryString () - mengembalikan string kueri yang terkait dengan URL permintaan
  18. String getServletPath () - mengembalikan bagian dari URL permintaan yang memanggil JSP
  19. String [] getParameterValues ​​(Nama string) - mengembalikan larik objek string yang berisi nilai yang dimiliki parameter permintaan

Contoh:

Pada contoh di bawah ini, kami menggunakan metode berbeda menggunakan objek permintaan

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

Klien Minta Guru JSP

<%HttpSession gurusession = request.getSession ();out.print (" ");Gurulocale lokal = request.getLocale ();out.print (" ");Jalur string = request.getPathInfo ();out.print (" ");String lpath = request.get ();out.print (" ");String namaserver = request.getServerName ();out.print (" ");int portname = request.getServerPort ();out.print (" ");Pencacahan hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");String paramValue = request.getHeader (paramName);out.println (" ");}%>

Penjelasan kode:

Baris Kode 17: Menggunakan objek permintaan, kita mendapatkan objek sesi dari sesi tertentu itu, dan kita mendapatkan nilai objek dari sesi itu

Baris Kode 19: Menggunakan objek permintaan, kita mendapatkan lokal sesi tertentu i.een_US lokal untuk JSP itu.

Baris Kode 21: Menggunakan objek permintaan, kami mendapatkan info jalur untuk JSP itu. Dalam hal ini, nihil karena tidak ada jalur untuk URL yang disebutkan.

Baris Kode 23: Menggunakan objek permintaan, kami mendapatkan jalur konteks, yaitu jalur root

Baris Kode 25: Menggunakan objek permintaan, kami mendapatkan nama server.

Baris Kode 27: Menggunakan objek permintaan, kami mendapatkan port server.

Baris Kode 29-35: Menggunakan objek permintaan, kita mendapatkan nama header yang keluar sebagai enumerasi, dan karenanya kita mendapatkan semua nilai header di nama header.

Dalam hal ini, kita mendapatkan semua nilai header sebagai cookie, host, koneksi, menerima bahasa, menerima pengkodean.

Saat Anda menjalankan kode di atas, Anda mendapatkan output berikut:

Keluaran :

Kami mendapatkan serangkaian nilai seperti nama sesi, nama lokal, nama jalur, nama server, nama port, host, jalur konteks, dan semua nilai header JSP itu.

Respons Server JSP

  • Ketika permintaan diproses dan kemudian respon dihasilkan dari server web. Ini terdiri dari baris status, header respons, baris kosong, dan dokumen.
  • Ini adalah objek HTTPServletResponseclass, yang merupakan objek respons.
  • Baris status adalah versi HTML.

Header respons disebutkan di bawah ini:

guru header Nilai header guru
Nama Sesi adalah " + gurusession + "
Nama Lokal adalah " + gurulocale + "
Nama Jalur adalah " + jalur + "
Jalur konteksnya " + lipath + "
Nama Server adalah " + namaserver + "
Port Server adalah " + portname + "
" + paramName + "" + paramValue + "
Header Deskripsi
Mengizinkan Ini menentukan metode permintaan seperti GET, POST yang diminta server
Kontrol cache Dokumen tanggapan dapat disimpan dalam cache. Ini bisa publik, pribadi dan tidak ada cache. Tidak ada cache yang menentukan bahwa dokumen tidak boleh di-cache
Koneksi Ini menginstruksikan apakah browser harus menggunakan storedHTTPConnections atau tidak. Nilai tutup menunjukkan bahwa browser tidak boleh menggunakan persisten dalam HTTPConnections dan "keep-hidup" berarti menggunakan koneksi yang persisten
Konten-disposisi Untuk menanyakan pengguna apakah akan menyimpan respon ke disk atau tidak
Pengkodean konten Halaman harus dikodekan selama transmisi
Panjang konten Jumlah byte dalam respons
Jenis konten Ini menentukan jenis respons MIME
Kedaluwarsa Menentukan sampai kapan konten harus dianggap kedaluwarsa dan tidak boleh di-cache
Terakhir diubah Ini menunjukkan kapan dokumen terakhir diubah
Lokasi Ini harus disertakan dengan semua tanggapan yang memiliki kode status memiliki 300 sebagai kode status
Menyegarkan Ini menentukan bagaimana menemukan halaman yang diperbarui.
Coba lagi setelah Ini dapat digunakan dengan respons 503 untuk memberi tahu klien seberapa cepat ia dapat mengulangi permintaan
Set-cookie Menentukan cookie yang terkait dengan halaman

Berikut adalah metode menggunakan objek respon:

  1. String encodeRedirectURL (String URL) - menyandikan URL dalam metode redirectURL.
  2. String encodeURL (String URL) - menyandikan URL dengan memasukkan ID sesi.
  3. Boolean berisiHeader (nama String) - berisi header di JSP atau tidak.
  4. Boolean isCommited () - respons telah dilakukan atau belum.
  5. Void addCookie (Cookie cookie) - menambahkan cookie ke respons
  6. Void addDateHeader (String name, String value) - menambahkan nama dan nilai tanggal header respons
  7. Void addHeader (String name, String value) - menambahkan header respons dengan nama dan nilai
  8. Void addIntHeader (String name, int value) - menambahkan header respons dengan nama dan nilai integer
  9. Void flushBuffer () - memaksa konten di buffer ke output ke klien.
  10. Void reset () - membersihkan data di buffer.
  11. Void resetBuffer - membersihkan buffer konten dalam respons tanpa menghapus kode status.
  12. Void sendError (intsc, Stringmsg) - mengirimkan respons kesalahan ke klien menggunakan kode status.
  13. Void sendRedirect (String location) - mengirimkan respons pengalihan sementara ke klien.
  14. Void setBufferSize (int size) - menetapkan ukuran buffer tubuh
  15. Void setCharacterEncoding (String charset) - mengatur pengkodean karakter
  16. Void setContentType (String type) - menyetel jenis konten respons
  17. Void setContentLength (intlen) - menyetel panjang konten respons
  18. Void setLocale (Locale lcl) - menyetel jenis lokal respons
  19. Void setStatus (intsc) - mengatur kode status respons

Contoh:

Dalam contoh ini, kami membahas berbagai metode getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Respon Tindakan Guru 

Tanggapan Guru

<%Lokal lcl = response.getLocale ();out.println ("Lokal adalah: + lcl + "\ n");response.flushBuffer ();Output PrintWriter = response.getWriter ();output.println ("Ini dari objek penulis");Tipe string = response.getContentType ();out.println ("Jenis konten: + tipe + "\ n");// Atur refresh, waktu muat otomatis sebagai 5 detikresponse.setIntHeader ("Refresh", 5);// Dapatkan waktu saat iniTanggal dt = Tanggal baru ();out.println ("Tanggal hari ini adalah: + dt.toString () + "\ n");%>

Penjelasan kode:

Baris Kode 13: Menggunakan objek respons, kami mendapatkan objek lokal dari sesi JSP ini

Baris Kode 15: Menggunakan objek respon, flushbuffer digunakan untuk memaksa konten buffer ke klien

Baris Kode 16: Menggunakan objek respon, kita mendapatkan objek penulis yang mendapatkan keluaran di aliran keluaran

Baris Kode18: Menggunakan objek respons, kami mendapatkan tipe konten yaitu tipe MIME objek respons

Baris Kode 21: Menggunakan objek respons, digunakan untuk memuat otomatis setiap 5 detik karena 5 disetel sebagai parameter kedua

Saat Anda menjalankan kode di atas, Anda mendapatkan output berikut:

Keluaran:

  • Di sini kita mendapatkan output karena ini dari objek writer dari getWriter, yang memberi kita objek dan kita bisa mengeluarkannya dalam arus keluaran.
  • Kami mendapatkan lokal sebagai en_us dan tipe konten sebagai teks / html
  • Kami mendapatkan charset sebagai ISO 8859
  • Tanggal hari ini sebagai tanggal hari ini.

Kode Status HTTP JSP

  • Saat permintaan diproses, respons dibuat. Baris status respons terdiri dari versi HTTP, kode status, dan pesan terkait.
  • Pesan tersebut secara langsung dikaitkan dengan kode status dan versi HTTP, dan ditentukan oleh server.
  • Secara default 200 disetel sebagai kode status di JSP, jadi kami tidak perlu menyetel secara eksplisit.
  • Kita bisa mengaturnya sebagai metode response.setStatus ()

Kode-kode tersebut termasuk dalam 5 kategori berikut:

  • 100-199 - Di sini klien menunjukkan bahwa ia harus merespons dengan beberapa tindakan
  • 200-299 - Ini menandakan bahwa permintaan berhasil
  • 300-399 - Digunakan untuk file yang telah dipindahkan dan biasanya menyertakan tajuk lokasi yang menunjukkan alamat baru
  • 400-499 - Menunjukkan kesalahan oleh klien
  • 500-599 - Menunjukkan kesalahan oleh server

Beberapa kode status umum ada di bawah ini:

  • 200 - Menunjukkan semuanya baik-baik saja
  • 301 - Sudah pindah secara permanen
  • 304 - Tidak diubah sejak perubahan terakhir
  • 400 permintaan Buruk
  • 404 tidak ditemukan
  • 405 - Metode tidak ditemukan
  • 500 Internal Server Error
  • 503 Layanan tidak tersedia
  • 505 - Versi HTTP tidak didukung

Beberapa metodenya tercantum di bawah ini:

  1. Public void setStatus (intstatusCode)

    Ini menetapkan kode status mana pun yang ingin kita atur di Halaman JSP. Ini akan memberi kita pesan kode status yang telah ditetapkan

  2. Public void sendRedirect (String URL)

    Ini menghasilkan respons 302 bersama dengan tajuk lokasi yang memberikan URL dokumen baru

  3. Public void sendError (intcode, Stringmsg)

    Ini mengirimkan kode status bersama dengan pesan singkat dan itu diformat di dalam dokumen HTML.

Contoh:

Dalam contoh ini, kami mengirimkan kesalahan ke halaman JSP secara eksplisit.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Kode Status Guru <% response.sendError (404, "Halaman Guru Tidak Ditemukan"); %>

Penjelasan kode:

Baris Kode 10: Menggunakan objek respons kami mengirimkan kesalahan ke halaman dengan dua parameter.

  1. Kode status - Bisa salah satu dari yang di atas. Dalam kasus ini, kami gambarkan sebagai 404
  2. Pesan - Ini bisa berupa pesan khusus yang ingin kami tunjukkan kesalahannya

Jika Anda menjalankan kode di atas, Anda mendapatkan output berikut:

Keluaran:

Di sini kita mendapatkan kode kesalahan 404, yang dikirim dari kode dan juga menampilkan pesan "Halaman Guru tidak ditemukan" yang terlihat pada keluaran.

Ringkasan:

  • Dalam artikel ini, kita telah belajar tentang permintaan klien dan respons server tentang bagaimana permintaan itu dicegat dan bagaimana respons dimanipulasi.
  • Juga, kami telah belajar tentang kode status HTTP untuk menunjukkan kode kesalahan atau kode sukses untuk file tertentu.