摘要:
用户注册模块是网站中经常用到的,之前我在一个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版权协议,转载请附上原文出处链接和本声明。