Kata pengantar
Cookie: Cookie adalah teknologi klien, dan program ini menulis data setiap pengguna ke browser masing -masing pengguna dalam bentuk cookie.
Ketika pengguna menggunakan browser untuk mengakses sumber daya web di server, ia akan membawa area datanya sendiri, sehingga sumber daya web memproses data mereka sendiri.
Sesi: Sesi adalah teknologi sisi server. Menggunakan teknologi sesi, server dapat membuat objek sesi sendiri untuk setiap browser pengguna saat dijalankan. Karena sesi ini eksklusif untuk browser pengguna, ketika pengguna mengakses sumber daya web server, pengguna dapat memasukkan data mereka sendiri di sesi. Ketika pengguna mengakses sumber daya web lain di server lagi, sumber daya web lainnya kemudian akan berasal dari sesi masing -masing pengguna.
Keluarkan data untuk melayani pengguna.
Perbedaan utama antara sesi dan cookie:
Kami sering menggunakan sesi untuk menyimpan beberapa informasi login pengguna untuk memverifikasi apakah pengguna online. Ini adalah solusi sisi web termudah untuk diimplementasikan. Artikel ini menggunakan kerangka kerja SSM (Spring, SpringMVC, MyBatis) sebagai operator untuk secara khusus mengimplementasikan sistem login ini.
Metode ini adalah sebagai berikut:
1. Lewati nama pengguna dan kata sandi ke antarmuka backend melalui ujung depan. Setelah antarmuka mendapatkan nilainya, itu dienkripsi MD5, membandingkannya dengan bidang dalam database, mengembalikan status ke ujung depan, dan ujung depan melompat halaman sesuai dengan nilai pengembalian.
Kelas Alat Enkripsi MD5
String publik encoderbymd5 (string str) melempar nosuchalgorithmException, unsportedencodingException {// Tentukan metode perhitungan pesan md5 = messageDigest.getInstance ("md5"); Base64encoder base64en = base64Encoder baru (); // string string terenkripsi newsstr = base64en.encode (md5.digest (str.getbytes ("utf-8"))); return Newsr; }Lapisan dan mapper dao
<SELECT ID = "VALITEUSER" PARAMETERTYPE = "java.lang.string" resultType = "com.heitian.ssm.model.userinfo"> Pilih kata sandi dari t_user di mana nama pengguna = #{username} </ pilih>Kelas Implementasi Lapisan Layanan
Public String valiteUser (userInfo userInfo) {coba {userInfo userDemo = userdao.valiteUser (encoderbymd5 (userInfo.getusername ())); if (userInfo.getPassword (). Equals (userDemo.getPassword ())) {return "pass"; }} catch (Exception e) {e.printstacktrace (); mengembalikan "kesalahan"; } return "Refuse"; }Lapisan pengontrol
@ResponseBody @RequestMapping ("/LoginUser") Public HashMap <String, Object> LoginUser (permintaan httpservletRequest, userInfo userInfo) {hashmap <string, objek> hasil = hashmap baru <string, object> (); Httpsession sesi = request.getSession (); System.out.println ("Login Fail"); Status String = UserserService.ValiteUser (UserInfo); if (status.equals ("pass")) {session.setAttribute ("current_user", userInfo.getUserName ()); result.put ("status", "pass"); } else {if (status.equals ("Refuse")) {result.put ("Status", "Refuse"); } else {result.put ("status", "error"); }} hasil pengembalian; }Dengan mengembalikan informasi status, kami dapat menentukan apakah login berhasil. Jika berhasil, tulis pasangan nama kunci nama pengguna ke sesi.
2. Saat mengakses halaman lain, bagaimana menentukan apakah ada pengguna log di online? Saya menggunakan JS untuk mendapatkan nilai sesi untuk menilai.
Artinya: pertama dapatkan nilai sesi. Jika kosong atau nol, itu berarti sesi tidak memiliki perilaku login sebelum ini. Kami secara otomatis mengarahkannya ke beranda. Jika ada nilai, itu berarti ada perilaku login, dan pengguna masuk online adalah arus_user
Pada saat ini, kita dapat menggunakan nama pengguna untuk menyesuaikan antarmuka latar belakang.
<skrip bahasa = "javascript"> $ (dokumen) .ready (function () {var myname = "<%= session.getAttribute (" current_user ")%>"; var proyekId1 = "<%= request.getAttribute (" ProjectId ")%>"; if (myName == "null") {"howlation")%= "ifer/page/if (myname ==" null ") {loation. } </script>3. Logout Pengguna
Keluar, yaitu, hapus nilainya di sesi, dan antarmuka logout akan dibuka dari latar belakang.
@RequestMapping ("/quituser") public String quituser (permintaan httpservletRequest) {httpsession session = request.getSession (); session.removeattribute ("current_user"); mengembalikan "indeks"; }Ini mewujudkan sistem manajemen pengguna dari login ke logout, tetapi ini adalah sistem yang paling mendasar, dan keamanan adalah masalah besar, jadi solusi verifikasi seperti JWT Token masih sangat berguna.
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.