各个参数的非空校验,一个request的生命周期,正则表达式验证邮箱格式是否正确,c3p0数据库连接池进行数据的存储,servlet技术 package cn.tedu.web;import java.io.IOException;import java.sql.Connecti
package cn.tedu.web; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.mchange.v2.c3p0.ComboPooledDataSource; public class RegistServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //0.解决乱码 //>>请求参数乱码 request.setCharacterEncoding("utf-8"); //>>响应中文乱码 response.setContentType("text/html;charset=utf-8"); //1.接受表单数据 String username = request.getParameter("username"); String password = request.getParameter("password"); String password2 = request.getParameter("password2"); String nickname = request.getParameter("nickname"); String email = request.getParameter("email"); String valistr = request.getParameter("valistr"); //2.校验数据 //>非空校验 if(username == null || "".equals(username)){ request.setAttribute("msg", "用户名不能为空"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } if(password == null || "".equals(password)){ request.setAttribute("msg", "密码不能为空"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } if(password2 == null || "".equals(password2)){ request.setAttribute("msg", "确认密码不能为空"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } if(nickname == null || "".equals(nickname)){ request.setAttribute("msg", "昵称不能为空"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } if(email == null || "".equals(email)){ request.setAttribute("msg", "邮箱不能为空"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } if(valistr == null || "".equals(valistr)){ request.setAttribute("msg", "验证码不能为空"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } //>两次密码是否一致校验 if(!password.equals(password2)){ request.setAttribute("msg", "两次密码不一致"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } //>邮箱格式 //abc123@163.com if(!email.matches("^\\w+@\\w+(\\.\\w+)+$")){ request.setAttribute("msg", "邮箱格式不正确"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } //>验证码是否正确校验 //TODO 验证码是否正确校验 //3.注册用户 -- 把数据保存到数据库 Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; ComboPooledDataSource pool = new ComboPooledDataSource(); try { conn = pool.getConnection(); //>用户名是否存在校验 ps = conn.prepareStatement("select * from user where username=?"); ps.setString(1, username); rs = ps.executeQuery(); if(rs.next()){ request.setAttribute("msg", "用户名已存在"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } ps = conn.prepareStatement("insert into user values(null, ? , ? ,? , ?)"); ps.setString(1, username); ps.setString(2, password); ps.setString(3, nickname); ps.setString(4, email); int rows = ps.executeUpdate(); if(rows<=0){ request.setAttribute("msg", "对不起注册失败"); request.getRequestDispatcher("/regist.jsp").forward(request, response); return; } //4.给出提示 response.getWriter().write("恭喜您注册成功, 3秒之后跳转到首页....
"); response.setHeader("refresh", "3;url="+ request.getContextPath() +"/index.jsp"); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); }finally{ if(rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ rs = null; } } if(ps != null){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ ps = null; } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ conn = null; } } } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }