English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Ejemplo de código de implementación de inicio de sesión de usuarios en SpringMVC

Un pequeño caso de ejemplo de inicio de sesión de SpringMVC

Preparativos

  1. Crear un Proyecto Web Dinámico (uso Eclipse)
  2. Agregar los paquetes jar relacionados y configurar la ruta de construcción
  3. Crear springMVC-servlet.xml y perfeccionar web.xml
  4. Crear lógica de código

La estructura de directorio es la siguiente

Para los principiantes, tener una estructura de directorio completa de un proyecto es una cosa muy afortunada.

Estructura de directorio

Recomendación personal: preste atención a springMVC-ubicación del archivo servlet.xml y el nombre del paquete de código fuente.

práctica de código

Primero es el administrador, web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-_app_3_1.xsd"
  id="WebApp_ID" version="3.1>
  <display-name>SpringTest</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>*.spring</url-pattern>
  </servlet-mapping>
</web-app>

Luego viene el administrador de tareas springMVC-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
      http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
      http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">
  <!-- La configuración más simple, deja que Spring explore por sí mismo-->
  <context:component-scan base-package="controller"></context:component-scan>
</beans>

Es una interfaz de inicio de sesión, login.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
<head
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8>
<title>Interfaz de inicio de sesión</>title
</>head
<body
  <form action="login.spring" method="post">
    nombre de usuario:<input type="text" name="username"><br /> Contraseña:<input
      type="password" name="password"><br /> <input type="submit"
      value="ingresar">
  </form>
</body>
</html>

la acción correspondiente a login.jsp es la página de backend que se debe procesar, es decir, nuestro Login.Java:

package controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller // @Controller representa que esta clase Java es una capa de controlador
public class Login {
  /**
   * La función de la anotación @RequestParam es: obtener el valor del parámetro desde la URL según el nombre del parámetro
   * @param username
   *      El nombre de usuario, debe coincidir con el nombre del formulario
   * @param password
   *      La contraseña del usuario, también debe coincidir con el elemento de datos del formulario
   * @param model
   *      Un objeto de dominio, que se puede usar para almacenar valores de datos
   * @return
   */
  @RequestMapping("/login") // @RequestMapping 注解可以用指定的URL路径访问本控制层
  public String login(@RequestParam("username") String username, @RequestParam("password") String password,
      Model model) {
    if (username.equals("admin") && password.equals("admin")) {
      model.addAttribute("username", username);
      return "ok.jsp";
    } else {
      model.addAttribute("username", username);
      return "no.jsp";
    }
  }
}

Lo último es ok.jsp y no.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
<head
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8>
<title>Inserta un título aquí</>title
</>head
<body
<font color="green">${username } </font>¡Bienvenido!]}
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
<head
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8>
<title>Inserta un título aquí</>title
</>head
<body
  <font color="red">Lo siento</font>¡No hay un usuario ${username }!
  <br />
  <a href="login.jsp" rel="external nofollow" >Inténtalo de nuevo! </a>
</body>
</html>

Pruebas

Escribe http: en tu navegador//localhost:8080/SpringTest/login.jsp

Luego se puede probar el código. He probado personalmente y funciona bien, aquí no se adjuntan imágenes.

Resumen

  1. Configurar el controladorDispatcherServlet en web.xml
  2. En WEB-Crear springMVC en la carpeta INF-Archivo de configuración servlet.xml
  3. Uso de @Controller, @RequestMapping, @RequestParam y el objeto Modelo
  4. El formulario puede enviarse mediante método POST o GET

Aquí van algunos consejos sobre la utilización de anotaciones:

@Controller es equivalente a springMVC-en servlet.xml

Gracias por leer, espero que pueda ayudar a todos, gracias por el apoyo a este sitio!

Te gustará