Objek Response terutama mengirimkan hasil yang diproses oleh container JSP kembali ke klien. Anda dapat mengatur status HTTP dan mengirim data ke klien melalui variabel respons, seperti cookie, informasi header file HTTP, dll.
Respons umumnya terlihat seperti ini:
HTTP/1.1 200 OKTipe Konten: text/htmlHeader2: ...HeaderN: ... (Baris Kosong)<!doctype ...><html><head>...</head><body> ... </tubuh></html>
Baris status berisi informasi versi HTTP, seperti HTTP/1.1, kode status, seperti 200, dan pesan sangat singkat yang terkait dengan kode status, seperti OK.
Tabel berikut merangkum bagian paling berguna dari header respons HTTP 1.1, yang sering Anda lihat dalam pemrograman jaringan:
tajuk tanggapan | menggambarkan |
---|---|
Mengizinkan | Tentukan metode permintaan yang didukung oleh server (GET, POST, dll.) |
Kontrol Cache | Menentukan keadaan di mana dokumen respons dapat di-cache dengan aman. Biasanya nilainya public , private atau no-cache , dll. Publik berarti dokumen dapat disimpan dalam cache, dan Pribadi berarti dokumen hanya disajikan kepada satu pengguna dan hanya dapat menggunakan cache pribadi. Tanpa cache berarti dokumen tidak di-cache. |
Koneksi | Menginstruksikan browser apakah akan menggunakan koneksi HTTP persisten. Nilai close menginstruksikan browser untuk tidak menggunakan koneksi HTTP persisten, sedangkan keep-alive berarti menggunakan koneksi persisten. |
Disposisi Konten | Biarkan browser meminta pengguna untuk menyimpan respons pada disk dengan nama yang diberikan |
Pengkodean Konten | Tentukan aturan pengkodean untuk halaman selama transmisi |
Bahasa Konten | Bahasa yang digunakan untuk mengekspresikan dokumen, seperti en, en-us, ru, dll. |
Panjang Konten | Menunjukkan jumlah byte dalam respons. Hanya berguna jika browser menggunakan koneksi HTTP yang tetap aktif |
Tipe Konten | Menunjukkan tipe MIME yang digunakan oleh dokumen |
Kedaluwarsa | Tunjukkan kapan akan kedaluwarsa dan hapus dari cache |
Terakhir Dimodifikasi | Menunjukkan kapan dokumen terakhir diubah. Klien dapat menyimpan dokumen dalam cache dan menyediakan header permintaan If-Modified- Since dalam permintaan berikutnya |
Lokasi | Dalam 300 detik, termasuk semua alamat respons dengan kode status, browser akan secara otomatis menyambung kembali dan mengambil dokumen baru. |
Menyegarkan | Menunjukkan seberapa sering browser meminta pembaruan pada halaman. |
Coba Lagi-Setelah | Digunakan dengan 503 (Layanan Tidak Tersedia) untuk memberi tahu pengguna berapa lama waktu yang dibutuhkan sebelum permintaan ditanggapi |
Set-Cookie | Tunjukkan cookie yang sesuai dengan halaman saat ini |
Objek respons adalah turunan dari kelas javax.servlet.http.HttpServletResponse. Sama seperti server yang membuat objek permintaan, server juga membuat respons klien.
Objek respon mendefinisikan antarmuka untuk menangani pembuatan header HTTP. Dengan menggunakan objek ini, pengembang dapat menambahkan cookie atau stempel waktu baru, kode status HTTP, dan banyak lagi.
Tabel berikut mencantumkan metode yang digunakan untuk menyetel header respons HTTP. Metode ini disediakan oleh kelas HttpServletResponse:
hal | Metode & Deskripsi |
---|---|
1 | String encodeRedirectURL(String url) mengkodekan URL yang digunakan oleh metode sendRedirect() |
2 | String encodeURL(String url) mengkodekan URL dan mengembalikan URL yang berisi ID Sesi. |
3 | boolean berisiHeader(Nama string) mengembalikan apakah header respons yang ditentukan ada |
4 | boolean isCommit() mengembalikan apakah respons telah dikirimkan ke klien |
5 | void addCookie(Cookie cookie) menambahkan cookie yang ditentukan ke respons |
6 | void addDateHeader(Nama string, tanggal panjang) menambahkan header respons dan nilai tanggal dari nama yang ditentukan |
7 | void addHeader(String name, String value) menambahkan header respons dan nilai dari nama yang ditentukan |
8 | void addIntHeader(Nama string, nilai int) menambahkan header respons dan nilai int dari nama yang ditentukan |
9 | void flushBuffer() menulis konten cache apa pun ke klien |
10 | void reset() menghapus semua data di cache apa pun, termasuk kode status dan berbagai header respons |
11 | void resetBuffer() menghapus data cache dasar, tidak termasuk header respons dan kode status |
12 | void sendError(int sc) mengirimkan respons kesalahan ke klien menggunakan kode status yang ditentukan, dan kemudian membersihkan cache |
13 | void sendError(int sc, String msg) mengirimkan respons kesalahan ke klien menggunakan kode status dan pesan yang ditentukan |
14 | void sendRedirect(String location) mengirimkan respons tidak langsung sementara ke klien menggunakan URL yang ditentukan |
15 | void setBufferSize(int size) menyetel ukuran buffer dari isi respons |
16 | void setCharacterEncoding(String charset) menentukan set pengkodean respons (set karakter MIME), seperti UTF-8 |
17 | void setContentLength(int len) menentukan panjang konten respons di servlet HTTP. Metode ini digunakan untuk menyetel header informasi Panjang Konten HTTP. |
18 | void setContentType(String type) menyetel tipe konten respons, jika respons belum dikirimkan |
19 | void setDateHeader(Nama string, tanggal panjang) menetapkan nama dan konten header respons menggunakan nama dan nilai yang ditentukan |
20 | void setHeader(Nama string, Nilai string) menetapkan nama dan konten header respons menggunakan nama dan nilai yang ditentukan |
dua puluh satu | void setIntHeader(Nama string, nilai int) menetapkan nama dan konten header respons menggunakan nama dan nilai yang ditentukan |
dua puluh dua | void setLocale(Locale loc) menyetel lokal respons, jika respons belum dikirimkan |
dua puluh tiga | void setStatus(int sc) menyetel kode status respons |
Contoh berikut menggunakan metode setIntHeader() dan metode setRefreshHeader() untuk menyimulasikan jam digital:
<%@ page import="java.io.*,java.util.*" %><html><head><title>Contoh Header Penyegaran Otomatis</title></head><body><center><h2 >Contoh Header Refresh Otomatis</h2><% //Atur refresh otomatis setiap 5 detik respon.setIntHeader("Refresh", 5); //Dapatkan waktu saat ini Kalender kalender = new GregorianCalendar(); am_pm; int jam = kalender.get(Kalender.JAM); int menit = kalender.get(Kalender.MINUTE); int detik = kalender.get(Kalender.SECOND); 0) am_pm = "AM"; lain am_pm = "PM"; String CT = jam+":"+ menit +":"+ detik +" "+ am_pm; out.println("Waktu Saat Ini adalah: " + CT + "n"); %></center></body></html>
Simpan kode di atas sebagai main.jsp dan akses melalui browser Anda. Ini akan menampilkan waktu sistem saat ini setiap 5 detik.
Hasil yang berjalan adalah sebagai berikut:
Contoh Header Refresh OtomatisWaktu Saat Ini adalah: 21:44:50
Anda juga dapat memodifikasi sendiri kode di atas dan mencoba metode lain untuk mendapatkan pemahaman yang lebih dalam.