Préface
Cookie: Cookie est une technologie client et le programme écrit les données de chaque utilisateur au navigateur respectif de l'utilisateur sous la forme d'un cookie.
Lorsqu'un utilisateur utilise un navigateur pour accéder aux ressources Web du serveur, il apportera sa propre zone de données, afin que les ressources Web traitent leurs propres données.
Session: la session est une technologie côté serveur. En utilisant la technologie de session, le serveur peut créer son propre objet de session pour le navigateur de chaque utilisateur lorsqu'il est exécuté. Étant donné que la session est exclusive au navigateur de l'utilisateur, lorsque l'utilisateur accède aux ressources Web du serveur, l'utilisateur peut mettre ses propres données dans la session. Lorsque l'utilisateur accède à nouveau à d'autres ressources Web dans le serveur, les autres ressources Web proviendront alors de la session respective de l'utilisateur.
Sortez les données pour servir l'utilisateur.
Différences clés entre la session et les cookies:
Nous utilisons souvent la session pour stocker certaines des informations de connexion de l'utilisateur pour vérifier si l'utilisateur est en ligne. Il s'agit de la solution de côté Web la plus simple à implémenter. Cet article utilise le cadre SSM (Spring, SpringMVC, MyBatis) en tant que transporteur pour implémenter spécifiquement ce système de connexion.
La méthode est la suivante:
1. Passez le nom d'utilisateur et le mot de passe à l'interface backend via le frontal. Une fois que l'interface a obtenu la valeur, il est crypté MD5, le compare aux champs de la base de données, renvoie l'état à l'extrémité avant et le frontal saute la page en fonction de la valeur de retour.
Classe d'outils de chiffrement MD5
Public String EncoderByMD5 (String STR) lève NosuchalgorithMexception, UnpportEnCoDenDingException {// Déterminez la méthode de calcul MessagediGest MD5 = Messagedigest.GetInstance ("MD5"); Base64Encoder Base64en = new Base64Encoder (); // chaîne de chaîne cryptée newsstr = base64en.encode (md5.digest (str.getBytes ("utf-8"))); retour newsr; }Couche Dao et mapper
<select id = "ValiteUser" ParameterType = "java.lang.string" resultType = "com.heitian.ssm.model.userinfo"> Sélectionnez le mot de passe dans T_USER où username = # {username} </ select>Classe d'implémentation de la couche de service
public String ValiteUser (userInfo userInfo) {try {userInfo userDemo = userdao.valiteUser (EncoderByMD5 (userInfo.geTusername ())); if (userInfo.getPassword (). equals (userdemo.getpassword ())) {return "pass"; }} catch (exception e) {e.printStackTrace (); return "erreur"; } return "Refuse"; }Couche de contrôleur
@ResponseBody @RequestMapping ("/ LoginUser") HashMap public <string, objet> LoginUser (demande httpServleRequest, userInfo userInfo) {hashmap <string, objet> result = new HashMap <String, Object> (); HttpSession session = request.getSession (); System.out.println ("Login Fail"); String status = userservice.valiteUser (userInfo); if (status.equals ("pass")) {session.setAttribute ("current_user", userInfo.getUsername ()); result.put ("statut", "pass"); } else {if (status.equals ("refuse")) {result.put ("status", "refuse"); } else {result.put ("status", "erreur"); }} Retour Résultat; }En renvoyant les informations d'état, nous pouvons déterminer si la connexion est réussie. Si cela réussit, écrivez la paire de valeurs clés du nom d'utilisateur à la session.
2. Lorsque vous accédez à d'autres pages, comment déterminer si un utilisateur se connecte en ligne? J'utilise JS pour obtenir la valeur de la session à juger.
Autrement dit: Obtenez d'abord la valeur de la session. S'il est vide ou nul, cela signifie que la session n'a aucun comportement de connexion avant cela. Nous le redirigeons automatiquement vers la page d'accueil. S'il y a une valeur, cela signifie qu'il y a un comportement de connexion et que l'utilisateur connecté en ligne est courant_user
Pour le moment, nous pouvons utiliser le nom d'utilisateur pour ajuster l'interface d'arrière-plan.
<script lingots = "javascript"> $ (document) .ready (function () {var myname = "<% = session.getAttribute (" current_user ")%>"; var projectId1 = "<% = request.getAttribute (" projectId ")%>"; if (myname == "null") {window.Loocation.href = "/ page / to -IndEx" } </ script>3. Déconnexion des utilisateurs
Connectez-vous, c'est-à-dire effacer la valeur de la session, et une interface de déconnexion sera ouverte à partir de l'arrière-plan.
@RequestMapping ("/ QUITER") Public String QUiSer (HttpServLetRequest Request) {httpSession session = request.getSession (); session.RemoveAtTribute ("current_user"); return "index"; }Cela réalise un système de gestion des utilisateurs de la connexion à la déconnexion, mais c'est le système le plus élémentaire, et la sécurité est un gros problème, donc les solutions de vérification comme le jeton JWT sont toujours très utiles.
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.