1.新建RegisterServlet
和登陆类相似,RegisterServlet中存在doget和dopost方法,我们在doPost方法中,调用doGet方法
doGet(request,response);
2.在doGet方法中,和LoginServlet同样的方法获得用户在前端提交的用户名和密码
String name = request.getParameter("name"); //定义一个变量获取用户输入的name
String password = request.getParameter("password");
System.out.println(name);
System.out.println(password);
3.完善dao包中的UserDaoImpl中的register方法,方便我们直接调用这个方法
定义一个sql语句去添加记录
String sql = "insert into t_user(name,password) values(?,?)";
用PrepareStatement语句去执行,可能会产生异常,添加一个try-catch语句
ps的第一个参数赋值为name,第二个参数赋值为password
然后调用ps.excuteUpdate方法,这个方法的返回值有两种情况
(1)返回受sql语句影响的行数
(2)数据库受影响的行数为0时,返回0
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,name);
ps.setString(2,password);
count = ps.executeUpdate();
DBUtil.release(null,null,ps,conn);
} catch (SQLException e) {
e.printStackTrace();
}
定义一个count,数据库受影响的情况
int count = 0;
执行玩sql语句后,记得调用DBUtil.release()方法释放资源
最后,给返回值一个布尔值
if(count==0){
return false;
}else{
return true;
}
4.回到我们的RegisterServlet类中
首先调用UserDao中的实现方法
UserDao dao = new UserDaoImpl();
再定义一个success作为判断是否注册成功的变量
boolean success = dao.register(name,password);
用一个判断语句,来确定success后决定网页的变化
if(success){
response.sendRedirect("/login.jsp");
}else{
request.getRequestDispatcher("/error.jsp").forward(request,response);
}
如果注册成功,success不为0,跳转到login.jsp界面
如果注册不成功,做一个请求转发,到error.jsp界面
完成后,重启tomcat测试,网页注册无问题,查看数据库是否存在注册记录。