Sebelumnya, kami telah menyebutkan bahwa program JSP adalah modul dan memiliki fungsi permintaan presentasi yang kuat. Membangun akses database yang sempurna adalah proses yang menantang, dan antarmuka JDBC dapat menyelesaikan proses ini dengan baik. Namun, kode JDBC yang tertanam dalam kode JSP, seperti perintah SQL yang tertanam dalam JDBC, dapat memanfaatkan sepenuhnya kemampuan JSP untuk membuat API yang bersih dan sederhana bagi klien. Untuk mencapai tujuan ini, kita dapat mempertimbangkan penggunaan operasi JSP untuk membuat komponen antarmuka database.
Pola desain JSP yang sempurna adalah Model-View-Controller (MVC). Sistem tiga tingkat tradisional adalah: Model untuk logika program dan data; Tampilan untuk melihat; dan Pengendali untuk pemrosesan permintaan. Mengikuti model ini, program JSP berisi halaman untuk setiap "baris" dari "kotak dialog" client-server. Dalam program biasa, Anda mungkin melihat halaman kueri, halaman validasi, halaman penyisipan database, halaman pembaruan database, dan sebagainya.
Pada artikel sebelumnya, kita telah membahas cara menyematkan JDBC di setiap halaman untuk memastikan struktur program lebih masuk akal. Namun, membuat perintah SQL yang dapat dieksekusi, serta variabel yang diteruskan melalui perintah JDBC, juga dapat meningkatkan kompleksitas program.
Operasi JSP dirancang oleh JDBC
Pendekatan lain terhadap operasi database JSP adalah dengan membuat kumpulan operasi untuk database tanpa menggunakan JDBC. Dengan menggunakan pendekatan ini, Anda bisa mendapatkan dua manfaat: pertama, Anda dapat menghilangkan kebutuhan untuk menggunakan JDBC, yang menyederhanakan banyak pekerjaan; kedua, desain dan organisasi kode Anda lebih masuk akal (seperti keterbacaan, kinerja fleksibilitas, dan pemeliharaan).
Anda masih memerlukan beberapa driver, tetapi Anda sederhanakan terlebih dahulu yang di atas. Operasi dalam program JSP adalah blok logis yang biasanya ditulis dan digunakan oleh pengembang program JSP lainnya, namun Anda dapat menggunakannya sebagai subrutin. Pentingnya penggunaan operasi JSP adalah untuk menstandarisasi fungsi tertentu dan meminimalkan jumlah kode Java yang tertanam di JSP.
JSP menyediakan satu set kelas ekstensi standar. Melalui kelas-kelas ini, Anda dapat menentukan operasi melalui penangan tag. Ada dua antarmuka Java yang ditentukan oleh JSP: antarmuka Tag dan antarmuka BodyTag, yang masing-masing dijalankan oleh kelas TagSupport dan kelas BodyTagSupport.
Anda dapat membuat perpustakaan tag untuk tujuan JSP umum, dan Anda juga dapat mengimplementasikan penangan tag untuk memperluas dukungan kelas. Berikut adalah langkah-langkah untuk mengimplementasikan proses ini.
Pertama, jalankan kelas pengelola tag:
packagecom.myactions;
(pernyataan impor buka di sini)
kelas publik MyActionTag memperluas TagSupport {
...
}
Selanjutnya, kompilasi kode ini dan tempatkan file kelas di perpustakaan kelas program. Kemudian, Anda memerlukan file Tag Library Descriptor (TLD), yang merupakan file XML yang cocok dengan nama tindakan Anda dan kelas pengelola tag yang sesuai.
<tag>
<nama>Tindakan Saya</nama>
<tagclass>com.myactions.MyActionTag</tagclass>
<bodycontent> (terserah) </bodycontent>
<atribut>Data Saya</atribut>
</tag>
</tag>
Perangkat Uji Coba Terkait
Misalnya Anda telah membuat tindakan bernama MyAction, yang merupakan TLD yang cocok dengan kelas com.myactions.MyActionTag. File TLD harus ditempatkan di jalur TLD program.
Saat Anda memanggil operasi dari halaman JSP, TLD memberitahu JSP kelas yang benar untuk menggunakan operasi tersebut. Ini memberikan kemudahan luar biasa dan hanya memerlukan sedikit kode.
Tapi di mana memperkenalkan SQL? Pertama, Anda perlu membuat akses database dengan kemampuan koneksi. Anda dapat melakukan ini menggunakan antarmuka javax, yang tersedia di kotak alat Opsional JDBC 2.0. Kelas javax.sql.DataSource JDBC 2.0 menyediakan koneksi yang Anda perlukan.
Di manakah lokasi SQL saat ini? Itu ada di dalam kacang. Anda dapat menggunakan JDBCcreateStatement dan PreparedStatement untuk membuat metode dalam bean. Jadikan metode ini sebagai Vektor publik dan teruskan pernyataan SQL Anda ke metode ini dengan benar.
Ringkasan Kacang database Anda mengeksekusi pernyataan SQL yang tertanam dalam badan tindakan. Anda dapat meneruskan pernyataan ke pernyataan SQL, atau menggunakannya untuk melakukan pra-operasi. Anda dapat melakukan tindakan Anda melalui pengelola tag. Karena JDBC tertanam dalam kode perpustakaan, Anda tidak akan dapat menggunakannya secara eksplisit dalam program JSP.
Sekilas pendekatan ini mungkin tampak lebih rumit daripada SQL yang tertanam di JDBC, dan JDBC yang tertanam di JSP, tetapi karena Anda membuat operasi SQL dan menyimpannya di TLD, Anda hanya perlu melakukannya sekali, di semua program JSP yang dapat Anda akses operasi ini. Inilah keuntungan dari pendekatan ini.
Lain kali, kita akan membahas tentang transfer data antara halaman dan sesi JSP.