Halaman selamat datang selamat datang.jsp
Ketika pengguna memasukkan kata sandi yang benar, switch.jsp mengontrol halaman JSP untuk mengarahkan halaman selamat datang selamat datang.jsp. Di bagian ini, kami mengembangkan halaman selamat datang.jsp. Karena selamat datang.jsp perlu menggunakan pustaka tag pihak ketiga, Anda perlu membuat beberapa konfigurasi di JBuilder untuk memperkenalkan pustaka tag ini sebelum mengembangkan selamat datang.jsp.
Konfigurasikan pustaka tag pihak ketiga ke JBuilder
Organisasi sumber terbuka Apache menyediakan banyak perpustakaan tag yang berguna. Halaman selamat datang selamat datang.jsp perlu menggunakan perpustakaan tag datetime dari Apache. Anda dapat menggunakan perpustakaan tag ini untuk menyediakan berbagai tampilan waktu di JSP /2009-07/02/jakarta-taglibs-datetime-1.0.1.zip.
Pustaka tag umumnya mencakup dua file, satu adalah file JAR paket kelas, dan yang lainnya adalah file deskripsi tag dengan ekstensi .tld. Setelah mendekompresi file terkompresi yang diunduh, kami menempatkan file taglibs-datetime.jar dan taglibs-datetime.tld di direktori <proyek direktori>/datetimeTag.
Untuk menggunakan pustaka tag pihak ketiga dalam sebuah proyek, Anda harus mengonfigurasi pustaka tag di JBuilder terlebih dahulu dan mereferensikannya dalam proyek. Mengonfigurasi pustaka tag mirip dengan mengonfigurasi pustaka kelas, dan juga dilakukan melalui kotak dialog Konfigurasikan Perpustakaan. Perpustakaan kelas JBuilder dan perpustakaan tag terdaftar di pohon di sebelah kiri dalam kotak dialog Konfigurasi Perpustakaan. Perpustakaan kelas ditampilkan sebagai ikon, sedangkan perpustakaan tag muncul sebagai ikon. Selanjutnya kita mengkonfigurasi perpustakaan tag datetime ke JBuilder.
1. Alat->Konfigurasi->Perpustakaan->Konfigurasi Perpustakaan kotak dialog.
Klik tombol Tambah... di sudut kiri bawah kotak dialog Konfigurasi Perpustakaan untuk memunculkan kotak dialog New Library Wizard, seperti yang ditunjukkan di bawah ini:
Gambar 17 Kotak dialog New Library Wizard |
Beri nama perpustakaan ini di Nama: datetimeTag, dan tekan OK untuk kembali ke kotak dialog Konfigurasi Perpustakaan.
2. Tentukan file perpustakaan tag.
Setelah kembali ke kotak dialog Konfigurasikan Perpustakaan, node datetimeTag muncul di pohon di sebelah kiri. Karena tidak ada file perpustakaan kelas yang ditentukan untuknya, maka ditampilkan dalam warna merah yang mencolok tidak seperti node lainnya ke Framework Di halaman tab, seperti yang ditunjukkan di bawah ini:
Gambar 18 Beralih ke Framework |
Pilih opsi Pustaka Tag JSP Buatan Pengguna di kotak tarik-turun Kerangka, klik tombol Tambah... di kanan bawah halaman tab, dan kotak dialog Tentukan Pustaka Tag Baru akan muncul, seperti yang ditunjukkan pada gambar di bawah:
Gambar 19 Deskripsi file yang menentukan perpustakaan tag |
Di kotak dialog Tentukan Perpustakaan Tag Baru, klik tombol... setelah file TLD dan arahkan ke file <direktori proyek>/datetimeTag/taglibs-datetime.tld. Setelah konfirmasi, JBuilder secara otomatis mengisi pengaturan yang tersisa tidak perlu mengubah pengaturan pengisian otomatis JBuilder ini. Diantaranya, Awalan menentukan awalan referensi untuk pustaka tag ini. Klik tombol OK untuk kembali ke kotak dialog Konfigurasikan Perpustakaan. Node datetimeTag ditampilkan dalam warna normal seperti yang ditunjukkan di bawah ini:
Gambar 20 Efeknya setelah mengonfigurasi perpustakaan tag dengan benar |
Klik tombol OK di kotak dialog Konfigurasikan Perpustakaan untuk menyelesaikan konfigurasi perpustakaan tag datetime.
3. Referensikan pustaka tag yang baru dikonfigurasi ini di proyek saat ini.
Proyek->Properti Proyek...->Jalur->Beralih ke tab Perpustakaan yang Diperlukan->Klik tombol Tambah... untuk memilih datetimeTag dari perpustakaan kelas JBuilder. Setelah konfigurasi berhasil, kotak dialog Project Properties akan terlihat seperti berikut:
Gambar 21 Pustaka referensi proyek |
Buat halaman JSP selamat datang
1. File->Baru…->Web->Klik dua kali ikon JSP untuk memulai Create JSP Wizard, tentukan nama file JSP sebagai selamat datang, dan klik Berikutnya untuk melanjutkan ke langkah berikutnya.
2. Referensikan pustaka tag datetimeTag di halaman Welcome.jsp.
Pada langkah 2 wizard, Anda diizinkan untuk memilih berbagai pustaka tag di JBuilder. Pustaka tag datetimeTag yang kami konfigurasikan di bagian sebelumnya juga muncul di daftar Perpustakaan Tag, seperti yang ditunjukkan pada gambar berikut:
Gambar 22 Pustaka tag referensi |
Perluas Tag datetime dan centang taglibs-datetime, dan klik Berikutnya untuk melanjutkan ke langkah berikutnya.
3. Referensikan objek userBean yang ditempatkan di domain sesi di switch.jsp.
Gambar 23 Referensi yang ditempatkan userBean dalam sesi di switch.jsp |
Klik Add Bean... untuk memilih kelas toko buku.User, tentukan nama Bean sebagai ses_userBean di kolom ID, dan pilih cakupan sesi di kolom Scope. ses_userBean adalah nama yang ditentukan untuk userBean di switch.jsp. Kontainer Web akan mencari objek di sesi berdasarkan nama ini. Jika tidak dapat menemukannya, itu akan membuat objek toko buku.User karena selamat datang.jsp dipanggil setelah switch .jsp. Jadi, kecuali sesi tersebut kedaluwarsa, objek userBean dapat ditemukan.
Klik Finish langsung untuk membuat file Welcome.jsp. Kodenya seperti berikut:
Daftar Kode 15 halaman selamat datang selamat datang.jsp
1. <%@ halaman contentType="text/html; charset=GBK" %> 2. <%@ taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt" %> 3.<html> 4. <kepala> 5. <judul> 6.selamat datang 7. </judul> 8. </kepala> 9. <jsp:useBean id="ses_userBean" scope="session" class="toko buku.User" /> 10. <jsp:setProperty name="ses_userBean" property="*" /> 11. <tubuh bgcolor="#ffffff"> 12. <h1> 13. JSP yang Dihasilkan JBuilder 14. </jam1> 15. </badan> 16. </html> |
Pustaka tag yang direferensikan di langkah 2 panduan diatur sesuai dengan kode deklarasi pustaka tag yang direferensikan di baris 2. Set Bean pada langkah 3 sesuai dengan baris kode ke-9 hingga ke-10. Karena tidak perlu mengisi nilai Bean di selamat datang.jsp, kode pada baris 10 harus dihapus secara manual.
Selanjutnya, kita mereferensikan pustaka tag datetime di file Welcome.jsp dan menggunakannya untuk menghasilkan string format waktu saat ini. Buka file Welcome.jsp dan beralih ke halaman tampilan Sumber. Pertama-tama hapus kode yang dihasilkan oleh JBuilder di <body></body>, masukkan "<dt:" di <body></body>, JBuilder akan menggunakan fungsi TagInsight untuk menampilkan semua item tag yang tersedia di perpustakaan tag ini, sebagai berikut Seperti yang ditunjukkan pada gambar:
Gambar 24 Menggunakan TagInsight untuk masuk ke perpustakaan tag
TagInsight dapat digunakan untuk dengan mudah memasukkan tag yang tersedia di perpustakaan tag, yang sangat mempercepat entri kode perpustakaan tag dan memastikan kebenarannya. Di Welcome.jsp, kami menggunakan perpustakaan tag untuk mendapatkan string waktu yang diformat saat ini. Selain itu, kami juga mendapatkan nama pengguna melalui ses_userBean. Kode terakhir dari Welcome.jsp terlihat seperti ini:
Daftar Kode 16 Welcome.jsp mereferensikan pustaka tag dan objek Session
1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp" %> 2. <%@taglib uri="http://jakarta.apache.org/taglibs/datetime-1.0" prefix="dt"%> 3.<html> 4. <kepala> 5. <judul>selamat datang</judul> 6. </kepala> 7. <jsp:useBean id="ses_userBean" scope="session" class="toko buku.User"/> 8. <body bgcolor="#ffffff">Kamu 9. <%=ses_userBean.getUserName()%>, selamat datang untuk login. <br> 10. Waktu saat ini adalah<dt:format pattern="MM/dd/yyyy hh:mm"><dt:currentTime/></dt:format> 11. <br>Klik<a href="quit.jsp">di sini</a>untuk keluar dari sistem 12. </badan> 13.</html> |
Selain itu, JBuilder menyalin file deskripsi perpustakaan tag datetime taglibs-datetime.tld ke WEB-INF, dan merusak file web.xml untuk menyatakan alamat taglibs-datetime.tld:
Daftar Kode 17 Mendeklarasikan file deskripsi tag di web.xml
1. <?xml versi="1.0" pengkodean="UTF-8"?> 2.… 3. <aplikasi web> 4. <taglib> 5. <taglib-uri>http://jakarta.apache.org/taglibs/datetime-1.0</taglib-uri> 6. <lokasi-taglib>/WEB-INF/taglibs-datetime.tld</lokasi-taglib> 7. </taglib> 8. </aplikasi web> |
Seperti yang ditunjukkan di atas, pada baris 4 hingga 7 web.xml, JBuilder secara otomatis menambahkan file deskripsi pustaka tag datetime sehingga penampung web dapat menemukan informasi yang diperlukan dengan benar.
Saat mengkompilasi proyek untuk menghasilkan direktori Web, JBuilder akan menyalin file JAR taglibs-datetime.jar dari perpustakaan tag datetime ke direktori WEB-INF/lib.
Ketika pengguna berhasil login, ia akan diarahkan ke halaman selamat datang.jsp. Efek halamannya seperti gambar di bawah ini:
Gambar 25 halaman efek selamat datang.jsp |
Ketika pengguna mengklik tautan "di sini", itu akan ditautkan ke quit.jsp. Halaman quit.jsp bertanggung jawab untuk menghapus sesi. Setelah menghapus sesi, ia akan melepaskan ikatan objek yang direferensikan dalam sesi dan melepaskan sumber daya.
quit.jsp keluar dari halaman pemrosesan
Karena protokol HTTP bekerja dengan cara permintaan/respons, ketika klien keluar dari sistem, klien perlu secara aktif mengirim permintaan ke server Web untuk memberi tahu server Web agar menghancurkan sesi tepat waktu sampai sesi berakhir sebelum menghancurkannya.
Kami menggunakan quit.jsp untuk menangani keluarnya pengguna dari sistem. quit.jsp bertanggung jawab untuk keluar dari sesi dan melepaskan sumber daya pada waktu yang tepat.
·Keluar dari sesi.
·Tutup jendela browser.
Kodenya adalah sebagai berikut:
1. <%@ halaman contentType="text/html; charset=GBK" %> 2.<% 3. sesi.tidak valid(); 4. %> 5. <bahasa skrip="javaScript" > 6. jendela.pembuka = null; 7. jendela.tutup(); 8. </skrip> |
Baris 3 bertanggung jawab untuk keluar dari sesi. Objek yang awalnya ditempatkan di sesi akan dilepaskan dan menunggu pengumpulan sampah melepaskan sumber daya. Untuk contoh ini, ada objek userBean bernama ses_userBean di sesi (dimasukkan ke dalam sesi di switch.jsp). Setelah memanggil session.invalidate(), userBean tidak terikat dari sesi, dan metode valueUnbound()-nya akan dipicu dan kemudian menunggu pengumpulan sampah.
Baris 5 sampai 8 adalah program skrip JavaScript yang bertanggung jawab untuk menutup jendela. Jika halaman web tidak dibuka melalui program skrip (window.open()), objek window.opener harus disetel sebelum memanggil window.close(). skrip untuk menutup jendela. Adalah null, seperti yang ditunjukkan pada baris 6, jika tidak, browser akan memunculkan kotak dialog konfirmasi untuk menutup. Penulis menemukan bahwa masalah ini telah mengganggu banyak pemrogram Web, jadi saya tunjukkan secara khusus.
Pengalaman praktis:
Ketika pengguna keluar dari sistem, sesi harus dikeluarkan, jika tidak, objek sesi tidak akan dihapus hingga sesi berakhir di server. Asumsikan bahwa waktu tidak aktif maksimum suatu sesi adalah 30 menit (waktu default). Jika objek sesi tidak dihapus secara manual, sumber daya sistem yang digunakan oleh objek ini tidak akan dilepaskan hingga 30 menit berlalu setelah pengguna keluar dari sistem. |