springboot+mybatis+jsp实现登录注册功能
时间: 2023-07-31 16:13:29 浏览: 78
好的,下面是简单的步骤:
1. 创建一个Spring Boot项目
2. 添加依赖:spring-boot-starter-web、spring-boot-starter-jdbc、mybatis-spring-boot-starter、mysql-connector-java
3. 在application.properties文件中配置数据源和MyBatis配置
4. 创建一个User实体类,用于存储用户信息
5. 创建一个UserMapper接口和一个UserMapper.xml文件,用于定义对User实体类的CRUD操作
6. 创建一个UserService类,实现注册和登录功能,通过UserMapper来操作数据库
7. 创建一个UserController类,处理用户请求,返回JSP页面
8. 创建login.jsp和register.jsp页面,用于用户登录和注册
具体实现细节可以参考以下代码:
User.java
```java
public class User {
private Integer id;
private String username;
private String password;
// getter and setter
}
```
UserMapper.java
```java
@Mapper
public interface UserMapper {
@Insert("INSERT INTO user(username, password) VALUES(#{username}, #{password})")
int insert(User user);
@Select("SELECT * FROM user WHERE username = #{username}")
User findByUsername(String username);
}
```
application.properties
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.model
```
UserService.java
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public boolean register(User user) {
User existUser = userMapper.findByUsername(user.getUsername());
if (existUser != null) {
return false;
}
userMapper.insert(user);
return true;
}
public boolean login(User user) {
User existUser = userMapper.findByUsername(user.getUsername());
if (existUser == null || !existUser.getPassword().equals(user.getPassword())) {
return false;
}
return true;
}
}
```
UserController.java
```java
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/login")
public String login() {
return "login";
}
@RequestMapping("/register")
public String register() {
return "register";
}
@RequestMapping("/doLogin")
public String doLogin(User user, Model model) {
boolean result = userService.login(user);
if (result) {
return "success";
} else {
model.addAttribute("error", "用户名或密码错误");
return "login";
}
}
@RequestMapping("/doRegister")
public String doRegister(User user, Model model) {
boolean result = userService.register(user);
if (result) {
return "success";
} else {
model.addAttribute("error", "用户名已存在");
return "register";
}
}
}
```
login.jsp
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<form action="doLogin" method="post">
<label>用户名:</label>
<input type="text" name="username"><br>
<label>密码:</label>
<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
<p>${error}</p>
</body>
</html>
```
register.jsp
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<h1>注册</h1>
<form action="doRegister" method="post">
<label>用户名:</label>
<input type="text" name="username"><br>
<label>密码:</label>
<input type="password" name="password"><br>
<input type="submit" value="注册">
</form>
<p>${error}</p>
</body>
</html>
```
注意:以上代码仅为示例,仅供参考,需要根据具体需求进行调整。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)