结合sprinboot和MyBatis 以及html写一个登录界面和登录接口
时间: 2024-01-24 20:02:13 浏览: 23
1. 首先在Spring Boot项目的pom.xml文件中添加MyBatis和MySQL的依赖:
```xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
```
2. 在application.properties文件中配置MySQL数据库连接信息:
```properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
```
3. 创建一个用户实体类User:
```java
public class User {
private Integer id;
private String username;
private String password;
// getter and setter
}
```
4. 创建一个UserMapper接口,定义用户相关的数据访问方法:
```java
@Mapper
public interface UserMapper {
User getUserByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
}
```
5. 创建一个UserService类,注入UserMapper,实现用户登录的逻辑:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User login(String username, String password) {
return userMapper.getUserByUsernameAndPassword(username, password);
}
}
```
6. 创建一个登录界面login.html,使用Thymeleaf模板引擎:
```html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form th:action="@{/login}" method="post">
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username"/>
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password"/>
</div>
<div>
<button type="submit">Login</button>
</div>
</form>
</body>
</html>
```
7. 创建一个登录控制器LoginController,处理用户登录请求:
```java
@Controller
public class LoginController {
@Autowired
private UserService userService;
@GetMapping("/login")
public String login() {
return "login";
}
@PostMapping("/login")
public String doLogin(@RequestParam("username") String username, @RequestParam("password") String password, HttpSession session) {
User user = userService.login(username, password);
if (user != null) {
session.setAttribute("user", user);
return "redirect:/home";
} else {
return "login";
}
}
}
```
8. 最后创建一个HomeController,处理用户登录成功后的跳转页面:
```java
@Controller
public class HomeController {
@GetMapping("/home")
public String home(HttpSession session) {
if (session.getAttribute("user") != null) {
return "home";
} else {
return "redirect:/login";
}
}
}
```
到此为止,整个登录功能的实现就完成了。当用户打开http://localhost:8080/login时,会跳转到登录界面login.html,填写用户名和密码后提交登录请求,LoginController处理请求并调用UserService进行登录验证,验证通过后将用户信息存入Session,并跳转到home.html页面。如果用户未登录或Session过期,访问http://localhost:8080/home时会被跳转到登录页。