Problema: Springboot devuelve un error de inicio de sesión

¿Cómo Springboot devuelve la falla de inicio de sesión?

UserController

Este es el inicio de sesión en el UserController original:

@RequestMapping("login")
	public class UserController extends BaseController {
    
    

	@Autowired
	private IUserService userService;
	
	@RequestMapping("reg")
	public JsonResult<Void> reg(User user) {
    
    
		userService.reg(user);
		return new JsonResult<>(OK);
	}
	public JsonResult<User> login(String username, String password, HttpSession session) {
    
    
		// 调用业务层方法执行登录
		User data = userService.login(username, password);
		// 将uid、username存入到session中
		session.setAttribute("uid", data.getUid());
		session.setAttribute("username", data.getUsername());
		// 向客户端响应
		return new JsonResult<>(OK, data);
	}

método:

Este es el inicio de sesión en el UserController modificado:

@RequestMapping("login")
	public JsonResult<User> login(String username, String password, HttpSession session) {
    
    
		// 调用业务层方法执行登录
		try {
    
    
			User data = userService.login(username, password);
			session.setAttribute("uid", data.getUid());
			session.setAttribute("username", data.getUsername());
			// 向客户端响应若成功 
			return new JsonResult<>(OK, data);
		}catch (Exception e) {
    
    
			// 向客户端响应若失败 
			return new JsonResult<>(ERROR,"账号或密码错误");
		}
	}

Inserte la descripción de la imagen aquí
¿Qué es ERROR?
Dado que
UserController hereda BaseController, agréguelo a BaseController

protected static final int ERROR= 500;

BaseController

public class BaseController {
    
    
	/**
	 * 响应状态:成功
	 */
	//reg.html "dataType" : "json", "success" : function(json) { if (json.state == 2000) { alert("登录成功!"); } else {alert("登录失败!");}
	protected static final int OK =2000;
	
	protected static final int ERROR= 500;

Después de que el fondo sea normal, configure los datos de jQuery en primer plano

Esto es antes de la configuración:

<script type="text/javascript">
	$("#reg").click(function() {
    
    
		$.ajax({
    
    
			"url" : "/users/login",
			"data" : $("#form-login").serialize(),
			"type" : "POST",
			"dataType" : "json",
			"success" : function(json) {
    
    
				if (json.state == 2000) {
    
    
    				alert("登录成功!");
    			} else {
    
    
    				alert("登录失败!");
    			}
				}
			}
		});
	});

Esto es después de la configuración:

<script type="text/javascript">
	$("#reg").click(function() {
    
    
		$.ajax({
    
    
			"url" : "/users/login",
			"data" : $("#form-login").serialize(),
			"type" : "POST",
			"dataType" : "json",
			"success" : function(json) {
    
    
				if (json.state == 2000) {
    
    
					alert("登录成功!");
				} else {
    
    
					if(json.state== 500){
    
    
						alert(json.message);
					}
				}
			}
		});
	});

en:

alerta (json.message);

¿Qué es el mensaje?

Inserte la descripción de la imagen aquí
Manejo de excepciones
// Cree una clase JsonResult que encapsule el resultado de la respuesta

JsonResult

//处理异常
//创建封装响应结果的JsonResult类:
public class JsonResult<T> {
    
    
	private Integer state;
	private String message;
	private T data;
	//this,get.set方法

De esta forma conseguir el mensaje en login.HTML

Código fuente

Supongo que te gusta

Origin blog.csdn.net/weixin_44182157/article/details/109131219
Recomendado
Clasificación