springboot+html实现简单注册登录

目录

前端:

register.html

login.html

success.html

style.css 

 后端:

com.example.entity.User

数据库建表(user)

​编辑 com.example.mapper.UserMapper

 com.example.controller.UserController

注册逻辑:

登录逻辑:

application.properities

pom.xml 

调试:

注册:

登录:


前端:

register.html

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>register</title>
    <link rel="stylesheet" type="text/css" href="/css/style.css" />
</head>
<body>
<div class="control">
    <div class="item">
        <div class="active">注册</div>
    </div>
    <div class="content">
        <div style="display: block;">
            <form action="/user/register" method="post">
            <p>用户名</p>
            <input type="text" placeholder="请输入用户名" name="username" />
            <p>密码</p>
            <input type="password" placeholder="请输入密码" name ="password"/>
            <br/>
            <input type="submit" value="注册"/>
            </form>
               <p>已注册,<a href="/user/login" target="top">去登录</a></p>

        </div>
    </div>
</div>
</body>
</html>

login.html

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>login</title>
    <link href="/css/style.css"  type="text/css" rel="stylesheet">
    <script src="/static/js/change.js"></script>
</head>
<body>
<div class="control">
    <div class="item">
        <div class="active">登录</div>
    </div>
    <div class="content">
        <div style="display: block;">
            <form action="/user/login" method="post">
            <p>账号</p>
            <input type="text" placeholder="请输入用户名" name="username"/>
            <p>密码</p>
            <input type="password" placeholder="请输入密码"  name="password"/>
            <br/>
            <input type="submit" value="登录"/>
            </form>
            <p>没有账号,<a href="/user/register" target="top">去注册</a></p>
        </div>
    </div>
</div>
</body>
</html>

success.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
登录成功
</body>
</html>

style.css 

*{
    margin: 0;
    padding: 0;
}
body{
    background: #f3f3f3;
}
.control{
    width: 340px;
    background: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    border-radius: 5px;
}
.item{
    width: 340px;
    height: 60px;
    background: #eeeeee;
}
.item div{
    width: 340px;
    height: 60px;
    display: inline-block;
    color: black;
    font-size: 18px;
    text-align: center;
    line-height: 60px;
    cursor: pointer;
}
.content{
    width: 100%;
}
.content div{
    margin: 20px 30px;
    display: none;
    text-align: left;
}
p{
    color: #4a4a4a;
    margin-top: 30px;
    margin-bottom: 6px;
    font-size: 15px;
}
.content input[type="text"], .content input[type="password"]{
    width: 100%;
    height: 40px;
    border-radius: 3px;
    border: 1px solid #adadad;
    padding: 0 10px;
    box-sizing: border-box;
}
.content input[type="submit"]{
    margin-top: 40px;
    width: 100%;
    height: 40px;
    border-radius: 5px;
    color: white;
    border: 1px solid #adadad;
    background: cyan;
    cursor: pointer;
    letter-spacing: 4px;
    margin-bottom: 40px;
}
.active{

    background: white;
}
.item div:hover{
    background: #f6f6f6;
}

 后端:

com.example.entity.User

@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Table( "user")

public class User {

    private String username;
    private String password;

}

数据库建表(user)

 com.example.mapper.UserMapper

@Mapper
public interface UserMapper extends BaseMapper<User> {

    @Select(value = "select u.username,u.password from user u where u.username=#{username}")
    User findUserByName(@Param("username") String username);

}

 com.example.controller.UserController

@Controller
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserMapper userMapper;
    @RequestMapping("/register")
    public String register(User user, Model m) {
        if (user.getUsername()!=null&&userMapper.findUserByName(user.getUsername()) == null) {
            //判断用户是否已经存在
           if (!user.getUsername().isEmpty()) {
                //注册的时候,用户名不能为空
                if (!user.getPassword().isEmpty()) {
                    //注册 的时候,密码不能为空*/
                    userMapper.insert(user);
                    return "html/login";
                } else {
                    m.addAttribute("msg", "用户名已经存在!");
                    return "html/register";
                }
            } else {
                m.addAttribute("msg", "用户名不能为空!");
                return "html/register";
            }
        } else {
            m.addAttribute("msg", "密码不能为空!");
            return "html/register";
        }
    }


    @RequestMapping("/login" )
    public String login(  User user, Model m){
        User exitUser=userMapper.findUserByName(user.getUsername());
        if(user.getUsername()==null||user.getUsername().isEmpty()){
            m.addAttribute("msg","用户名不能为空");
            return "html/login";
        }
        if(user.getPassword()==null||user.getPassword().isEmpty()){
            m.addAttribute("msg","密码不能为空");
            return "html/login";
        }
        if(exitUser==null){
            m.addAttribute("msg","该用户未注册");
            return "html/login";
        }
        if(!user.getPassword().equals(exitUser.getPassword())){
            m.addAttribute("msg","用户输入的密码有误");
            return "html/login";
        }else{

            m.addAttribute("msg","登录成功");
            return "html/success";
    }

    }

}

注册逻辑:

1.判断要创建的用户在数据库是否存在,如果不存在就注册

2.注册的时候用户名不能为空

3.注册的时候密码不能为空

登录逻辑:

1.判断要登录的用户在数据库是否存在,如果存在就登录

2.登录的时候,输入的密码要与数据库里对应的用户的密码保持一致

3.登录的时候,输入用户名与密码不能为空

