• 注册的一个大概流程


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

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

    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 }
     
  • 相关阅读:
    .Matrix-第三篇冲刺随笔
    .Matrix-第二篇冲刺随笔
    Alpha冲刺-第九次冲刺笔记
    Alpha冲刺-第八次冲刺笔记
    Alpha冲刺-第七次冲刺笔记
    Alpha冲刺-第六次冲刺笔记
    Alpha冲刺-第五次冲刺笔记
    Alpha冲刺-第四次冲刺笔记
    Alpha冲刺-第三次冲刺笔记
    Alpha冲刺-第二次冲刺笔记
  • 原文地址:https://www.cnblogs.com/wdh1995/p/6723745.html
Copyright © 2020-2023  润新知