注册流程

html
<form action="reg" method="post">
用户名:<input type="text" name="username"><br/>
密码:<input type="text" name="password"><br/>
确认密码:<input type="text" name="password2"><br/>
<input type="submit" value="注册">
</form>
servlet
package com.zrgj.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;
import java.util.UUID;
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 com.zrgj.util.DbUtils;
@WebServlet(urlPatterns="/reg")
public class RegServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
PrintWriter out=resp.getWriter();
String username=req.getParameter("username");
String password=req.getParameter("password");
String password2=req.getParameter("password2");
//判断密码和确认密码是否一致,不一致给出提示
//如何判断2个字符串内容是否相同,如果相同返回true,不同返回false
//!表示取反,如果相同返回false,不同返回true,相当于女生说不要,其含义是“要”;
if( ! password.equals(password2) ){//所以不相同时(女生说不要),返回的是true(就是要),才执行{} 里面的部分
out.write("密码与确认密码不同,请重新输入");
return;//当前表示不再执行下面的代码
}
DbUtils s=new DbUtils();
try { //try代码块,写可能抛异常的代码
s.connect("com.mysql.jdbc.Driver"
, "jdbc:mysql://127.0.0.1:3308/scott?useSSL=false&useUnicode=true&characterEncoding=utf-8"
,"root"
,"");
} catch (ClassNotFoundException e) {//e就是抛出异常的对象(将报错的信息封装到给对象中)
// TODO Auto-generated catch block
e.printStackTrace();//将异常的详细信息打印到控制台
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//判断登录名是否重复
try{
Object[] paras=new Object[1];
paras[0]=username;
List list=s.query("select uid,username,password from user where username=?", paras);
if(list.size()>0){
out.write(username+" 已经存在,请重新输入!");
s.close();
return;
}
}catch(SQLException e){
e.printStackTrace();
}
//登录的sql
String sql="INSERT INTO user (uid,username,PASSWORD) VALUES (?,?,?)";
Object[] paras=new Object[3];
paras[0]= UUID.randomUUID() // 创建UUID的对象,此处是通过另一种方式创建的对象,静态方法
.toString()// 将对象转换成字符串
.replace("-", "");
paras[1]=username;
paras[2]=password;
try {
int i=s.update(sql, paras);//影响的行数
System.out.println("影响的行数:"+i);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
s.close();//数据库资源非常宝贵,用完之后,要及时关闭掉。否则,长时间连接数据库不断开,会导致数据库无响应,再也连不上
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.write("注册成功!");
}
}