Servlet实现注册功能 作者:马育民 • 2022-01-21 10:36 • 阅读:10129 # 注册流程 [![](http://65242847.gitee.io/pic/jsp/Snipaste_2022-01-21_10-35-17.png)](http://65242847.gitee.io/pic/jsp/Snipaste_2022-01-21_10-35-17.png) # html ``` 用户名: 密码: 确认密码: ``` # 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("注册成功!"); } } ``` 原文出处:http://malaoshi.top/show_1IX2dIjwnejj.html