注册的一个大概流程

注意:其实注册就是一个数据的插入过程

注册流程如下----------------------------------------------

1、接受参数

2、参数的合法性检验

3、检验成功后,唯一性匹配

(注册的一个用户是否被别人注册过,如果说已经被注册过了,那么我们跳转到登录页面,提示该用户已被注册)

4、不存在,执行注册

5、注册成功,跳转;注册失败,返回到注册页面重新注册

(如果说合法了,那么我们继续往下走,去根据用户名查询这个记录是否存在,查询就会涉及到JDBC)

 

代码演示如下:

 

  1 //  “/”这个不要忘记加,不然启动会报错
  2 @WebServlet(name="UserRegistrerController",urlPatterns="/userRegistrerController.do")
  3 public class UserRegistrerController extends HttpServlet {
  4 
  5     /**
  6      * 
  7      */
  8     private static final long serialVersionUID = 308527142250580706L;
  9 
 10     @Override
 11     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
 12             throws ServletException, IOException {
 13         
 14         //doget请求统一转发到dopost里面,我们统一在dopost里面完成他的一个流程
 15         doPost(req, resp);
 16         
 17     }
 18     
 19     
 20     @Override
 21     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
 22             throws ServletException, IOException {
 23         
 24         /**
 25          * 注册的一个大概流程
 26          * 1.接受参数
 27          * 2.参数的合法性校验
 28          * 3.校验成功后,唯一性匹配
 29          *         (思想:注册的一个用户名是否已经被别人注册过了,如果说,存在,那么我们跳转到登录,提示该用户已经被注册)
 30          * 4.不存在,执行注册
 31          * 5.注册成功后,跳转;不成功,返回到注册页面
 32          */
 33         
 34         //1.接受参数
 35         String userName = req.getParameter("userName");
 36         String userPwd = req.getParameter("userPwd");
 37         
 38         //2.参数的合法性校验
 39         //怎么校验呢???这里我们判断下他的用户名和密码是否为空
 40         /*
 41          * 不合法场景下注册逻辑:
 42          *         如果用户名或者密码为空的话,我们就不往下再执行了,我们给他一个提示信息
 43          */
 44         String msg = "";
 45         if (MyStringUtil.isNullOrEmpty(userName) || MyStringUtil.isNullOrEmpty(userPwd)) {
 46             msg = "用户名或密码不能为空!";
 47             req.setAttribute("msg", msg);
 48             //然后给他转发到注册页面        注册页面    register.jsp
 49             req.getRequestDispatcher("register.jsp").forward(req, resp);
 50             //然后结束
 51             return;
 52             
 53         }
 54         
 55         /*
 56          * 合法场景下:
 57          *         如果说合法了,那么我们继续往下走,去根据用户名查询这个记录是否存在,查询就会涉及到我们的JDBC
 58          * 
 59          * 合法场景下注册逻辑:
 60          *         JDBC连接步骤
 61          *             1.获取连接
 62          *             2.获取预编译块(PreparedStatement) ,传入sql
 63          *             3.设置参数
 64          *             4.查询获取结果集,resultset
 65          *             5.遍历结果集,获取值
 66          *             6.执行判断
 67          *             7.不存在记录,执行插入;存在记录,不执行插入,返回到注册页面,加入提示信息
 68          *             8.执行注册,成功跳转;不成功返回注册页面,加入提示信息
 69          *             9.关闭连接
 70          */
 71         
 72         Connection conn = null;//提升作用域
 73         PreparedStatement ps = null;//提升作用域
 74         ResultSet rs = null;//提升作用域
 75         try {
 76             //1.连接
 77             conn = MyDBUtil.getMysqlConn();
 78             
 79             //2.获取preparedstatement
 80             //统计一下
 81             String sql = "select count(1) from user where user_name=?";
 82             ps = conn.prepareStatement(sql);
 83             //3.设置他的参数,参数的索引从第一个开始
 84             ps.setString(1, userName);//把userName放进去
 85             
 86             //4.执行查询结果集
 87             rs = ps.executeQuery();
 88             
 89             //5.遍历
 90             long count = 0;
 91             while(rs.next()){
 92                 //这里我们获取他的第一列的值就可以了
 93                 count = rs.getLong(1);
 94             }
 95             
 96             if (count > 0) {//大于0说明有用户注册了
 97                 msg="该用户已经注册";
 98                 //然后转发到注册页面
 99                 req.setAttribute("msg", msg);
100                 req.getRequestDispatcher("register.jsp").forward(req, resp);
101                 return;
102             }
103             
104             /**
105              * 如果没有注册,我们继续往下走,没有注册就是插入也是添加
106              */
107             String sql2 = "insert into user(user_name,user_pwd) values(?,?)";
108             ps = conn.prepareStatement(sql2 );
109             ps.setString(1, userName);
110             ps.setString(2, userPwd);
111              
112             int result = ps.executeUpdate();
113             if (result == 0) {//等于0,说明添加失败
114                 msg="注册失败,请稍后重试";
115                 req.setAttribute("msg", msg);
116                 req.getRequestDispatcher("register.jsp").forward(req, resp);
117                 return;
118             }
119             
120             //剩下的就是注册成功
121             req.setAttribute("userName", userName);
122             req.getRequestDispatcher("success.jsp").forward(req, resp);
123             
124         } catch (SQLException e) {
125             e.printStackTrace();
126         }finally{//最后关闭连接
127             MyDBUtil.close(rs, ps, conn);
128         }
129     }
130     
131 }

 

 

 

 
posted @ 2017-04-17 17:04  程序员的世界。。。  阅读(260)  评论(0编辑  收藏  举报