application.properities

spring.datasource.url=jdbc:mysql://localhost:3306/springboot?serverTimezone=GMT
spring.datasource.username=root
spring.datasource.password=1234


pom.xml 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.5.0</version>
       <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>register-login</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>register-login</name>
    <description>register-login</description>
    <properties>
       <java.version>1.8</java.version>
    </properties>
    <dependencies>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
       </dependency>

       <dependency>
          <groupId>com.mysql</groupId>
          <artifactId>mysql-connector-j</artifactId>
          <version>8.0.33</version>
          <scope>runtime</scope>
       </dependency>
       <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <optional>true</optional>
       </dependency>



       <dependency>
          <groupId>com.mybatis-flex</groupId>
          <artifactId>mybatis-flex-spring-boot-starter</artifactId>
          <version>1.6.4</version>
       </dependency>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
       </dependency>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-thymeleaf</artifactId>
       </dependency>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-devtools</artifactId>
          <optional>true</optional>
       </dependency>



       <dependency>
       <groupId>com.mybatis-flex</groupId>
       <artifactId>mybatis-flex-spring-boot-starter</artifactId>
       <version>1.6.4</version>
       </dependency>
       <dependency>
          <groupId>com.mybatis-flex</groupId>
          <artifactId>mybatis-flex-spring-boot-starter</artifactId>
          <version>1.6.4</version>
       </dependency>


       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-data-jpa</artifactId>
       </dependency>


    </dependencies>

    <build>
       <plugins>
          <plugin>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-maven-plugin</artifactId>
             <configuration>
                <fork>true</fork>
                <excludes>
                   <exclude>
                      <groupId>org.projectlombok</groupId>
                      <artifactId>lombok</artifactId>
                   </exclude>
                </excludes>
             </configuration>
          </plugin>
       </plugins>
    </build>

</project>

调试:

注册:

如果注册的用户在数据库中不存在,且注册的时候,用户名与密码都不为空,则跳转到

登录界面,反之,任意一个条件都不满足的话就不会跳转到登录界面

登录:

如果登录的用户在数据库中存在,且登录的时候,用户名不为空,密码不为,则跳转到

成功界面(success.html),反之,任意一个条件都不满足的话就不会跳转到成功界面。

  • 8
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
实现登录注册的前后端交互,可以按照以下步骤: 1. 创建一个Spring Boot项目。 2. 添加依赖:spring-boot-starter-web、spring-boot-starter-thymeleaf、spring-boot-starter-jdbc、mysql-connector-java、mybatis-spring-boot-starter。 3. 配置数据库连接,可以在application.properties文件中添加以下内容: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 4. 创建数据库表,例如创建user表,包含id、username、password三个字段。 5. 创建User实体类,对应user表中的字段。 6. 创建Mapper接口和Mapper.xml文件,用于数据操作。 7. 创建Controller类,处理前端请求。 8. 创建html页面,用于用户输入信息和显示结果。 下面是一个简单的示例: 1. 创建Spring Boot项目。 2. 添加依赖:spring-boot-starter-web、spring-boot-starter-thymeleaf、spring-boot-starter-jdbc、mysql-connector-java、mybatis-spring-boot-starter。 ``` <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> </dependencies> ``` 3. 配置数据库连接,可以在application.properties文件中添加以下内容: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 4. 创建数据库表,例如创建user表,包含id、username、password三个字段。 ``` CREATE TABLE IF NOT EXISTS `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) DEFAULT NULL, `password` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; ``` 5. 创建User实体类,对应user表中的字段。 ``` public class User { private Integer id; private String username; private String password; // getter和setter方法省略 } ``` 6. 创建Mapper接口和Mapper.xml文件,用于数据操作。 ``` @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE username=#{username} AND password=#{password}") User getUser(@Param("username") String username, @Param("password") String password); @Insert("INSERT INTO user(username, password) VALUES(#{username}, #{password})") int addUser(User user); } ``` 7. 创建Controller类,处理前端请求。 ``` @Controller public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/") public String index() { return "index"; } @PostMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password, Model model) { User user = userMapper.getUser(username, password); if (user == null) { model.addAttribute("error", "用户名或密码错误"); return "index"; } else { model.addAttribute("username", user.getUsername()); return "success"; } } @PostMapping("/register") public String register(@RequestParam("username") String username, @RequestParam("password") String password, Model model) { User user = new User(); user.setUsername(username); user.setPassword(password); int result = userMapper.addUser(user); if (result == 1) { model.addAttribute("username", username); return "success"; } else { model.addAttribute("error", "注册失败"); return "index"; } } } ``` 8. 创建html页面,用于用户输入信息和显示结果。 index.html: ``` <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Login/Register</title> </head> <body> <h1>Login/Register</h1> <form action="/login" method="post"> <label>Username: </label><input type="text" name="username"/><br/> <label>Password: </label><input type="password" name="password"/><br/> <input type="submit" value="Login"/> <span th:text="${error}"></span> </form> <hr/> <form action="/register" method="post"> <label>Username: </label><input type="text" name="username"/><br/> <label>Password: </label><input type="password" name="password"/><br/> <input type="submit" value="Register"/> <span th:text="${error}"></span> </form> </body> </html> ``` success.html: ``` <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Success</title> </head> <body> <h1>Welcome, <span th:text="${username}"></span>!</h1> </body> </html> ``` 以上就是一个简单的登录注册前后端交互的示例。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值