首先写前端展示页面,在web的目录下创建一个前端页面register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>成都文理注册页面</title>
</head>
<body>
<center>
<form action="http://localhost:8080/MyWebDemo002_war_exploded/register" method="get">
<div style="background-color: gray;width: 60%;height: 400px">
<p>
用户名:<input type="text" name="username" value="">
</p>
<p>
密码:<input type="password" name="password" value="">
</p>
<p>
男:<input type="radio" name="sex" value="man" checked="checked">
女:<input type="radio" name="sex" value="woman">
</p>
<p>
唱歌:<input type="checkbox" name="hobbit" value="music">
运动:<input type="checkbox" name="hobbit" value="sports">
游戏:<input type="checkbox" name="hobbit" value="game">
</p>
<p>
<input type="submit" value="注册">
</p>
<p>
<input type="hidden" name="button" value="add">
</p>
</div>
</form>
</div>
</center>
</body>
</html>
在java的com.openlab包下创建一个JdbcConnectionUtils类,用jdbc连接数据库,写一个获取连接和一个关闭数据库连接的方法
package com.openlab;
import java.sql.*;
public class JdbcConnctionUtils {
String url = "jdbc:mysql://localhost:3306/student?serverTimezone=Asia/Shanghai";
String user = "root";
String password = "root";
String driverClassName = "com.mysql.cj.jdbc.Driver";//com.mysql.cj.jdbc.Driver 8.0的驱动
Connection conn = null;
public Connection getConnection() {
try {
Class.forName(driverClassName);
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
//关闭数据库连接
public void closeAll(Connection _conn, Statement _st, ResultSet _rs) {
if (_rs != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (_st != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭conn
if (_conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
写一个RegisterServlet类用来继承HttpServlet类,使用doGet方法来注册页面需要提交的值,对数据库进行插入操作,添加用户
package com.openlab;
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.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Enumeration;
@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//接着注册页面提交的值
String username = req.getParameter("username");
String password =req.getParameter("password");
System.out.println(username);
System.out.println(password);
String sex=req.getParameter("sex");
System.out.println(sex);
String hidden=req.getParameter("button");
System.out.println(hidden);
if (hidden.equals("add")){
System.out.println("调用数据库添加的操作。。。");
}else {
System.out.println("调用数据库修改操作的代码");
}
//获取多个爱好
String hobbits[] = req.getParameterValues("hobbit");
String love = "";
for (String hobbit:hobbits ){
System.out.println("爱好有:"+hobbit);
love+=hobbit+";";
}
//获取页面请求的多个参数的值
Enumeration<String> enumeration = req.getHeaderNames();
while (enumeration.hasMoreElements()){
System.out.println(enumeration.nextElement());;
}
//页面输出
resp.setContentType("text/html;charset=UTF-8");
PrintWriter writer = resp.getWriter();
writer.println(username);
//保存到数据库
JdbcConnctionUtils jdbc=new JdbcConnctionUtils();
//sql语句
String sql = "insert into stu(username,password,sex,hobbit) values(?,?,?,?)";
//获取数据库链接
Connection conn = jdbc.getConnection();
PreparedStatement pst= null;
try {
pst = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
//pst
try {
pst.setString(1,username);
pst.setString(2,password);
pst.setString(3,sex);
pst.setString(4,love);
int rows = pst.executeUpdate();
if (rows>0){
writer.println("添加成功");
}else {
writer.println("添加失败");
}
} catch (SQLException e) {
e.printStackTrace();
}
//关闭结果集
jdbc.closeAll(conn,pst,null);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//处理post方式提交表单乱码数据
req.setCharacterEncoding("Utf-8");
doPost(req,resp);
}
}
数据库添加用户完成