Prefacio
Cookie: Cookie es una tecnología de cliente, y el programa escribe los datos de cada usuario al navegador respectivo del usuario en forma de cookie.
Cuando un usuario usa un navegador para acceder a los recursos web en el servidor, traerá su propia área de datos, para que los recursos web procesen sus propios datos.
Sesión: la sesión es una tecnología del lado del servidor. Usando la tecnología de sesión, el servidor puede crear su propio objeto de sesión para el navegador de cada usuario cuando se ejecuta. Dado que la sesión es exclusiva del navegador del usuario, cuando el usuario accede a los recursos web del servidor, el usuario puede poner sus propios datos en la sesión. Cuando el usuario accede a otros recursos web nuevamente en el servidor, los otros recursos web serán de la sesión respectiva del usuario.
Saque los datos para servir al usuario.
Diferencias clave entre la sesión y las cookies:
A menudo usamos la sesión para almacenar parte de la información de inicio de sesión del usuario para verificar si el usuario está en línea. Esta es la solución más fácil del lado web que se debe implementar. Este artículo utiliza el marco SSM (Spring, SpringMVC, MyBatis) como portador para implementar específicamente este sistema de inicio de sesión.
El método es el siguiente:
1. Pase el nombre de usuario y la contraseña a la interfaz de backend a través de la parte delantera. Después de que la interfaz obtiene el valor, está encriptado MD5, lo compara con los campos en la base de datos, devuelve el estado a la parte delantera y la parte delantera salta la página de acuerdo con el valor de retorno.
Clase de herramienta de cifrado MD5
Public String coderByMd5 (String Str) lanza NosuchalgorithMexxception, UnsupportedEncodingException {// Determine el método de cálculo Messagedigest md5 = MessageGest.getInstance ("MD5"); Base64Encoder base64en = new Base64Encoder (); // cadena cifrada String Newsstr = Base64en.encode (MD5.Digest (str.getBytes ("UTF-8"))); Return Newsr; }Dao capa y mapeador
<Select id = "Valiteuser" Parametertype = "java.lang.string" resultType = "com.heitian.ssm.model.userinfo"> Seleccione contraseña de t_user donde username = #{username} </select>Clase de implementación de la capa de servicio
public String ValiteUser (UserInfo UserInfo) {try {userInfo userDemo = userDao.ValiteUser (EncoderByMd5 (userInfo.getUsername ()); if (userInfo.getPassword (). Equals (userDemo.getPassword ())) {return "pase"; }} catch (Exception e) {E.PrintStackTrace (); devolver "error"; } return "bashuse"; }Capa del controlador
@ResponseBody @RequestMapping ("/Loginuser") public Hashmap <String, Object> Loginuser (httpservletRequest solicitud, UserInfo UserInfo) {Hashmap <String, Object> Result = New HashMap <String, Object> (); Httpsession session = request.getSession (); System.out.println ("Fail de inicio de sesión"); String status = Userservice.ValiteUser (UserInfo); if (status.equals ("pass")) {session.setAttribute ("current_user", userInfo.getUsername ()); resultado.put ("estado", "pasar"); } else {if (status.equals ("rehuse")) {result.put ("status", "rechuse"); } else {result.put ("status", "error"); }} Resultado de retorno; }Al devolver la información de estado, podemos determinar si el inicio de sesión es exitoso. Si es exitoso, escriba el par de valores clave del nombre de usuario en la sesión.
2. Al acceder a otras páginas, ¿cómo determinar si algún usuario inicia sesión en línea? Utilizo JS para obtener el valor de la sesión para juzgar.
Es decir: primero obtenga el valor de la sesión. Si está vacío o nulo, significa que la sesión no tiene un comportamiento de inicio de sesión antes de esto. Lo redirigimos automáticamente a la página de inicio. Si hay un valor, significa que hay un comportamiento de inicio de sesión, y el usuario iniciado en línea es actual_user
En este momento, podemos usar el nombre de usuario para ajustar la interfaz de fondo.
<script language = "javaScript"> $ (documento) .Ready (function () {var myname = "<%= session.getAttribute (" current_user ")%>"; var proyectid1 = "<%= request.getAttribute (" proyectsID ")%>"; if (myName == "null") {window.location.href = "/page/page/page/page/a toindex" } </script>3. INGOMIRSE DEL USUARIO
Iniciar sesión, es decir, borrar el valor en la sesión, y una interfaz de inicio de sesión se abrirá desde el fondo.
@RequestMapping ("/Quituser") Public String Quituser (HTTPServletRequest Solicitud) {httpsession session = request.getSession (); session.RemoveAttribute ("current_user"); devolver "índice"; }Esto se da cuenta de un sistema de administración de usuarios desde el inicio de sesión hasta el inicio de sesión, pero este es el sistema más básico, y la seguridad es un gran problema, por lo que las soluciones de verificación como JWT Token siguen siendo muy útiles.
Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.