前言
这期主要使用thymeleaf模板技术,前后端分离我会单独出一期,所以这期并不是前后端分离的
步骤
工程目录结构
下图是编写完之后的工程目录结构,先看一眼
添加pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- thymeleaf依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
怎么样,第一个依赖看着眼不眼熟,还记得我们第一期添加的那个吗,其实就是第一个
编写service
public interface UserService {
User queryUser(int userId);
User addUser(String userName, String password);
List<User> queryAllUser();
}
public interface ToolsService {
boolean checkNumber(String... number);
}
service这里每个方法尽量只完成一个功能,容错也尽量在这里做
编写serviceImpl
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User queryUser(int userId) {
return userDao.selectByUserId(userId);
}
@Override
public User addUser(String userName, String password) {
User user = new User();
user.setUserName(userName);
user.setPassword(password);
userDao.insert(user);
return user;
}
@Override
public List<User> queryAllUser() {
return userDao.selectAll();
}
}
@Service
public class ToolsServiceImpl implements ToolsService {
@Override
public boolean checkNumber(String... numbers) {
Pattern pattern = Pattern.compile("^[0-9]*$");
for (String number : numbers) {
if (!pattern.matcher(number).matches()) {
return false;
}
}
return true;
}
}
注意:要在所有service的实现类上面注明@Service
编写controller
我们要完成的业务是登录和注册
@Controller
public class UserController {
@Autowired
private UserService userService;
@Autowired
private ToolsService toolsService;
@RequestMapping({"/", "loginPage"})
public String loginPage() {
return "login";
}
@RequestMapping("login")
public String login(HttpSession session, Model model, String userId, String password) {
boolean flag = toolsService.checkNumber(userId);
if (!flag) {
model.addAttribute("msg", "账号应为纯数字");
return "login";
}
User user = userService.queryUser(Integer.parseInt(userId));
if (user != null) {
if (user.getPassword().equals(password)) {
session.setAttribute("user", user);
return "index";
}
model.addAttribute("msg", "密码错误");
return "login";
}
return "register";
}
@RequestMapping("register")
public String register(HttpSession session, String userName, String password) {
User user = userService.addUser(userName, password);
session.setAttribute("user", user);
return "index";
}
}
效果展示
正确输入
当我们输入正确的用户名和密码的时候,跳转到首页
账号不存在
当我们输入不存在的账号时,跳转到注册页面
密码错误
当我们输入错误的密码之后,会出现“密码错误”的提示,并跳转到登录页面
账号输入不为纯数字
当我们输入的账号不为纯数字时,会显示“账号应为纯数字”,并跳转到登录页面
项目链接
完整的项目链接:
链接:https://pan.baidu.com/s/1DpgH5AxCikHwLfllgqJOFw 提取码:2gf0
后记
Springboot入门系列就到此告一段落了,但是Springboot的学习还远远没有结束
传送门:
第二期:Springboot整合Mybatis