Objek Implisit JSP

⚡ Ringkasan Cerdas

Objek Implisit JSP adalah variabel yang telah ditentukan sebelumnya yang dibuat secara otomatis oleh kontainer servlet selama penerjemahan halaman, memungkinkan pengembang untuk mengakses aliran keluaran, permintaan, respons, sesi, dan data aplikasi langsung di dalam halaman tanpa deklarasi manual atau konfigurasi tambahan.

  • ️ Objek Keluar: Menulis data ke buffer dan mengirimkan output ke klien melalui JSP.Writer aliran.
  • 📥 Objek Permintaan: Sebuah instance dari HttpServletRequest yang mengambil parameter, header, dan detail server menggunakan getParameter().
  • 📤 Objek Respons: Mengimplementasikan HttpServletResponse untuk mengatur tipe konten, menambahkan cookie, dan mengarahkan ulang klien.
  • ⚙️ Konfigurasi dan Aplikasi: Config membaca parameter inisialisasi dari web.xml; Aplikasi berbagi data konteks di seluruh penyebaran.
  • ️ Sesi dan PageContext: Session mempertahankan atribut pengguna di seluruh halaman; PageContext mengelola atribut di seluruh cakupan halaman, permintaan, sesi, dan aplikasi.
  • ⚠️ Objek Pengecualian: Sebuah objek Throwable yang hanya tersedia di halaman kesalahan yang melaporkan kesalahan saat runtime seperti ArrayIndexOutOfBounds.

Apa itu objek implisit JSP?

  • Objek implisit JSP dibuat selama fase penerjemahan JSP ke servlet.
  • Objek-objek ini dapat langsung digunakan dalam skrip yang masuk dalam metode layanan.
  • Mereka dibuat oleh container secara otomatis, dan dapat diakses menggunakan objek.

Berapa banyak Objek Implisit yang tersedia di JSP?

Ada 9 jenis objek implisit yang tersedia dalam wadah:

  1. Di luar
  2. Meminta
  3. Response
  4. config
  5. Aplikasi
  6. sesi
  7. Konteks Halaman
  8. Halaman
  9. Pengecualian

Mari kita belajar Satu Per Satu

1) Keluar

  • Out adalah salah satu objek implisit untuk menulis data ke buffer dan mengirim output ke klien sebagai respons
  • Objek keluar memungkinkan kita mengakses aliran keluaran servlet
  • Out adalah objek dari javax.servlet.jsp.jspWriter kelas
  • Saat bekerja dengan servlet, kita membutuhkan objek printwriter

Contoh:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP1</title>
</head>
<body>
<% int num1=10;int num2=20;
out.println("num1 is " +num1);
out.println("num2 is "+num2);
%>
</body>
</html>

Penjelasan kodenya:

Code Baris 11-12– keluar digunakan untuk mencetak ke aliran keluaran

Ketika kita mengeksekusi kode di atas, kita mendapatkan output berikut:

Keluar di JSP

Keluaran:

  • Pada outputnya, kita mendapatkan nilai num1 dan num2

2) Permintaan

  • Objek permintaan adalah turunan dari java.servlet.http.HttpServletRequest dan merupakan salah satu argumen metode layanan
  • Itu akan dibuat oleh wadah untuk setiap permintaan.
  • Ini akan digunakan untuk meminta informasi seperti parameter, informasi header, nama server, dll.
  • Ia menggunakan getParameter() untuk mengakses parameter permintaan.

Contoh:

Implisit_jsp2.jsp(formulir dari mana permintaan dikirim ke guru.jsp)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru form JSP2</title>
</head>
<body>
<form action="guru.jsp">
<input type="text" name="username">
<input type="submit" value="submit">
</form>
</body>
</html>

Guru.jsp (tempat tindakan dilakukan)

Permintaan di JSP

Penjelasan kode:

Code Baris 10-13 : Dalam implicit_jsp2.jsp(form) permintaan dikirim, maka variabel nama pengguna diproses dan dikirim ke guru.jsp yang merupakan tindakan JSP.

Guru.jsp

Code Baris 10-11: Ini adalah action jsp dimana permintaan diproses, dan nama pengguna diambil dari form jsp.

Ketika Anda menjalankan kode di atas, Anda mendapatkan output berikut

Keluaran:

Permintaan di JSP

Ketika Anda menulis tes dan mengklik tombol kirim, maka Anda akan mendapatkan output berikut “Selamat Datang Tes.”

Permintaan di JSP

