Jimsss1024 2022-08-19 12:20 采纳率: 50%
浏览 40
已结题

用SpringBoot搞的一个简单的登陆注册报错500

刚开始学SpringBoot开发的登陆注册(勿喷,刚开始学)报错500,不知道咋回事
用的是MySQL数据库,数据库名字叫web
有2个包,分别是:controller和mysql
controller下面有LoginController一个类
mysql是数据库操作类,mysql下面有UserLoginRegister一个类
项目结构:

img

进LoginIn和RegisterIn的时候就会前端报错500
后端报错:

img

这几行代码,控制台报错:
登录:

img

注册:

img

代码:
LoginConntroller:

package com.web.frame.controller;

import com.web.frame.mysql.UserLoginRegister;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class LoginController {
    Logger logger = LoggerFactory.getLogger(UserLoginRegister.class);
    UserLoginRegister userLoginRegister;

    //TODO 登录映射
    @RequestMapping("/login")
    public String log(){
        return "login";
    }

    //TODO 登录操作
    @RequestMapping(value = "/loginIn",method = RequestMethod.POST)
    public String login(String name,String password){
        String loginMessage = "error";
        loginMessage = userLoginRegister.login(name, password);
        logger.info("用户尝试登录:用户名:" + name + ",密码:" + password);
        if(loginMessage.equals("登录成功!")){
            logger.info(name + "登录成功!");
            return "lsuccess";
        }else if (loginMessage.equals("登录不成功!请检查用户名或密码是否错误!")){
            logger.info(name + "登录不成功!账号密码错误");
            return "lerror";
        }else if(loginMessage.equals("error")){
            logger.info("代码错误");
            return "codeerr";
        }else {
            logger.info(name + "请检查代码是否正确");
            return "codeerr";
        }
    }

    //TODO 注册映射
    @RequestMapping("/register")
    public String reg(){
        return "register";
    }

    //TODO 注册操作
    @RequestMapping(value = "/registerIn",method = RequestMethod.POST)
    public String signUp(String name,String password){
        logger.debug("reg");
        String registerMessage = "error";
        registerMessage = userLoginRegister.register(name, password);
        logger.info("用户尝试注册:用户名:" + name + ",密码:" + password);
        if (registerMessage.equals("创建用户失败!因为已经有同名用户")){
            logger.info(name + "注册不成功!有同名用户!");
            return "rerror";
        } else if (registerMessage.equals("创建用户成功!")) {
            logger.info(name + "注册成功!");
            return "rsuccess";
        }else if (registerMessage.equals("error")){
            logger.info("代码错误");
            return "codeerr";
        }else {
            logger.info(name + "请检查代码是否正确");
            return "codeerr";
        }
    }
}

UserLoginRegister:

package com.web.frame.mysql;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.sql.*;

public class UserLoginRegister {
    Logger logger = LoggerFactory.getLogger(UserLoginRegister.class);
    public String SQL_ULR = "jdbc:mysql://localhost:3306/web";
    public String USER_NAME = "root";
    public String PASSWORD = "PASSWORD";
    public String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    public String SQL_COMMAND_FIND_USER = "SELECT name,password FROM user where name=? and password=?";
    public String SQL_COMMAND_FIND_USER_REGISTER = "SELECT name FROM user where name=?";
    public String SQL_COMMAND_CREATE_USER = "INSERT INTO user (name,password) values(?,?)";
    public String SQL_COMMAND_DELETE_USER = "DELETE FROM user WHERE name=?";

