Situs web DWR menyeluruh dan memiliki dokumentasi ekstensif, yang menjadi dasar artikel ini. Beberapa contoh diberikan untuk menunjukkan bagaimana DWR digunakan dan jenispekerjaan apa yang dapat diselesaikan dengan perpustakaannya.
Artikel ini memungkinkan pembaca untuk melihat bagaimana aplikasi web menggunakan DWR dibangun langkah demi langkah. Saya akan menunjukkan detail yang diperlukan untuk membuat contoh aplikasi sederhana ini, yang dapat diunduh dan diterapkan di lingkungan Anda untuk melihat cara kerja DWR.
CATATAN: Tidak sulit untuk menemukan informasi tentang javascript :void(0);">AJAX; ada beberapa artikel dan entri blog di web yang membahas topik ini, masing-masing mencoba menunjukkan dan mengomentari aspek konsep yang berbeda. Di bagian sumber daya Anda akan menemukan beberapa tautan menarik ke contoh dan artikel untuk mempelajari lebih lanjut tentang javascript :void(0);">AJAX.
Contoh Aplikasi
Contoh aplikasi yang digunakan dalam artikel ini mensimulasikan mesin pencari sewa apartemen di Toronto. Pengguna dapat memilih serangkaian kriteria pencarian sebelum melakukan pencarian. Untuk meningkatkan interaktivitas, javascript :void(0);">AJAX digunakan dalam dua situasi berikut:
·Aplikasi memberi tahu pengguna berapa banyak hasil pencarian yang akan dikembalikan berdasarkan pilihannya. Nomor ini diperbarui secara real time - menggunakan javascript :void(0);">AJAX - ketika jumlah kamar tidur dan kamar mandi yang dipilih oleh pengguna, atau kisaran harga berubah. Ketika tidak ada atau terlalu banyak hasil pencarian yang sesuai dengan kriteria , pengguna tidak perlu mengklik tombol pencarian.
· Permintaan database dan pengambilan hasil dilakukan dengan javascript :void(0);">AJAX. Ketika pengguna menekan tombol tampilkan hasil, database melakukan pencarian. Dengan cara ini, aplikasi terlihat lebih responsif, dan keseluruhan halaman tidak perlu Overloaded untuk menampilkan hasil.
Basis Data
Database yang kami gunakan adalah HSQL, yang merupakan mesin basis data Java SQL yang hanya menggunakan sedikit sumber daya dan dapat digabungkan dengan aplikasi Web tanpainstalasi dan konfigurasi. File SQL digunakan untuk membuat tabel dalam memori dan menambahkan beberapa catatan ketika konteks aplikasi web dimulai.
Aplikasi
kelas Java berisi dua kelas utama yang disebut Apartemen dan ApartemenDAO. Kelas Apartment.java adalah kelas Java sederhana dengan properti dan metode pengambil/penyetel. ApartmentDAO.java adalah kelas akses data yang digunakan untuk menanyakan database dan mengembalikan informasi berdasarkan kriteria pencarian pengguna. Implementasi kelas ApartmentDAO sangatlah mudah; menggunakan panggilan koneksi database Java secara langsung untuk mendapatkan jumlah total apartemen dan daftar apartemen yang tersedia yang sesuai dengan permintaan pengguna.
Konfigurasi dan penggunaan DWR
Menyiapkan penggunaan DWR sangatlah sederhana: salin file jar DWR ke direktori WEB-INF/lib aplikasi web, tambahkan deklarasi servlet di web.xml, dan buat file konfigurasi DWR. File jar terpisah diperlukan untuk distribusi DWR. Anda harus menambahkan servlet DWR ke bagian deskriptor penerapan di WEB-INF/web.xml aplikasi Anda.
dwr-invoker
Servlet DWR
Servlet Jarak Jauh Web Langsung
uk.ltd.getahead.dwr.DWRServlet
debug
benar
dwr-invoker
/dwr/*
Langkah opsional adalah menyetel DWR ke mode debug - seperti pada contoh di atas - dengan menyetel parameter debug ke true di bagian deskripsi servlet. Saat DWR dalam mode debug, Anda dapat melihat semua objek Java yang dapat diakses dari halaman HTML. Halaman web yang berisi daftar objek yang tersedia akan muncul di URL /WEBAPP/dwr, yang menampilkan metode publik dari objek tersebut. Metode yang tercantum dapat dipanggil dari halaman tersebut, sehingga memungkinkan Anda, untuk pertama kalinya, menjalankan metode pada objek di server. Gambar berikut menunjukkan tampilan halaman debug:
halaman debug
Sekarang Anda harus memberi tahu DWR objek apa yang akan menerima permintaan melalui objek XMLHttpRequest. Tugas ini diselesaikan dengan file konfigurasi bernama dwr.xml. Dalam file konfigurasi, Anda menentukan objek yang DWR izinkan Anda panggil dari halaman web. Secara desain, DWR mengizinkan akses ke semua metode publik dari kelas yang dipublikasikan, namun dalam kasus kami, kami hanya mengizinkan akses ke beberapa metode. Berikut adalah file konfigurasi untuk contoh kita:
File di atas mencapai kedua tujuan dalam contoh kita. Pertama, tag memberitahu DWR untuk mengubah tipe objek dwr.sample.Apartment menjadi array asosiatif, karena, untuk alasan keamanan, DWR tidak mengonversi kacang biasa secara default. Kedua, tag memungkinkan DWR mengekspos kelas dwr.sample.ApartmentDAO untuk panggilan JavaScript; file JavaScript yang kami gunakan di halaman ditentukan oleh atribut javascript. Kita harus memperhatikan tag , yang menentukan metode kelas dwr.sample.ApartmentDAO mana yang tersedia.
Setelah kode HTML/JSP
dikonfigurasi, Anda dapat memulai aplikasi Web Anda. Saat ini, DWR akan siap memanggil metode yang diperlukan dari halaman sisi server HTML atau Java (JSP). Anda membuat file JavaScript. Di file search.jsp, kita harus menambahkan antarmuka JavaScript yang disediakan oleh DWR, serta mesin DWR, dan menambahkan tiga baris berikut kekode kita :
Kami memperhatikan bahwa ketika pengguna mengubah kriteria pencarian, ini adalah penerapan javascript pertama :void(0);">AJAX dalam program contoh; saat dia dilihat, jumlah apartemen yang tersedia diperbarui ketika kriteria berubah. Saya membuat dua fungsi JavaScript: Fungsi ApartmentDAO.countApartments() adalah bagian yang paling menarik adalah parameter pertama, fungsi loadTotal(), yang menentukan metode JavaScript itu DWR akan memanggil ketika menerima respons dari server. loadTotal kemudian dipanggil untuk menampilkan hasilnya di halaman HTML. Fungsi JavaScript yang digunakan dalam skenario interaktif:
function updateTotal() {
$("resultTable").style.display = 'tidak ada';
var kamar tidur = document.getElementById("kamar tidur").value;
var kamar mandi = document.getElementById("kamar mandi").nilai;
var harga = document.getElementById("harga").nilai;
ApartmentDAO.countApartments(loadTotal, kamar tidur, kamar mandi, harga);
}
fungsi bebanTotal(data) {
document.getElementById("totalRecords").innerHTML = data;
}
Tentunya pengguna ingin melihat listing apartemen yang sesuai dengan kriteria pencariannya. Kemudian, ketika pengguna puas dengan kriteria pencariannya dan totalnya valid, dia menekan tombol yang menampilkan hasilnya, yang memanggil metode JavaScript updateResults():
fungsi pembaruanHasil() {
DWRUtil.removeAllRows("apartmentsbody");
var kamar tidur = document.getElementById("kamar tidur").value;
var kamar mandi = document.getElementById("kamar mandi").nilai;
var harga = document.getElementById("harga").nilai;
ApartmentDAO.findApartments(isiMeja, kamar tidur, kamar mandi, harga);
$("resultTable").style.display = '';
}
fungsi mengisiTabel(apartemen) {
DWRUtil.addRows("apartmentsbody", apartemen, [ getId, getAddress, getBedrooms, getBathrooms, getPrice ]);
}
Metode updateResults() menghapus bidang tabel yang menyimpan hasil pencarian, memperoleh parameter yang diperlukan dari antarmuka pengguna, dan meneruskan parameter ini ke objek ApartmentDAO yang dibuat oleh DWR. Kemudian query database akan dieksekusi dan fillTable() akan dipanggil, yang mem-parsing objek yang dikembalikan oleh DWR (apartemen) dan menampilkannya ke dalam halaman (badan apartemen).
Faktor Keamanan
Untuk menjaga agar contoh tetap singkat, kelas ApartmentDAO dibuat sesederhana mungkin, namun kelas seperti itu biasanya memiliki serangkaian metode untuk memanipulasi data, seperti insert(), update() dan delete(). DWR memaparkan semua metode publik untuk dipanggil oleh semua halaman HTML. Demi alasan keamanan, tidak bijaksana mengekspos lapisan akses data Anda seperti ini. Pengembang dapat membuat fasad yang memusatkan komunikasi antara semua fungsi JavaScript dan komponen bisnis yang mendasarinya, sehingga membatasi paparan fungsionalitas yang berlebihan.
Kesimpulan
Artikel ini hanyalah permulaan bagi Anda untuk menggunakan javascript yang didukung DWR :void(0);">AJAX dalam proyek Anda. DWR memungkinkan Anda untuk fokus pada cara meningkatkan model interaksi aplikasi Anda. , menghilangkan beban menulis dan men-debug kode JavaScript. Tantangan paling menarik dengan javascript :void(0);">AJAX adalah menentukan di mana dan bagaimana meningkatkan kegunaan. DWR bertanggung jawab untuk mengoperasikan komunikasi antara halaman Web dan objek Java Anda, sehingga membantu Anda untuk fokus sepenuhnya pada cara membuat antarmuka pengguna aplikasi Anda lebih ramah.
Saya mengucapkan terima kasih kepada Mircea Oancea dan Marcos Pereira yang telah membaca artikel ini dan memberikan masukan yang sangat berharga.
Sumber daya ·javaworld.com:javaworld.com
·Komunitas pengembang Matrix-Java: http://www.matrix.org.cn/
·onjava.com:onjava.com
·Unduh semua kode sumber program contoh: http://www.javaworld.com/javaworld/jw-06-2005/dwr/jw-0620-dwr.war
·DWR: http://www.getahead.ltd.uk/dwr/index.html
·HSQL: http://hsqldb.sourceforge.net/
·javascript :void(0);">Definisi AJAX: http://en.wikipedia.org/wiki/javascript :void(0);">AJAX
· "javascript :void(0);">AJAX: Jalur Baru Menuju Aplikasi Web": Jesse James Garrett (Adaptive Path, 2005.2): http://www.adaptivepath.com/publications/essays/archives/000385.php
· “Antarmuka web yang sangat dinamis” Drew McLellan (xml.com, 2005.2): http://www.xml.com/pub/a/2005/02/09/xml-http-request.html
·XMLHttpRequest & javascript :void(0);">Contoh kerja AJAX: http://www.fiftyfoureleven.com/resources/programming/xmlhttprequest/examples
· “Praktik XMLHttpRequest yang Dapat Digunakan” Thomas Baekdal (Baekdal.com, 2005.3): http://www.baekdal.com/articles/Usability/usable-XMLHttpRequest/
·"Pedoman Penggunaan XMLHttpRequest" Thomas Baekdal (Baekdal.com, 2005.2): http://www.baekdal.com/articles/Usability/XMLHttpRequest-guidelines/