3) Tanggapan

  • “Response” adalah turunan kelas yang mengimplementasikan antarmuka HttpServletResponse
  • Kontainer menghasilkan objek ini dan meneruskan ke metode _jspservice() sebagai parameter
  • “Objek respons” akan dibuat oleh penampung untuk setiap permintaan.
  • Ini mewakili respons yang dapat diberikan kepada klien
  • Objek implisit respons digunakan untuk mengetikkan konten, menambahkan cookie, dan mengalihkan ke halaman respons

Contoh:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP4</title>
</head>
<body>
<%response.setContentType("text/html"); %>
</body>
</html>

Penjelasan kodenya:

Code Baris 11: Di objek respons kita dapat mengatur tipe konten

Di sini kita hanya mengatur tipe konten di objek respon. Oleh karena itu, tidak ada keluaran untuk ini.

4) Konfigurasi

  • “Config” bertipe java.servlet.servletConfig
  • Itu dibuat oleh wadah untuk setiap halaman jsp
  • Ini digunakan untuk mendapatkan parameter inisialisasi di web.xml

Contoh:

Web.xml (menentukan nama dan peta)ping dari servlet)

Konfigurasi di JSP

Implicit_jsp5.jsp (mendapatkan nilai nama servlet)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP5</title>
</head>
<body>
<% String servletName = config.getServletName();
out.println("Servlet Name is " +servletName);%>
</body>
</html>

Penjelasan kodenya:

Di web.xml

Code Baris 14-17: Di web.xml kita memiliki mapping dari servlet ke kelas.

Implisit_jsp5.jsp

Code Baris 10-11: Untuk mendapatkan nama servlet di JSP, kita bisa menggunakan config.getServletName, yang akan membantu kita mendapatkan nama servlet.

Ketika Anda menjalankan kode di atas, Anda akan mendapatkan keluaran berikut:

Respon di JSP

Keluaran:

  • Nama servlet adalah “GuruNama "Servlet" terdapat dalam file web.xml.

5) Aplikasi

  • Objek aplikasi (baris kode 10) adalah turunan dari javax.servlet.ServletContext dan digunakan untuk mendapatkan informasi konteks dan atribut di JSP.
  • Objek aplikasi dibuat oleh kontainer satu per aplikasi, saat aplikasi diterapkan.
  • Objek servletcontext berisi sekumpulan metode yang digunakan untuk berinteraksi dengan container servlet. Kita dapat menemukan informasi tentang container servlet

Contoh:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Implicit JSP6</title>
</head>
<body>
<% application.getContextPath(); %>
</body>
</html>

Penjelasan kodenya:

  • Dalam kode di atas, atribut aplikasi membantu mendapatkan jalur konteks halaman JSP.

6) Sesi

  • Sesi ini berisi objek “httpsession” (baris kode 10).
  • Objek sesi digunakan untuk mendapatkan, mengatur dan menghapus atribut pada cakupan sesi dan juga digunakan untuk mendapatkan informasi sesi

Contoh:

Implisit_jsp7(atribut disetel)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit JSP</title>
</head>
<body>
<% session.setAttribute("user","GuruJSP"); %>
<a href="implicit_jsp8.jsp">Click here to get user name</a>
</body>
</html>

Implisit_jsp8.jsp (getAttribute)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>implicit Guru JSP8</title>
</head>
<body>
<% String name = (String)session.getAttribute("user");
out.println("User Name is " +name);
%>
</body>
</html>

Penjelasan kodenya:

Implisit_jsp7.jsp

Code Baris 11: kita menyetel atribut user dalam variabel sesi, dan nilai itu dapat diambil dari sesi di mana pun jsp dipanggil dari itu (_jsp8.jsp).

Code Baris 12: Kami memanggil jsp lain di href di mana kami akan mendapatkan nilai untuk atribut user yang disetel.

Implisit_jsp8.jsp

Code Baris 11: Kami mendapatkan nilai atribut pengguna dari objek sesi dan menampilkan nilai itu

Ketika Anda menjalankan kode di atas, Anda akan mendapatkan output berikut:

Sesi di JSP

Ketika Anda mengklik tautan untuk nama pengguna, Anda akan mendapatkan output berikut.

Sesi di JSP

Keluaran:

  • Ketika kita mengklik link yang diberikan di implicit_jsp7.jsp maka kita diarahkan ke halaman jsp kedua, yaitu halaman (_jsp8.jsp) dan kita mendapatkan nilai dari objek sesi atribut pengguna (_jsp7.jsp).