    public Connection connection = null;
    public ResultSet resultSet = null;
    public PreparedStatement preparedStatement = null;
    public String login(String userName, String userPassword){
        try {
            logger.info("用户尝试登录:用户名:" + userName + ",密码:" + userPassword);
            Class.forName(JDBC_DRIVER);
            connection = DriverManager.getConnection(SQL_ULR, USER_NAME, PASSWORD);
            preparedStatement = connection.prepareStatement(SQL_COMMAND_FIND_USER);
            preparedStatement.setString(1, userName);
            preparedStatement.setString(2, userPassword);
            resultSet = preparedStatement.executeQuery();
            if (resultSet.next()){
                resultSet.close();
                preparedStatement.close();
                connection.close();
                logger.info("登录成功!用户名:" + userName + ",密码:" + userPassword);
                return "登录成功!";
            }else {
                resultSet.close();
                preparedStatement.close();
                connection.close();
                logger.info("登录不成功!用户名:" + userName + ",密码:" + userPassword);
                return "登录不成功!请检查用户名或密码是否错误!";
            }
        }catch (ClassNotFoundException e){
            logger.info("登录错误!错误代码:" + e);
            return "无法登录!错误代码:" + e;
        }catch (SQLException e){
            logger.info("登录错误!错误代码:" + e);
            return "无法登录!错误代码:" + e;
        }
    }
    public String register(String userName, String userPassword){
        try {
            logger.info("用户尝试注册:用户名:" + userName + ",密码:" + userPassword);
            Class.forName(JDBC_DRIVER);
            connection = DriverManager.getConnection(SQL_ULR, USER_NAME, PASSWORD);
            preparedStatement = connection.prepareStatement(SQL_COMMAND_FIND_USER_REGISTER);
            preparedStatement.setString(1, userName);
            resultSet = preparedStatement.executeQuery();
            if (resultSet.next()){
                preparedStatement.close();
                resultSet.close();
                connection.close();
                logger.info("创建用户失败!因为已经有同名用户:" + userName);
                return "创建用户失败!因为已经有同名用户";
            }else {
                preparedStatement = connection.prepareStatement(SQL_COMMAND_CREATE_USER);
                preparedStatement.setString(1, userName);
                preparedStatement.setString(2, userPassword);
                preparedStatement.execute();
                preparedStatement.close();
                resultSet.close();
                connection.close();
                logger.info("创建用户成功!用户名:" + userName + ",密码:" + userPassword);
                return "创建用户成功!";
            }
        }catch (ClassNotFoundException e){
            logger.info("创建用户错误!错误代码:" + e);
            return "无法创建用户!错误代码:" + e;
        }catch (SQLException e){
            logger.info("创建用户错误!错误代码:" + e);
            return "无法创建用户!错误代码:" + e;
        }
    }
    public String deleteUser(String userName){
        logger.info(userName + "尝试删除用户");
        if (userName.equals("Admin")){
            logger.info("管理员用户无法删除!");
            return "无法删除管理员用户!";
        }else {
            try {
                Class.forName(JDBC_DRIVER);
                connection = DriverManager.getConnection(SQL_ULR, USER_NAME, PASSWORD);
                preparedStatement = connection.prepareStatement(SQL_COMMAND_DELETE_USER);
                preparedStatement.setString(1, userName);
                preparedStatement.addBatch();
                preparedStatement.executeBatch();
                preparedStatement.close();
                connection.close();
                logger.info("已删除用户" + userName + "的账户");
                return "您的账号已成功删除";
            }catch (ClassNotFoundException e){
                logger.info("删除用户错误!错误代码:" + e);
                return "无法删除用户!错误代码:" + e;
            }catch (SQLException e) {
                logger.info("删除用户错误!错误代码:" + e);
                return "无法删除用户!错误代码:" + e;
            }
        }
    }
}

application.properties:

spring.mail.host=smtp.qq.com
spring.mail.port=587
spring.mail.username=3390544635@qq.com
spring.mail.password=goeygrycyokycieb
spring.mail.default-encoding=UTF-8
spring.mail.protocol=smtp
spring.mail.properties.mail.smtp.connectiontimeout=5000
spring.mail.properties.mail.smtp.timeout=3000
spring.mail.properties.mail.smtp.writetimeout=5000

server.port=8888

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.7.2</version>
        <relativePath/> 
    </parent>
    <groupId>com.webframe</groupId>
    <artifactId>frame</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>frame</name>
    <description>My create all website use this frame</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</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-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>system</scope>
            <systemPath>${project.basedir}/lib/mysql-connector-java-8.0.30.jar</systemPath>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

html文件
这里就只列重点的login.html和register.html
login.html:

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

register.html:

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

我怀疑是UserLoginRegister这个类写错了
而且导入了thymeleaf html没标不知道是不是主要原因
都是用的post这个检查过了
帮我看看呗

  • 写回答

5条回答 默认 最新

  • 正函数- 2022-08-19 12:58
    关注

    hello 很好解决

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 已采纳回答 8月19日
  • 创建了问题 8月19日

悬赏问题

  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并