JSP+Servlet实现用户注册

1. 创建数据表,用于存储用户的注册信息

create table tb_user(
 id int(4) primary key auto_increment,
 username varcahr(50),
 password varchar(50),
 sex varchar(50),
 question varchar(50),
 answer varchar(50),
 email varchar(50));
JSP+Servlet实现用户注册_第1张图片
存放用户注册信息的数据表

2.创建RegServlet类,用于处理用户注册的请求,此类中重写init() ,doPost()方法

package servlet;

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 java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * Created by pc on 17-5-10.
 */
@WebServlet(name = "RegServlet1", urlPatterns = "/RegServlet1")
public class RegServlet1 extends HttpServlet {
    //数据库连接Connection
    private java.sql.Connection conn;

    //初始化方法

    public void init() throws ServletException {
        super.init();
        try {
            //加载数据库驱动
            Class.forName("com.mysql.jdbc.Driver");
            //连接数据库的url
            String url = "jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncoding=UTF-8";
            //获取数据库连接
            conn =  DriverManager.getConnection(url, "root", "root");
            if (conn != null) {
                System.out.println("数据库链接成功!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * init()方法是Servlet的初始化方法,此方法只运行一次,实例中在此方法中加载数据库驱动,并获取数据库
     * 连接对象Connection,在获取数据库连接对象之后,通过doPost()方法处理用户注册请求,
     */

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置request response编码
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        //获取表单中的属性值
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String sex = req.getParameter("sex");
        String question = req.getParameter("question");
        String answer = req.getParameter("answer");
        String email = req.getParameter("email");
        //判断数据库是否连接成功
        if (conn != null) {
            try {
                //插入注册信息的sql语句
                String sql = "insert into tb_user(username,password,sex,question,answer,email)" + "values(?,?,?,?,?,?)";
                //创建PreparedStatement对象
                PreparedStatement ps = conn.prepareStatement(sql);
                //对sql语句中的参数动态赋值
                ps.setString(1, username);
                ps.setString(2, password);
                ps.setString(3, sex);
                ps.setString(4, question);
                ps.setString(5, answer);
                ps.setString(6, email);
                //执行更新操作
                ps.executeUpdate();
                //获取PrintWriter对象
                PrintWriter out = resp.getWriter();
                //输出注册信息结果
                out.print("

"); out.flush(); out.close(); } catch (SQLException e) { e.printStackTrace(); } } else { //发送数据库连接错误信息 resp.sendError(500, "数据库连接错误!"); } } }

3. 创建jsp页面,实现用户注册表单

<%--
  Created by IntelliJ IDEA.
  User: pc
  Date: 17-5-10
  Time: 下午1:46
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    注册界面


用户名:
密码:
确认密码:
性别:
密码找回问题:
密码找回答案:
邮箱:

4. 效果截图

JSP+Servlet实现用户注册_第2张图片
填写注册信息
JSP+Servlet实现用户注册_第3张图片
数据库成功保存用户的数据

你可能感兴趣的:(JSP+Servlet实现用户注册)