使用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"> ${nickname_error}</span></td>
</tr>
<tr>
<td>真實姓名</td>
<td><input name="realname" type="text"></td>
<td><span style="color: red"> ${realname_error}</span></td>
</tr>
<tr>
<td>密碼</td>
<td><input name="pwd" type="password"></td>
<td><span style="color: red"> ${pwd_error}</span></td>
</tr>
<tr>
<td>確認密碼</td>
<td><input name="repwd" type="password"></td>
<td><span style="color: red"> ${repwd_error}</span></td>
</tr>
<tr>
<td>手機號</td>
<td><input name="phone" type="text"></td>
<td><span style="color: red"> ${phone_error}</span></td>
</tr>
<tr>
<td>郵箱</td>
<td><input name="email" type="text"></td>
<td><span style="color: red"> ${email_error}</span></td>
</tr>
<tr>
<td>地址</td>
<td><input name="address" type="text"></td>
<td><span style="color: red"> </span></td>
</tr>
<tr>
<td>身份證號</td>
<td><input name="realid" type="text"></td>
<td><span style="color: red"> </span></td>
</tr>
<tr>
<td> </td>
<td><input value="註冊" type="submit"></td>
<td> </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("朋友,你想法很多啊~!");
}
}
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");
}
}
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 {
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();
}
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 {
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;
}
}
public void reg(Users user) {
UsersMapper dao = MybatisUtils.getMapper(UsersMapper.class);
dao.add(user);
MybatisUtils.commit();
}
}