SpringBoot简单登录页面案例
文章目录
项目结构
mapper层 ,service层,controller层
controller是为前端提供的访问入口,不用关心具体的业务逻辑。具体的业务逻辑放在了serviceImpl里,controller只需调用它封装好的方法即可。
service提供业务逻辑要用到的方法,serviceImpl提供方法的具体实现。ServiceImpl负责了主要的功能编写,Controller提供了使用的入口。
mapper为serviceImpl提供操作数据的方法,但方法的具体实现(也就是SQL语句)放在了mapper下的xml文件里。
数据库
create table users
(
userid int auto_increment primary key ,
username varchar(20),
password varchar(20),
flat int comment '账号标识'
);
insert into users(username, password, flat)
values ('test1','test1',1),('test2','test2',1);
连接数据库配置
spring.datasource.name=sboot_demo
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://192.168.95.130:3306/sboot_demo
mybatis.mapper-locations=classpath:/mapper/*.xml
User实体类
@Data
public class Users {
private Integer id;
private String username;
private String password;
private Integer flat;
}
mapper层
@Mapper
public interface UsersMapper {
//根据用户名查询用户
Users find(Users users);
}
service层
service接口
public interface IUsersService {
//后台登录
Users adminLogin(Users users);
}
service实现类
@Service
public class UsersServiceImpl implements IUsersService {
//定义mapper数据库访问对象
@Resource
private UsersMapper usersMapper;
@Override
public Users adminLogin(Users users) {
return usersMapper.find(users);
}
}
controller层
@RequestMapping("/admin")
@Controller
public class AdminLoginController {
//定义后台用户业务对象
@Resource
private IUsersService usersService;
@RequestMapping("login_show")
public String login_show(){
return "/admin/login";
}
@RequestMapping("/login_submit")
public String login_submit(Users users, HttpSession session,Model model){
//根据用户名和密码进行登录校验
Users u = usersService.adminLogin(users);
//账号不存在
if (u==null){
model.addAttribute("err","用户名和密码不正确");
return "/admin/login";
}
//将登录的账号对象存入session,用于会话跟踪管理
session.setAttribute("adminUser",u);
return "/admin/index";
}
}
前端界面+css样式
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.com">
<head>
<meta charset="UTF-8">
<title>后台登录</title>
<link rel="stylesheet" type="text/css" href="/css/admin.css"/>
</head>
<body>
<div class="frm">
<div class="title">
后台登录
</div>
<form action="/admin/login_submit" method="post">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="username" required="required"/></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password" required="required"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="登录"/>
<div th:text="${err}" style="color: red;"></div>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
.frm
{
width: 300px;
margin: 100px auto;
}
.frm .title
{
height: 30px;
background-color: #337ab7;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
text-align: center;
line-height: 30px;
color: #fff;
}
.frm form
{
padding: 10px 0px;
border: 1px solid #adadad;
}
.frm table{
margin: 0px auto;
}
.frm table td
{
padding: 5px;
}