SpringBoot(登陆 注册)项目

目录

一、准备工作

1.项目结构

​编辑2.项目截图

3.pom配置

二、登录注册(后台)

 1.创建数据库

2.POJO(Entity)编写-UserBean.java

3.Controller编写-UserController.java

4.Service编写-UserService.java-

5.Mapper编写-UserMapper.java

6.配置文件编写-application.properties

7.启动类编写-KettleProcessorApplication.java

三、登录注册(前台)

1.登录页面-login.html

2.注册页面-signup.html

3.成功页面-success.html

4.失败页面-error.html

四、项目演示

1.注册

2.登录


一、准备工作

1.项目结构

50aacaa6b23b41ea8b60405806e59ff9.png

 这里根据自己的情况选择

我们用的是Maven项目21584de600b045489b85a1803bdb17c4.png

 6c5b45e26b264e3e8b383bae107d3e91.pngd3bdfd30c8ee4ac9911d97da164409da.png

29f2af618e3344d3bb0b69d37b582b92.png2.项目截图

6896d7b4fb9341ee83ed6e19934db11b.png

3.pom配置

b1b6505a3dc0463cb39d825feb818aef.png

二、登录注册(后台)

 1.创建数据库

db0017ced12946c6993511f76ffd1e52.png

建表语句:

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '用户表id',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `password` varchar(50) NOT NULL COMMENT '用户密码,MD5加密',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表'

2.POJO(Entity)编写-UserBean.java

4801faa9e0394152be0cd8292f04158d.png

package com.cary.myproject.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

@Data//提供了set、get方法及toString
@AllArgsConstructor
@NoArgsConstructor
public class UserBean implements Serializable {
    private Integer id;
    private String username;
    private String password;
    private String email;
    private String phone;
    //为下方时间,添加Json注解
    @JsonFormat(pattern = "yyyy-MM-mm HH:mm:ss")
    private Date crate_time;
    @JsonFormat(pattern = "yyyy-MM-mm HH:mm:ss")
    private Date update_time;
}

3.Controller编写-UserController.java

 添加pom配置

6cc71741bef84ae0a95db3e24d0fe9ad.png

19569d56e8b447b391924346ad65aeeb.png

package com.cary.myproject.controller;
import cn.hutool.core.util.StrUtil;
import com.cary.myproject.pojo.UserBean;
import com.cary.myproject.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Slf4j
@Controller // 不能用@RestController
public class UserController {
    @Autowired
    UserService userService;
    @RequestMapping("/hello")
    public String hello(){
        return "login";
    }
    @RequestMapping("/register")
    public String register(){
        return "signup";
    }

    @RequestMapping(value = "/login",method = RequestMethod.POST)
    public String login(String username,String password){
        UserBean user=userService.login(username,password);
        log.info("username:{}",username);
        log.info("password:{}",password);
        //hutool-core	核心,包括Bean操作、日期、各种Util等
        if(StrUtil.isNotEmpty(username)) {
            if(user != null) {
                return "success";
                //方法引用-遍历集合
                //Opt.ofEmptyAble(userBean).ifPresent(System.out::println);
            }
        } else {
            return "用户名不允许为空";
        }
        return "error";
    }
    @RequestMapping(value = "/signup",method = RequestMethod.POST)
    public  String signup(String username, String password){
        userService.register(username,password);
        return "success";
    }
}

4.Service编写-UserService.java-

4056e9e03f834379b59acc970aed4833.png

package com.cary.myproject.service;

import com.cary.myproject.pojo.UserBean;

public interface UserService {
    public UserBean login(String username, String password);

    public void register(String username, String password);
}
package com.cary.myproject.service;

import com.cary.myproject.mapper.UserMapper;
import com.cary.myproject.pojo.UserBean;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserServicelmpl implements UserService{
    @Resource
    private UserMapper userMapper;
    @Override
    public UserBean login(String username, String password) {
        return userMapper.getInfo(username,password);
    }

    @Override
    public void register(String username, String password) {
        userMapper.saveUser(username,password);
    }
}

5.Mapper编写-UserMapper.java

添加pom配置

59db91fbc8f54d61bebd7cd1cdafd74f.png

49419f15d7024764a82698e16f9922ef.png

package com.cary.myproject.mapper;

import com.cary.myproject.pojo.UserBean;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper  //添加Mapper注解,就不用写xml的mapper映射文件了

public interface UserMapper {
        //多个参数要加@Param修饰
        //思考:xml中的<include>代码片段怎么配
        @Select("SELECT * FROM user WHERE username=#{username} AND password= #{password}")
        UserBean getInfo(@Param("username") String username, @Param("password") String password);

        @Insert("INSERT INTO user(username,password) VALUE(#{username},#{password})")
        void saveUser(@Param("username") String username,@Param("password") String password);
    }
package com.cary.myproject.controller;

import cn.hutool.core.util.StrUtil;
import com.cary.myproject.pojo.UserBean;
import com.cary.myproject.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/hello")
    public String hello(){
        return "login";
    }
    @RequestMapping("/register")
    public String register(){
        return "register";
    }

    @RequestMapping(value = "/login",method = RequestMethod.POST)
    public String login(String username,String password){
        UserBean user=userService.login(username,password);
        //hutool-core	核心,包括Bean操作、日期、各种Util等
        if(StrUtil.isNotEmpty(username)) {
            if(user != null) {
                return "success";
                //方法引用-遍历集合
                //Opt.ofEmptyAble(userBean).ifPresent(System.out::println);
            }
        } else {
            return "用户名不允许为空";
        }
        return "error";
    }

    @RequestMapping(value = "/signup",method = RequestMethod.POST)
    public  String signup(String username, String password){
        userService.register(username,password);
        return "success";
    }
}

6.配置文件编写-application.properties

720101dc1d454fa1810659868e301d54.png

spring.thymeleaf.cache=false
# 配置端口号为8080
server.port=8080

spring.datasource.url=jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC
# Mysql用户
spring.datasource.username=root
# Mysql对应用户密码
spring.datasource.password=123456
#配置MyBatis的XML文件路径
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.cary.myproject.pojo

spring.thymeleaf.prefix=classpath:/templates/

 注意:spring.thymeleaf.prefix=classpath:/templates/

是两个斜杠

7.启动类编写-KettleProcessorApplication.java

 添加pom配置

d2612ecf1c8f4b3b9318a0c34f1f1e8c.png

63336c7f20b5439f8acc99a231650039.png

三、登录注册(前台)

1.登录页面-login.html

7988178b7cce4e74930be52dbcdb5870.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录系统</title>
</head>
<body>
<form role="form" action="/login" method="post">
账号:<input type="text" id="username" name="username"><br>
密码:<input type="password" id = "password" name = "password"> <br>
<input type="submit" id = "login" value = "登录"></form>
<a href="/register">注册</a>
</body>
</html>

2.注册页面-signup.html

783c234cc9a947f4a4b3effc9bfdc595.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
<form role="form" action="/signup" method="post">
    请输入姓名:<input type="text" name="username" id="name"><br>
    请输入密码:<input type="password" name="password" id="password"><br>
    <input type="submit" name="sign" value="提交">
</form>
</body>
</html>

3.成功页面-success.html

82354c87c63d4ec29c15d60eb933aaa6.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>欢迎,恭喜登录成功/注册成功</h1>
</body>
</html>

4.失败页面-error.html

9be10084bb05404c882fc787158a8d20.png

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

四、项目演示

1.注册

e8d0f976ae314a66854e7b1968f57897.gif

2.登录

68468ec4966f477588aaf1b093cb3015.gif

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
引用\[1\]是一个注册成功的页面的HTML代码,其中使用了JavaScript来实现倒计时并跳转回登录界面。引用\[2\]是一个yml文件的配置,其中包括了数据库连接信息和静态路径配置。引用\[3\]是一个注册失败的页面的HTML代码,同样也使用了JavaScript来实现倒计时并跳转回登录界面。 要实现Spring Boot的登录和注册功能,可以按照以下步骤进行操作: 1. 创建一个Spring Boot项目,并添加所需的依赖,如Spring Web、Spring Data JPA等。 2. 创建一个用户实体类,包含用户名、密码等属性,并使用JPA注解进行实体映射。 3. 创建一个用户Repository接口,继承自JpaRepository,用于对用户数据进行增删改查操作。 4. 创建一个用户控制器,使用@RestController注解,实现用户注册和登录的接口。 5. 在注册接口中,接收用户提交的用户名和密码,将其保存到数据库中,并返回注册成功的消息。 6. 在登录接口中,接收用户提交的用户名和密码,根据用户名查询数据库中的用户信息,如果存在且密码匹配,则返回登录成功的消息。 7. 创建一个登录页面和注册页面的HTML模板,可以使用Thymeleaf等模板引擎来渲染页面,并在页面中添加相应的表单和按钮。 8. 在注册成功和失败的页面中,使用JavaScript实现倒计时并跳转回登录界面的功能,可以参考引用\[1\]和引用\[3\]中的代码。 以上是一个简单的实现示例,具体的实现方式可能会根据项目需求和技术选型有所不同。希望对你有帮助! #### 引用[.reference_title] - *1* *2* *3* [SpringBoot实现登录注册](https://blog.csdn.net/qq_44868502/article/details/102936729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贫坤户~濰小城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值