使用Mybatis进行注册
程序员文章站
2022-07-12 13:51:02
...
使用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("朋友,你想法很多啊~!");
}
}
/**
* 登录校验
* @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();
}
}
推荐阅读
-
超级自动注册申请王注册下载使用流程
-
python中文分词,使用结巴分词对python进行分词(实例讲解)
-
网页版网易邮箱6.0如何使用易信进行聊天?
-
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
-
zf框架的registry(注册表)使用示例
-
记一次在node.js中使用crypto的createCipheriv方法进行加密时所遇到的坑
-
Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题
-
《ServerSuperIO Designer IDE使用教程》-2.与硬件网关数据交互,并进行数据级联转发,直到云端。发布:v4.2.1版本
-
python使用sorted函数对列表进行排序的方法
-
使用numpy和PIL进行简单的图像处理方法