最简单登录页面(详细代码分析element-ui基础)

图片

HTML页面代码




    
    环境
    
    
    
    
    
    
    
    



LOGIN IN
登录 注册
我是管理者

CSS页面代码

#login {
    height: 300px;
    width: 400px;
    background-color: rgba(255, 255, 255, 0.26);
    text-align: center;
    top: 50%;
    left: 50%;
    margin-left: -160px;
    margin-top: -160px;
    box-shadow: rgba(17, 16, 16, 0.41) 0px 0px 10px inset, rgba(48, 45, 45, 0.3) 0px 0px 15px;
    position: absolute;
    border-radius: 10px;
    border-width: 1px;
    border-style: solid;
    border-color: rgb(170, 170, 170);
    border-image: initial;
}
#loginMsg {
    text-align: center;
    margin-left: 1px;
    margin-top: 10px;
    font-size: 60px;
    font-weight: bold;
    color: rgb(80, 175, 235);
}
#username {
    font-weight: bolder;
    margin-left: 15px;
    height: 30px;
    width: 300px;
    padding-left: 10px;
    border-radius: 5px;
}
#password {
    font-weight: bolder;
    margin-left: 15px;
    height: 30px;
    width: 300px;
    padding-left: 10px;
    border-radius: 5px;
    outline: none;
}
#tool {
    display: flex;
    justify-content: space-between;
    color: rgb(24, 25, 28);
    margin-left: 150px;
}
#butt {
    margin-top: 30px;
    text-align: center;
}
html {
    height: 100%;
    width: 100%;
    overflow: hidden;
    margin: 0;
    padding: 0;
    /*改成自己的图片*/
    background: url(../images/environment1.jpg) no-repeat 0px 0px;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    -moz-background-size: 100% 100%;
}
#ManageButton{
    position: relative;
    top: 30px;
    right: 10px;
}

 Controller层代码

//改成自己包名
package com.envir.controller;

//改成自己包名  记得导maven依赖
import com.envir.pojo.User;
import com.envir.utils.R;
import com.envir.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

import javax.servlet.http.HttpSession;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.TimeUnit;

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {

    //依赖注入
    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public R login(@RequestBody User user, HttpSession session) {
        //密码加密
        String password = user.getPassword();
        password = DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8));
        //根据密码查询用户
        LambdaQueryWrapper qw = new LambdaQueryWrapper<>();
        qw.eq(User::getUsername, user.getUsername());
        User one = userService.getOne(qw);
        //比较用户
        if (one == null) {
            log.info("用户名不存在");
            return R.error("用户名不存在");
        }
        //比较密码
        if (!password.equals(one.getPassword())) {
            log.info("密码错误");
            return R.error("密码错误");
        }
        //是否禁用
        if (one.getStatus() == 0) {
            log.info("用户被禁用");
            return R.error("用户被禁用");
        }
        //存入会话
        session.setAttribute("auth", one.getId());
        //返回
        return R.success(one);
    }
}

包装类R(大多数都可适用)

package com.envir.utils;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

@Data
@ApiModel("返回结果")
public class R implements Serializable {
    @ApiModelProperty("编码")
    private Integer code; //编码:1成功,0和其它数字为失败
    @ApiModelProperty("错误信息")
    private String msg; //错误信息
    @ApiModelProperty("数据")
    private T data; //数据
    @ApiModelProperty("动态数据")
    private Map map = new HashMap(); //动态数据
    /* R    静态方法  泛型      */
    /* R    方法  泛型      */
    public static  com.envir.utils.R success(T object) {
        com.envir.utils.R r = new com.envir.utils.R();
        r.data = object;
        r.code = 1;
        return r;
    }

    public static  com.envir.utils.R error(String msg) {
        com.envir.utils.R r = new com.envir.utils.R();
        r.msg = msg;
        r.code = 0;
        return r;
    }

    public com.envir.utils.R add(String key, Object value) {
        this.map.put(key, value);
        return this;
    }

}

pojo的User(记得书写数据库并链接)

package com.envir.pojo;


import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class User  implements Serializable {

    //唯一用户标识
    private Long id;

    //照片
    private String images;

    //用户名
    private String username;

    //密码
    private String password;

    //性别
    private String sex;

    //年龄
    private Integer age;

    //地址
    private String address;

    //个人介绍
    private String introduce;

    //手机号
    private String phone;

    //状态(是否已注销)
    private int status;

    //创建时间
    private LocalDateTime createTime;

    //修改时间
    private LocalDateTime updateTime;


}

数据库链接(在application.yml中)

#数据库连接配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:///(此处为数据库名称)?useSSL=false&useUnicode=true&characterEncoding=utf-8
    username: root  #数据库用户名
    password: 1234  #数据库密码

Mapper下UserMapper

package com.envir.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.envir.pojo.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper {
}

Service下UserService

package com.envir.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.envir.pojo.User;

public interface UserService extends IService {

}

Service下Impl下的UserServiceImpl

package com.envir.service.Impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.envir.mapper.UserMapper;
import com.envir.pojo.User;
import com.envir.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpSession;
import javax.xml.ws.http.HTTPException;

@Transactional(rollbackFor = Exception.class)
@Service
public class UserServiceImpl
        extends ServiceImpl
        implements UserService {
}

你可能感兴趣的:(SpringBoot前后端,ui,vue.js,elementui,java,javascript,spring,boot,html5)