用户添加功能的实现:
完成HTML和JS
正则表达式
//正则表达式
// ^以什么开头 $以什么结尾
// []只能取里面的一位元素
// {m,n} 至少m个,最多n个元素
username: [/^[A-z][A-z0-9_-]{5,11}$/, '用户名必须是6到12为,以字母开头']
servlet
@WebServlet("/user/add")
public class UserAddServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
//乱码处理
req.setCharacterEncoding(StandardCharsets.UTF_8.toString());
resp.setCharacterEncoding(StandardCharsets.UTF_8.toString());
//得到前端数据
String username = req.getParameter("username");
String password = req.getParameter("password");
String sex = req.getParameter("sex");
String address = req.getParameter("address");
String birthday = req.getParameter("birthday");
String email = req.getParameter("email");
String phone = req.getParameter("phone");
String enable = req.getParameter("enable");
//String remark = req.getParameter("remark");
//对前端数据进行封装
UserVO userVO = UserVO.builder()
.name(username)
.password(password)
.sex(sex)
.address(Tool.nullToStr(address))
.birthday(Tool.nullToStr(birthday))
.enable(Integer.valueOf(enable))
.email(Tool.nullToStr(email))
.phone(Tool.nullToStr(phone))
//.remark(Tool.nullToStr(remark))
.build();
//调用服务逻辑
UserService userService = new UserServiceImpl();
//得到响应数据
ResultDTO resultDTO = userService.add(userVO);
//将数据响应给前端
resp.getWriter().println(JSONObject.toJSONString(resultDTO));
}
}
service
@Override
public ResultDTO add(UserVO userVO) {
//数据复制
BeanUtils.copyProperties(userVO, userEntity);
//判断用户是否存在
if (userDao.findByName(userEntity)==null) {//不存在
//加密
String mingwen = userEntity.getPassword();
String anwen = Md5.encoderByMd5(mingwen);
userEntity.setPassword(anwen);
return ResultDTO.getResult("success", userDao.add(userEntity));
} else {//用户已存在
return ResultDTO.getResult("error", 0);
}
}
dao
@Override
public int add(UserEntity userEntity) {
UserDao userDao = MyBatisUtils.getMapper(UserDao.class);
return userDao.add(userEntity);
}
mapper
<!--添加用户-->
<insert id="add">
INSERT INTO user (`name`, `password`, `sex`,`phone`,`email`,`address`,`birthday`,`enable`,`update_time`,`create_time`,`remark`)
VALUES (#{name}, #{password}, #{sex},#{phone},#{email},#{address},#{birthday},#{enable},now(),now(),#{remark})
</insert>