Artikel ini menjelaskan fungsi implementasi web Java yang secara otomatis melompat ke halaman login setelah sesi berakhir. Bagikan untuk referensi Anda, sebagai berikut:
Melalui filter, sesi akan secara otomatis melompat ke halaman login setelah berakhir.
Filter hanya berguna pada server yang kompatibel dengan spesifikasi servlet versi 2.3. Jika aplikasi web Anda perlu mendukung server warisan, Anda tidak dapat menggunakan filter.
1. Tetapkan filter dasar
Membangun filter melibatkan lima langkah berikut:
1) Tetapkan kelas sesi kelas yang mengimplementasikan antarmuka filter . Kelas ini membutuhkan tiga metode, yaitu: dofilter, init dan hancur. Metode dofilter berisi kode penyaringan utama, metode INIT menetapkan operasi pengaturan, dan metode hancurkan membersihkan.
2) Masukkan perilaku penyaringan dalam metode dofilter . Parameter pertama dari metode dofilter adalah objek ServletRequest. Objek ini memberikan filter dengan akses penuh ke informasi yang masuk, termasuk data formulir, cookie, dan header permintaan HTTP. Parameter kedua adalah ServletResponse, yang biasanya diabaikan dalam filter sederhana. Parameter terakhir adalah FilterChain, seperti yang dijelaskan pada langkah berikutnya, yang digunakan untuk memanggil halaman servlet atau JSP.
3) Hubungi metode dofilter dari objek SesionFilter . Metode dofilter dari antarmuka filter mengambil objek filterchain sebagai parameternya. Saat memanggil metode dofilter dari objek ini, filter terkait berikutnya diaktifkan. Jika tidak ada filter lain yang dikaitkan dengan halaman Servlet atau JSP, halaman Servlet atau JSP diaktifkan.
4) Daftarkan filter untuk halaman servlet dan JSP yang sesuai . Gunakan elemen filter dan pemetaan filter dalam file deskriptor penyebaran (web.xml).
5) Nonaktifkan Servlet Activator . Cegah pengguna melewati pengaturan filter menggunakan URL servlet default.
Kode sumber adalah sebagai berikut:
Paket com.base.filter; impor java.io.ioException; impor javax.servlet.filter; impor javax.servlet.filterchain; import javax.servlet.filterconfig; import Javax.servlet.servletException; impor javax.servlet.servrex.servlet.servletexception; impor javax.servlet.servrex.servlet. javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; publicer public.servlet. // Filter Hancurkan, umumnya melepaskan sumber daya} / ** * Beberapa URL perlu masuk ke akses (filter verifikasi sesi) * / public void dofilter (servletRequest arg0, servletResponse arg1, filterchain arg2) melempar ioException, httplexception; HttpservletResponse respons = (httpservletResponse) arg1; Httpsession sesi = request.getSession (); // menilai apakah sesi kedaluwarsa jika ((pengguna) session.getAttribute (sessionKeystants.login) == null) {string errors = "Anda belum masuk, atau sesi telah kedaluwarsa. Silakan masuk dulu!"; request.setAttribute ("pesan", kesalahan); // lewati ke halaman login permintaan.getRequestDispatcher ("/login.jsp"). Maju (permintaan, respons); } else {arg2.dofilter (permintaan, respons); }} public void init (filterconfig arg0) melempar servletException {// menginisialisasi operasi, membaca parameter inisialisasi konfigurasi filter di web.xml, dan memenuhi persyaratan yang tidak Anda gunakan dari metode ini}}2. Konfigurasikan di file konfigurasi web.xml
<!-Tetapkan Waktu Kedaluwarsa Sesi ke 30 Menit-> <Session-config> <sesi-timeout> 30 </sesi-timeout> </sion-config> <!-Konfigurasi Filter Sesi Terkait-> <nilter> <filter-name> sesi </filter-name> <filter-class> com.base.filter.SessionFilter </filterfime> <filter-class> com.base.filter.SessionFilter </filterfame> <terfil- class> com.base.filter.SESSESTIONFILTER </filterter> <TERFERLUSTS> <TERFERTERS> <RURL-PATERS>/CONTRCT/*</RURL-PATERS> <RURL-PATERS>/USER/*</RURL-PATERS> <Spatcher> Forward </spatcher> <!-Dalam hal ini, jika permintaan dimulai dengan/kontrak/... atau/pengguna/... dan dilewatkan melalui metode Forward dari Dispatcher Permintaan atau langsung diteruskan dari klien, itu harus melalui filter ini. -> <dispatcher> Permintaan </Spatcher> </filter-Mapping>
Untuk informasi lebih lanjut tentang konten terkait Java, silakan lihat topik -topik situs ini: "Tutorial Struktur Data Java dan Algoritma", "Ringkasan File Java dan Keterampilan Operasi Direktori", "Ringkasan Keterampilan Java Operation Dom Node" dan "Ringkasan Keterampilan Operasi Java Cache"
Saya harap artikel ini akan membantu pemrograman Java semua orang.