使用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();
    }

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