使用Mybatis进行注册

使用Mybatis进行注册

内容:
1.注册页面 reg.jsp
2.UsersServelt处理注册和登录
3.工具类
4.三层开发编写UsersService类

                                                爱猫狗的小郝
                                                          2020/04/30

1.注册页面 reg.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>登录</title>
  </head>
  <body>
  <h1>首页/注册页面</h1>
  <form action="/webAC_war_exploded/user" method="post">
    <input type="hidden" name="op" value="reg">
     <table>
       <tr>
         <td>用户名</td>
         <td><input name="nickname" type="text"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;${nickname_error}</span></td>
       </tr>
       <tr>
         <td>真实姓名</td>
         <td><input name="realname" type="text"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;${realname_error}</span></td>
       </tr>
       <tr>
         <td>密码</td>
         <td><input name="pwd" type="password"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;${pwd_error}</span></td>
       </tr>
       <tr>
         <td>确认密码</td>
         <td><input name="repwd" type="password"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;${repwd_error}</span></td>
       </tr>
       <tr>
         <td>手机号</td>
         <td><input name="phone" type="text"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;${phone_error}</span></td>
       </tr>
       <tr>
         <td>邮箱</td>
         <td><input name="email" type="text"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;${email_error}</span></td>
       </tr>
       <tr>
         <td>地址</td>
         <td><input name="address" type="text"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;</span></td>
       </tr>
       <tr>
         <td>身份证号</td>
         <td><input name="realid" type="text"></td>
         <td><span style="color: red">&nbsp;&nbsp;&nbsp;</span></td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td><input value="注册" type="submit"></td>
         <td>&nbsp;</td>
       </tr>
     </table>
  </form>
  </body>
</html>

2.UsersServelt处理注册和登录

package hsy.cool.web;

import hsy.cool.bean.Users;
import hsy.cool.dao.UsersMapper;
import hsy.cool.service.UsersService;
import hsy.cool.util.MybatisUtils;
import hsy.cool.util.StringUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

@WebServlet(urlPatterns = "/user",name = "UsersServelt")
public class UsersServelt extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //获得请求参数
        String op = req.getParameter("op");
        if("login".equals(op)){
            login(req,resp);
        }else if("reg".equals(op)){
            reg(req,resp);
        }else {
            throw new ServletException("朋友,你想法很多啊~!");
        }
    }


    /**
     * 登录校验
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String name=req.getParameter("account");
        String pwd=req.getParameter("pwd");
        UsersService usersService=new UsersService();
        Users user = usersService.login(name, pwd);
        if(user!=null){
            resp.sendRedirect("/webAC_war_exploded/index.jsp");
        }else {
            resp.sendRedirect("/webAC_war_exploded/login.jsp");
        }
    }

    /**
     * 注册校验
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */
    private void reg(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String nickname=StringUtil.requiredString("nickname", "用户名", req);
        String realname=StringUtil.requiredString("realname", "真实姓名", req);
        String pwd=StringUtil.requiredString("pwd", "密码", req);
        String repwd=StringUtil.requiredString("repwd", "确认密码", req);
        String phone=StringUtil.requiredString("phone", "手机号", req);
        String email=StringUtil.requiredString("email", "邮箱", req);
        String address=req.getParameter("address");
        String realid=req.getParameter("realid");
        if(nickname==null||
                realname==null||
                pwd==null||
                repwd==null||
                phone==null||
                email==null||!StringUtil.nameCompare("pwd","repwd",req)){
             //校验失败
            req.getRequestDispatcher("/reg.jsp").forward(req,resp);
            return;
        }
        //检验成功
        //注册
        Users user=new Users(nickname,realname,pwd,phone,email,address,new Date(),1,realid);
        //三层开发
        UsersService usersService=new UsersService();
        usersService.reg(user);
        req.getRequestDispatcher("/index.jsp").forward(req,resp);

    }



}

3.工具类

package hsy.cool.util;

import javax.servlet.http.HttpServletRequest;

public class StringUtil {
    /**
     *  检验请求参数是否填写
     * @param name  表单请求参数name
     * @param showName 如果失败,失败信息汉字
     * @param req   请求对象
     * @return
     */
    public static String requiredString(String name, String showName, HttpServletRequest req) {
        String value=req.getParameter(name);
        if(value==null||value.trim().length()==0){
            req.setAttribute(name+"_error","必须录入"+showName+"!!!");
            return null;
        }
        return value.trim();
    }

    /**
     * 2次密码校验
     * @param pwd
     * @param repwd
     * @param req
     * @return
     */
    public static boolean nameCompare(String pwd, String repwd, HttpServletRequest req) {

        String pwdValue=req.getParameter(pwd);
        String repwdValue=req.getParameter(repwd);
        if(!pwdValue.equals(repwdValue)){
            req.setAttribute(pwd+"_error","两次输入的密码不一致!");
            req.setAttribute(repwd+"_error","两次输入的密码不一致!");
            return false;
        }
        return true;
    }
}

4.三层开发编写UsersService类

三层开发
持久层(Dao)、业务层(Service)、表示层(MVC)
目前我们所讲的:
持久层:Bean+Dao,增删改查
表示层:JSP==>视图(v) Servelt==>控制(c) 业务层==》模型 M  MVC
业务层:自己编写,处理业务逻辑的,控制事务
UsersService类
package hsy.cool.service;

import hsy.cool.bean.Users;
import hsy.cool.dao.UsersMapper;
import hsy.cool.util.MybatisUtils;

public class UsersService {

    /**
     * 登录业务方法
     * @param account
     * @param pwd
     */
    public Users login(String account, String pwd) {
        Users user=MybatisUtils.getMapper(UsersMapper.class).findByName(account);
        if(user!=null&&user.getPwd().equals(pwd)){
            return user;
        }else {
            return null;
        }
    }

    /**
     * 注册业务方法
     * @param user
     */
    public void reg(Users user) {
        //调用Dao层完成数据操作
        UsersMapper dao = MybatisUtils.getMapper(UsersMapper.class);
        dao.add(user);
        //提交事务
        MybatisUtils.commit();
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章