JSP与Servlet实现用户注册(包含数据库)

摘要:
用户注册模块是网站中经常用到的,之前我在一个QT项目中写过用户注册,用数据库Qsqlite实现的。通过用户注册可对网站的客户进行管理,如用户身份认证、用户网站的操作权限等

Jsp与Servlet实现用户注册:

1 创建数据库表tb_user:
在这里插入图片描述
2 创建名为RegServlet的类,用于处理用户注册请求,这是一个Servlet对象,在此类中重写init()和doPost()方法,在初始化的方法中实现数据库的连接:
RegServlet类:

package com.mirgrisoft;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RegServlet extends HttpServlet{
	private Connection conn;
	public void init() throws ServletException{
		super.init();
		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url="jdbc:mysql://localhost:3306/hhstu?serverTimezone=Asia/Shanghai";
			conn=DriverManager.getConnection(url,"root","333");
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
	public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
		//设置request与response的编码
		response.setContentType("text/html");
		request.setCharacterEncoding("GBK");
		response.setCharacterEncoding("GBK");
		//获取表单中的属性值
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		String sex=request.getParameter("sex");
		String question=request.getParameter("question");
		String answer=request.getParameter("answer");
		String email=request.getParameter("email");
		//判断
		if(conn!=null) {
			try {
				String sql="insert into tb_user(username,password,sex,question,answer,email)"+"value(?,?,?,?,?,?)";
				PreparedStatement ps=conn.prepareStatement(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 out=response.getWriter();
				out.print("<h1 aling='center'>");
				out.print(username+"注册成功");
				out.print("</h1>");
				out.flush();
				out.close();			
			}catch (Exception e) {
				e.printStackTrace();
			}
		}else {
			response.sendError(500,"数据库连接错误");
		}
	}
}

3 配置web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>RegServlet</servlet-name>
    <servlet-class>com.mirgrisoft.RegServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>RegServlet</servlet-name>
    <url-pattern>/RegServlet</url-pattern>
  </servlet-mapping>
</web-app>

4 创建index.jsp文件,用于放置注册的表单:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="RegServlet" method="post" onsubmit="return reg(this);">
   <table align="center" border="0" width="500">
     <tr>
        <td align="right" width="30%">用户名:</td>
        <td><input type="text" name="username" class="box"></td>
     </tr>
     <tr>
        <td align="right">密码:</td>
        <td><input name="password" type="text" class="box"></td>
     </tr>
     <tr>
        <td align="right">确认密码:</td>
        <td><input type="password" name="repassword" class="box"></td>
     </tr>
     <tr>
        <td align="right">性别:</td>
        <td>
           <input type="radio" name="sex" value="男" checked="checked"><input type="radio" name="sex" value="女"></td>
     </tr>
     <tr>
        <td align="right">密码找回问题:</td>
        <td><input type="text" name="question" class="box"></td>
     </tr>
      <tr>
        <td align="right">密码找回答案:</td>
        <td><input type="text" name="answer" class="box"></td>
     </tr>
      <tr>
        <td align="right">邮箱:</td>
        <td><input type="text" name="email" class="box"></td>
     </tr>
      <tr>
         <td colspan="2" align="center" height="40">
            <input type="submit" value="注册">
            <input type="reset" value="重置">
         </td>     
      </tr> 
   </table>
</form>
</body>
</html>

运行如下:
在这里插入图片描述

在这里插入图片描述

数据库表也已经更新:
在这里插入图片描述


版权声明:本文为weixin_48657573原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。