#springboot/element-ui登陆操作/前后端分离 (文字版)
@PostMapping("/login")
//前台传来的数据使标准的json字符串,所以需要@RequestBody注解进行封装
public ResponseEntity loginIn(@RequestBody Student stu) {
/**
* 这里将结果信息封装成了对象
* basecode 0 失败 1 成功
* basemsg 传递请求信息
* Object basedata 用于存储返回数据
*/
BaseResult baseResult = new BaseResult();
Student student = studentService.loginIn(stu.getStuid());
if (student == null) {
/**
* 这里将basecode封装成了commonUtil 中的一个静态成员变量
*/
baseResult.setCode(CommonUtil.FILE);
baseResult.setErrmsg("用户名不存在");
} else if (!student.getPassword().equals(stu.getPassword())) {
baseResult.setCode(CommonUtil.FILE);
baseResult.setErrmsg("密码错误");
} else {
baseResult.setCode(CommonUtil.SUUCESS);
baseResult.setErrmsg("登录成功");
}
return new ResponseEntity<>(baseResult, HttpStatus.OK);
}
##前端注意事项
##后端注意事项
1 在比较用户名和密码的时候,初学者往往会使用通用Mapper selectAll 但在实际的开发环境下,数据库的数据往往会很庞大,这样查询时间会过长,造成用户体验差。
解决方案:
public Student loginIn(Integer stuid) {
Example example = new Example(Student.class);
example.createCriteria().andEqualTo("stuid",stuid);
List students = studentMapper.selectByExample(example);
//这里不考虑stuid重复问题
return students.size()==0?null:students.get(0);
}
这种方式较适合在实际开发中使用 ,但建议使用shiro 更加安全可靠