7) Konteks Halaman

  • Objek ini bertipe konteks halaman.
  • Ini digunakan untuk mendapatkan, mengatur, dan menghapus atribut dari cakupan tertentu

Cakupan terdiri dari 4 jenis:

  • Halaman
  • Meminta
  • sesi
  • Aplikasi

Contoh:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP9</title>
</head>
<body>
<% pageContext.setAttribute("student","gurustudent",pageContext.PAGE_SCOPE);
String name = (String)pageContext.getAttribute("student");
out.println("student name is " +name);
%>
</body>
</html>

Penjelasan kodenya:

Code Baris 11: kita mengatur atribut menggunakan objek pageContext, dan memiliki tiga parameter:

  • kunci
  • Nilai
  • Cakupan

Pada kode di atas, kuncinya adalah siswa dan nilainya adalah “siswa guru” sedangkan cakupannya adalah cakupan halaman. Di sini cakupannya adalah "halaman" dan hanya dapat menggunakan cakupan halaman.

Code Baris 12: Kami mendapatkan nilai atribut menggunakan pageContext

Ketika Anda menjalankan kode di atas, Anda akan mendapatkan output berikut:

Konteks Halaman di JSP

Keluaran:

  • Outputnya akan mencetak “nama siswa adalah guru siswa”.

8) Halaman

  • Variabel implisit halaman menampung objek servlet yang saat ini dieksekusi untuk jsp yang sesuai.
  • Bertindak sebagai objek ini untuk halaman jsp saat ini.

Contoh:

Dalam contoh ini, kita menggunakan objek halaman untuk mendapatkan nama halaman menggunakan metode toString

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP10</title>
</head>
<body>
<% String pageName = page.toString();
out.println("Page Name is " +pageName);%>
</body>
</html>

Penjelasan kodenya:

Code Baris 10-11: Dalam contoh ini, kami mencoba menggunakan metode toString() dari objek halaman dan mencoba mendapatkan nama string Halaman JSP.

Ketika Anda menjalankan kode tersebut, Anda akan mendapatkan keluaran berikut:

Halaman di JSP

Keluaran:

  • Outputnya adalah nama string dari halaman jsp di atas

9) Pengecualian

  • Pengecualian adalah objek implisit dari kelas throwable.
  • Ini digunakan untuk penanganan pengecualian di JSP.
  • Objek pengecualian hanya dapat digunakan di halaman kesalahan.Contoh:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isErrorPage="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Implicit Guru JSP 11</title>
</head>
<body>
<%int[] num1={1,2,3,4};
out.println(num1[5]);%>
<%= exception %>
</body>
</html>

Penjelasan kodenya:

Code Baris 10-12 – Memiliki deretan angka, yaitu angka1 dengan empat elemen. Pada output, kami mencoba mencetak elemen kelima dari array dari num1, yang tidak dideklarasikan dalam daftar array. Jadi ini digunakan untuk mendapatkan objek pengecualian dari jsp.

Keluaran:

Pengecualian di JSP

Kami mendapatkan ArrayIndexOfBoundsException dalam array tempat kami mendapatkan array num1 dari elemen kelima.

Pertanyaan Umum Demo Slot

Tidak. Kontainer tersebut secara otomatis membuat kesembilan objek implisit selama fase penerjemahan. Pengembang dapat menggunakannya langsung di dalam scriptlet dan metode layanan tanpa mengimpor paket atau mendeklarasikan variabel apa pun.

Tidak. Objek implisit hanya tersedia di dalam scriptlet dan ekspresi yang memetakan ke metode layanan. Objek tersebut tidak dapat digunakan di dalam tag deklarasi JSP, yang menghasilkan anggota tingkat kelas di luar metode tersebut.

PageContext berfungsi di keempat cakupan—halaman, permintaan, sesi, dan aplikasi. Ia menyediakan metode setAttribute, getAttribute, dan removeAttribute, menjadikannya objek implisit paling fleksibel untuk mengelola data di berbagai tingkat cakupan.

AI dapat menjelaskan setiap objek implisit dengan contoh, mengkonversi kode scriptlet menjadi alternatif yang lebih bersih, dan menjawab pertanyaan cakupan secara instan. Ini membantu pemula memahami kapan harus menggunakan objek request, session, atau application dengan benar.

Ya. Alat AI dapat menghasilkan cuplikan JSP yang berfungsi menggunakan `out`, `request`, `session`, dan objek implisit lainnya, lalu menjelaskan setiap barisnya. Pengembang tetap harus meninjau output untuk memastikan penanganan cakupan dan keamanan yang benar.

Ringkaslah postingan ini dengan: