SpringBoot+SpringMVC实现简单的登录注册功能

目录

一:后端实现

后台代码

项目结构

 配置文件

前端代码

小结


本项目采用SpringBoot快速搭建后台 html前端页面快速写出页面帮助新手快速体验

使用的技术有sprintboot ,lombok,mybatis 等快速构建一个Web项目难点在于前端页面的编写

一:后端实现

SpringBoot项目搭建

后台代码

项目结构

 

 配置文件

server:
  port: 8081 # 端口
  servlet:
    context-path: /loginDemo #访问根路径
mybatis:
  mapper-locations: classpath:com.zly.Dao/*.xml # 映射文件路径
  type-aliases-package: com.zly.entity # 别名扫描
spring:
  mvc:
    view:
      prefix: /
      suffix: .html
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver # mysql 驱动
    url: jdbc:mysql://localhost:3306/login?useSSL=false # 连接
    username: #用户
    password: #密码

 主要后端代码

controller

@Controller
public class LoginController {
    @Autowired
    private UserService userService;
    @RequestMapping("/")
    public String home(HttpSession httpSession){
        Object token = httpSession.getAttribute("token");
        if (token==null){
            return "login";
        }
        if (token.equals("loginSuccess")){
            return "index";
        }else {
            return "login";
        }
    }
    @RequestMapping("/login")
    public String login(HttpServletRequest httpServletRequest,HttpSession httpSession) throws InterruptedException {
        String username = httpServletRequest.getParameter("username");
        String password = httpServletRequest.getParameter("password");
        if (username==null||password==null){
            return "login";
        }else {
            User user = userService.findByUsername(username);
            if (user.getPassword().equals(password)){
                //验证密码成功
                httpSession.setAttribute("token","loginSuccess");
                Thread.sleep(1000);
                return "index";
            }else {
                return "/";
            }
        }
    }
    @PostMapping("/addUser")
    public String addUser(HttpServletRequest httpServletRequest) {
        String username = httpServletRequest.getParameter("username");
        String password = httpServletRequest.getParameter("password");
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        userService.addUser(user);
        return "redirect:/login";
    }
}

 dao

@Mapper
public interface UserDao {
    // 根据用户名查找用户
    @Select("select * from user where username = #{username}")
    User findByUsername(String username);
    // 添加用户
    @Insert("insert into user(username,password) values(#{username},#{password})")
    void addUser(User user);
}

 service

public interface UserService {
    /** 
     * 根据用户名查找用户
     * @param username 用户名
     * @return 用户
     */
    User findByUsername(String username);

    /**
     * 添加用户
     * @param user 用户
     */
    void addUser(User user);
}
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDao userDao;
    @Override
    public User findByUsername(String username) {
        return userDao.findByUsername(username);
    }
    @Override
    public void addUser(User user) {
        userDao.addUser(user);
    }
}

 

前端代码

包括一些图标文件

以及css样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
    <link rel="stylesheet" href="./css/login.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css">
</head>
<body>

<!-- 创建封装容器 -->
<div class="container" id="container">
    <!-- 注册页面 -->
    <div class="form-container  sign-up-container">
        <form action="/loginDemo/addUser" method="post">
            <h1>sign up</h1>
            <!-- 公共组件 -->
            <div class="social-container">
                <a href="#"><i class="fa fa-qq"></i></a>
                <a href="#"><i class="fa fa-weixin"></i></a>
                <a href="#"><i class="fa fa-weibo"></i></a>
            </div>
            <input type="text" name="username" id="userName" placeholder="username...">
            <input type="email" name="email" id="email" placeholder="Email...">
            <input type="password" name="password" id="password" placeholder="Password...">
            <button>sign up</button>
        </form>
    </div>

    <!-- 登录页面 -->
    <div class="form-container sign-in-container">
        <form action="/loginDemo/login" method="get">
            <h1>sign in</h1>
            <!-- 公共组件 -->
            <div class="social-container">
                <a href="#"><i class="fa fa-qq"></i></a>
                <a href="#"><i class="fa fa-weixin"></i></a>
                <a href="#"><i class="fa fa-weibo"></i></a>
            </div>
            <input type="text" name="username" id="username" placeholder="Email..." >
            <input type="password" name="password" id="password" placeholder="Password...">
            <a href="#" class="forget">forget your password</a>
            <button>sign up</button>
        </form>
    </div>

    <!-- 覆盖容器 -->
    <div class="overlay-container">
        <div class="overlay">

            <!-- 覆盖左边 -->
            <div class="overlay-penal overlay-left-container">
                <h1>welcome back!</h1>
                <p>
                    To keep connected with us please login with your personal info
                </p>
                <button class="ghost" id="signIn">sign in</button>
            </div>

            <!-- 覆盖右边 -->
            <div class="overlay-penal overlay-right-container">
                <h1>Hello Friend!</h1>
                <p>
                    Enter your personal details and start journey with us
                </p>
                <button class="ghost" id="signUp">sign up</button>
            </div>
        </div>
    </div>
</div>
<script src="./js/login.js"></script>
</body>
</html>

 页面效果

主要是通过css来实现页面的控制

 

小结

这个项目让大家快速了解登录页,很快写出一个可以使用且好看的登录页面

github连接GitHub - Zhongliuyang/login-demo: 一个简单好看的登录代码

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当然,我可以为你提供一个基于Spring Boot、MyBatis和Spring MVC的登录注册功能的示例。下面是一个简单的示例代码: 首先,确保你的项目中已经引入了相关的依赖,包括Spring Boot、MyBatis和Spring MVC。 在`application.properties`文件中配置数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 创建一个名为`User`的实体类,用于表示用户信息: ```java public class User { private Long id; private String username; private String password; // 构造函数、getter和setter方法省略 } ``` 创建一个名为`UserMapper`的接口,用于定义对用户数据进行操作的方法: ```java @Mapper public interface UserMapper { @Insert("INSERT INTO users(username, password) VALUES(#{username}, #{password})") void register(User user); @Select("SELECT * FROM users WHERE username = #{username}") User findByUsername(String username); } ``` 创建一个名为`UserController`的控制器类,用于处理用户相关的请求: ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserMapper userMapper; @PostMapping("/register") public String register(@RequestBody User user) { User existingUser = userMapper.findByUsername(user.getUsername()); if (existingUser != null) { return "Username already exists"; } userMapper.register(user); return "Registration successful"; } @PostMapping("/login") public String login(@RequestBody User user) { User existingUser = userMapper.findByUsername(user.getUsername()); if (existingUser == null || !existingUser.getPassword().equals(user.getPassword())) { return "Invalid username or password"; } return "Login successful"; } } ``` 在`Application`类中添加`@MapperScan`注解,用于扫描Mapper接口: ```java @SpringBootApplication @MapperScan("com.example.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 这个示例实现了一个简单的用户注册和登录功能,使用了Spring Boot、MyBatis和Spring MVC。你可以使用任何HTTP客户端(如Postman)来测试这些接口。 请注意,这只是一个基础示例,实际应用中可能需要进行更多的数据验证和安全性措施。此外,密码应该使用加密算法进行存储,而不是以明文形式保存在数据库中。 希望这个示例对你有所帮助!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZLY_2004

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

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

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

打赏作者

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

抵扣说明:

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

余额充值