刚开始学SpringBoot开发的登陆注册(勿喷,刚开始学)报错500,不知道咋回事
用的是MySQL数据库,数据库名字叫web
有2个包,分别是:controller和mysql
controller下面有LoginController一个类
mysql是数据库操作类,mysql下面有UserLoginRegister一个类
项目结构:
进LoginIn和RegisterIn的时候就会前端报错500
后端报错:
这几行代码,控制台报错:
登录:
注册:
代码:
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这个检查过了
帮我看看呗