class CNNdetector(nn.Module):
时间: 2023-10-23 22:11:53 浏览: 92
1. 创建数据库和表
首先,我们需要创建一个数据库和一张表来存储用户注册信息。假设我们的数据库名为`userdb`,表名为`user`,包含以下四个字段:
```
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL
```
其中,`id`为主键,自增长,`username`、`password`和`email`分别为用户名、密码和邮箱,均不能为空。
2. 创建注册页面
我们可以创建一个名为`register.jsp`的页面,用于用户注册。页面包含一个表单,用户可以输入自己的用户名、密码和邮箱。表单提交后,我们需要将用户输入的信息保存到数据库中。
代码如下:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户注册</title>
</head>
<body>
<h1>用户注册</h1>
<form action="register" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<br>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required>
<br>
<input type="submit" value="注册">
</form>
</body>
</html>
```
3. 创建注册处理程序
我们需要创建一个名为`RegisterServlet`的Java Servlet来处理注册请求。当用户提交注册表单时,`RegisterServlet`会读取表单中的用户名、密码和邮箱,然后将它们插入到数据库中。
代码如下:
```
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 读取表单中的数据
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
// 将用户输入的数据插入到数据库中
Connection conn = null;
PreparedStatement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb?useSSL=false", "root", "password");
String sql = "INSERT INTO user (username, password, email) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
stmt.setString(3, email);
stmt.executeUpdate();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 注册成功,跳转到登录页面
response.sendRedirect("login.jsp");
}
}
```
在`doPost`方法中,我们首先读取表单中的数据,然后将它们插入到数据库中。插入操作完成后,我们使用`sendRedirect`方法将用户重定向到登录页面。
4. 创建登录页面
我们可以创建一个名为`login.jsp`的页面,用于用户登录。页面包含一个表单,用户可以输入自己的用户名和密码。表单提交后,我们需要验证用户输入的用户名和密码是否正确。
代码如下:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<h1>用户登录</h1>
<form action="login" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" required>
<br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required>
<br>
<input type="submit" value="登录">
</form>
</body>
</html>
```
5. 创建登录处理程序
我们需要创建一个名为`LoginServlet`的Java Servlet来处理登录请求。当用户提交登录表单时,`LoginServlet`会读取表单中的用户名和密码,然后查询数据库中是否存在该用户。
代码如下:
```
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 读取表单中的数据
String username = request.getParameter("username");
String password = request.getParameter("password");
// 查询数据库中是否存在该用户
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb?useSSL=false", "root", "password");
String sql = "SELECT * FROM user WHERE username = ? AND password = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, username);
stmt.setString(2, password);
rs = stmt.executeQuery();
if (rs.next()) {
// 登录成功,将用户信息保存到Session中
HttpSession session = request.getSession();
session.setAttribute("username", username);
session.setAttribute("password", password);
// 跳转到首页
response.sendRedirect("index.jsp");
} else {
// 登录失败,返回登录页面
response.sendRedirect("login.jsp");
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
在`doPost`方法中,我们首先读取表单中的数据,然后查询数据库中是否存在该用户。如果存在,则将用户信息保存到Session中,然后跳转到首页;否则,返回登录页面。
6. 首页
我们可以创建一个名为`index.jsp`的页面,作为登录成功后的首页。页面中可以显示用户的用户名和密码。
代码如下:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>欢迎您,<%=session.getAttribute("username")%></h1>
<p>您的密码是:<%=session.getAttribute("password")%></p>
</body>
</html>
```
在页面中,我们使用`session.getAttribute`方法来读取Session中保存的用户信息。
7. 部署和运行
最后,我们需要将上述代码部署到Servlet容器中,并启动容器。在浏览器中访问`http://localhost:8080/register.jsp`,即可进入注册页面。填写表单并提交后,即可完成用户注册。注册成功后,页面会自动跳转到登录页面。在登录页面中输入用户名和密码,即可登录系统,并进入首页。在首页中,可以看到用户的用户名和密码。
阅读全文