package nuc.edu.zhuce;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
// 定义一个名为RegServlet的类,继承自HttpServlet,用于处理用户注册请求
public class RegServlet extends HttpServlet {
// 重写doGet方法,用于处理HTTP GET请求
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
// 重写doPost方法,用于处理HTTP POST请求
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置响应内容类型
resp.setContentType("text/html;charset=UTF-8");
// 从请求中获取用户提交的参数,并创建一个新的User对象
User user = new User(
req.getParameter("userid"), // 获取用户ID参数
req.getParameter("uname"), // 获取用户名参数
req.getParameter("upassword"), // 获取用户密码参数
req.getParameter("usex"), // 获取用户性别参数
req.getParameter("uemail"), // 获取用户邮箱参数
req.getParameter("userdate") // 获取用户日期参数
);
// 创建UserDAO对象,用于与数据库交互
UserDAO userDAO = new UserDAO();
// 调用UserDAO的registerUser方法尝试注册用户,返回注册结果
boolean isRegistered = userDAO.registerUser(user);
// 根据注册结果进行页面跳转
if (isRegistered) {
// 如果注册成功,重定向到成功页面
resp.sendRedirect("/Suc.html");
} else {
// 如果注册失败,重定向到失败页面
resp.sendRedirect("/Fal.html");
}
}
}
```java
package nuc.edu.zhuce;
public class User {
private String userid;
private String uname;
private String upassword;
private String usex;
private String uemail;
private String userdate;
public User(String userid, String uname, String upassword, String usex, String uemail, String userdate) {
this.userid = userid;
this.uname = uname;
this.upassword = upassword;
this.usex = usex;
this.uemail = uemail;
this.userdate = userdate;
}
public String getUserid() {
return userid;
}
public String getUname() {
return uname;
}
public String getUpassword() {
return upassword;
}
public String getUsex() {
return usex;
}
public String getUemail() {
return uemail;
}
public String getUserdate() {
return userdate;
}
}
```java
package nuc.edu.zhuce;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class UserDAO {
private static final String URL = "jdbc:mysql://localhost:3306/db_news2025?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "root";
public boolean registerUser(User user) {
Connection conn = null;
PreparedStatement pst = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
// Load MySQL driver
Class.forName("com.mysql.cj.jdbc.Driver");
// Get database connection
conn = DriverManager.getConnection(URL, USER, PASSWORD);
// Prepare SQL statement
String sql = "INSERT INTO t_user (userid, uname, upassword, usex, uemail, userdate) VALUES (?, ?, ?, ?, ?, ?)";
pst = conn.prepareStatement(sql);
pst.setString(1, user.getUserid());
pst.setString(2, user.getUname());
pst.setString(3, user.getUpassword());
pst.setString(4, user.getUsex());
pst.setString(5, user.getUemail());
try {
String date = sdf.format(sdf.parse(user.getUserdate()));
pst.setString(6, date);
} catch (Exception e) {
System.out.println("日期格式解析错误:" + e.getMessage());
return false;
}
// Execute SQL statement
int res = pst.executeUpdate();
// Handle result set
return res == 1;
} catch (ClassNotFoundException | SQLException e) {
System.out.println("异常:" + e.getMessage());
e.printStackTrace();
return false;
} finally {
// Close resources
try {
if (pst != null) pst.close();
if (conn != null) conn.close();
} catch (SQLException e) {
System.out.println("关闭资源失败:" + e.getMessage());
e.printStackTrace();
}
}
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>注册页面</title>
<style>
body {
text-align: center;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: flex-start;
height: 100vh;
}
.A2 {
text-align: left;
width: 50%;
margin: 20px auto;
padding: 20px;
box-sizing: border-box;
}
table {
width: 100%;
}
</style>
</head>
<body>
<div>
<h1>注册操作</h1>
<!-- 修改表单的action为 "/reg",与Java代码中的@WebServlet("/reg")一致 -->
<form class="A2" action="/proj_0234huopengzhao_exp3_war_exploded/reg" method="post">
<table border="1">
<tr>
<td colspan="2">
<p>用户注册</p>
</td>
</tr>
<tr>
<td style="height: 50px;">
<p>用户ID:</p>
</td>
<td>
<input type="text" name="userid"/> <!-- 修改name为userid -->
</td>
</tr>
<tr>
<td>
<p>用户名</p>
</td>
<td>
<input type="text" name="uname"/> <!-- 修改name为uname -->
</td>
</tr>
<tr>
<td>
<p>性别:</p>
</td>
<td>
<input type="radio" name="usex" value="male" checked>男
<input type="radio" name="usex" value="female">女
</td>
</tr>
<tr>
<td>E-mail</td>
<td>
<input type="email" name="uemail"/> <!-- 修改name为uemail -->
</td>
</tr>
<tr>
<td>
登录密码:
</td>
<td>
<input type="password" name="upassword"/> <!-- 修改name为upassword -->
</td>
</tr>
<tr>
<td>
注册日期:
</td>
<td>
<input type="date" name="userdate"/> <!-- 添加name为userdate -->
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>RegServlet</servlet-name>
<servlet-class>nuc.edu.zhuce.RegServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegServlet</servlet-name>
<url-pattern>/reg</url-pattern>
</servlet-mapping>
</web-app>
html页面可以正常打开,但提交后
请问该怎么解决