图片
HTML页面代码
环境
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 {
}