各个参数的非空校验,一个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);
}
}
