Servlet+JDBC实战开发书店项目讲解第四篇:注册实现

Servlet+JDBC实战开发书店项目讲解第四篇:注册实现

在前面的几篇博客中,我们介绍了如何搭建基础的Servlet+JDBC开发环境,并实现了书店项目的数据库设计和登录功能。本篇博客将详细讲解如何实现注册功能。

步骤一:创建注册页面

首先,我们需要创建一个注册页面,用于用户输入注册信息。在项目的WebContent目录下创建一个名为register.html的文件,并添加以下内容:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
</head>
<body>
    <h1>用户注册</h1>
    <form action="register" method="post">
        <label>用户名:</label><br/>
        <input type="text" name="username"><br/>
        <label>密码:</label><br/>
        <input type="password" name="password"><br/>
        <label>确认密码:</label><br/>
        <input type="password" name="confirm_password"><br/><br/>
        <input type="submit" value="注册">
    </form>
</body>
</html>

在上面的HTML代码中,我们定义了一个表单用于用户输入注册信息。表单的action属性指定了提交数据时将数据发送到的服务器端URL。

步骤二:创建注册Servlet

接下来,我们需要创建一个Servlet来处理注册请求并将用户信息保存到数据库中。在项目的src目录下创建一个新的Java类RegisterServlet,并添加以下代码:

java 复制代码
import java.io.IOException;
import java.io.PrintWriter;
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;
    
    private static final String DB_URL = "jdbc:mysql://localhost:3306/bookstore";
    private static final String DB_USERNAME = "root";
    private static final String DB_PASSWORD = "password";
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String confirm_password = request.getParameter("confirm_password");
        
        if (password.equals(confirm_password)) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection connection = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
                String sql = "INSERT INTO users (username, password) VALUES (?, ?)";
                PreparedStatement statement = connection.prepareStatement(sql);
                statement.setString(1, username);
                statement.setString(2, password);
                statement.executeUpdate();
                statement.close();
                connection.close();
                
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                out.println("<html><body>");
                out.println("<h1>注册成功!</h1>");
                out.println("</body></html>");
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
        } else {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.println("<html><body>");
            out.println("<h1>注册失败! 密码不一致。</h1>");
            out.println("</body></html>");
        }
    }
}

在上述代码中,我们首先获取用户在注册页面中输入的用户名、密码和确认密码。然后,通过JDBC连接数据库,并将用户信息插入到数据库中。

步骤三:配置Servlet映射

最后,我们需要进行Servlet的映射,以便在用户访问注册页面和提交注册信息时能够正确调用相应的Servlet。在web.xml文件中添加以下内容:

xml 复制代码
<servlet>
    <servlet-name>RegisterServlet</servlet-name>
    <servlet-class>com.example.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>RegisterServlet</servlet-name>
    <url-pattern>/register</url-pattern>
</servlet-mapping>

总结

通过以上步骤,我们成功实现了书店项目的注册功能。现在,用户可以打开注册页面,输入用户名和密码,然后点击注册按钮进行注册。

相关推荐
落落落sss1 小时前
sharding-jdbc分库分表
android·java·开发语言·数据库·servlet·oracle
ChinaRainbowSea7 小时前
十三,Spring Boot 中注入 Servlet,Filter,Listener
java·spring boot·spring·servlet·web
前端小马9 小时前
解决IDEA出现:java: 程序包javax.servlet不存在的问题
java·servlet·intellij-idea
寻爱的希斯克利夫1 天前
tomcat 配置jenkins_home 目录
servlet·tomcat·jenkins
wxin_VXbishe3 天前
springboot瑜伽课约课小程序-计算机毕业设计源码87936
java·c++·spring boot·python·spring·servlet·php
嘤嘤奶嘴酱3 天前
dedecms(四种webshell姿势)aspcms webshell漏洞复现
数据库·servlet
weixin_443290694 天前
10- 【JavaWeb】Tomcat、Servlet基础
java·servlet·tomcat
不修×蝙蝠4 天前
后端入门 (JQuery基础) 01
笔记·后端·servlet·html·jquery
VaporGas4 天前
Servlet入门学习笔记-Servlet技术
笔记·学习·servlet
Flying_Fish_roe5 天前
测试-Gatling 与性能测试
servlet