From 030466c8cb3aafa150fc45dcae9dbfc17e61219d Mon Sep 17 00:00:00 2001 From: Zhang Liguo <482370576@qq.com> Date: Sat, 8 Jul 2023 19:19:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/hellogithub/dao/AdminDao.java | 70 +++++++++++++-- src/com/hellogithub/service/AdminService.java | 6 ++ .../systemAdmin/AdminRegisterServlet.java | 88 +++++++++++++++++++ 3 files changed, 159 insertions(+), 5 deletions(-) create mode 100644 src/com/hellogithub/servlet/systemAdmin/AdminRegisterServlet.java diff --git a/src/com/hellogithub/dao/AdminDao.java b/src/com/hellogithub/dao/AdminDao.java index 72b77bf..a856c14 100644 --- a/src/com/hellogithub/dao/AdminDao.java +++ b/src/com/hellogithub/dao/AdminDao.java @@ -5,10 +5,7 @@ import com.hellogithub.entity.userEntity; import com.hellogithub.utils.JdbcUtils; import org.apache.commons.dbutils.QueryRunner; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; +import java.sql.*; public class AdminDao { public static adminEntity AdminLogin(String adminName, String password,String loginTime) { @@ -38,7 +35,9 @@ public class AdminDao { JdbcUtils.closeConnection(resultSet, preparedStatement, connection); } } - +/** + * 更新管理员登录时间 + * */ public int updateAdminLoginTime(String adminName, String loginTime){ int num; try { @@ -51,5 +50,66 @@ public class AdminDao { } return num; } + /** + * 根据用户名查询管理员 + * */ + public adminEntity findByAdminName(String adminName) { + ResultSet resultSet = null; + PreparedStatement preparedStatement = null; + Connection connection = null; + try { + connection = JdbcUtils.getConnection(); + String Sql = "select * from admin where adminName=? and isValid = 1"; + preparedStatement = connection.prepareStatement(Sql); + preparedStatement.setString(1, adminName); + resultSet = preparedStatement.executeQuery(); + if (!resultSet.next()) { // 查询不到用户数据 + return null; + } + // 将db中数据 返回给客户端 查询到数据 + Integer id = resultSet.getInt(1); + String dbUserName = resultSet.getString(2); + String dbUserPwd = resultSet.getString(3); + adminEntity adminEntity = new adminEntity(dbUserName, dbUserPwd); + return adminEntity; + } catch (Exception e) { + e.printStackTrace(); + return null; + } finally { + JdbcUtils.closeConnection(resultSet, preparedStatement, connection); + } + } + + /** + * 管理员注册 + * + * */ + public int adminRegister(String adminName,String adminPwd){ + Connection connection = null; + PreparedStatement preparedStatement = null; + try { + connection = JdbcUtils.getConnection(); + // sql语句写的操作 ----加上事务 + JdbcUtils.beginTransaction(connection); // 开启事务 + String insertSql = "INSERT INTO admin (adminId, adminName, adminPassword,isValid,loginTime) VALUES (null, ?,?,1,?);"; + preparedStatement = connection.prepareStatement(insertSql); + preparedStatement.setString(1,adminName); + preparedStatement.setString(2, adminPwd); + Date time= new java.sql.Date(new java.util.Date().getTime()); + preparedStatement.setDate(3, time); + int result = preparedStatement.executeUpdate(); + // 代码执行没有问题的情况下 则会提交数据 + JdbcUtils.commitTransaction(connection); // 提交事务 + return result; + } catch (Exception e) { + // 程序代码报错之后 是需要回滚事务 + e.printStackTrace(); + JdbcUtils.rollBackTransaction(connection);// 回滚事务 + return 0; + } finally { + JdbcUtils.closeConnection(preparedStatement, connection); + } + + } } diff --git a/src/com/hellogithub/service/AdminService.java b/src/com/hellogithub/service/AdminService.java index a09fbb9..ccb168f 100644 --- a/src/com/hellogithub/service/AdminService.java +++ b/src/com/hellogithub/service/AdminService.java @@ -17,5 +17,11 @@ public class AdminService { } } + public adminEntity findByAdminName(String adminName){ + return adminDao.findByAdminName(adminName); + } + public int adminRegister(String adminName,String pwd){ + return adminDao.adminRegister(adminName,pwd); + } } diff --git a/src/com/hellogithub/servlet/systemAdmin/AdminRegisterServlet.java b/src/com/hellogithub/servlet/systemAdmin/AdminRegisterServlet.java new file mode 100644 index 0000000..1a22824 --- /dev/null +++ b/src/com/hellogithub/servlet/systemAdmin/AdminRegisterServlet.java @@ -0,0 +1,88 @@ +package com.hellogithub.servlet.systemAdmin; + +import com.alibaba.fastjson.JSONObject; +import com.hellogithub.entity.adminEntity; +import com.hellogithub.entity.userEntity; +import com.hellogithub.service.AdminService; +import com.hellogithub.utils.RandomValidateCode; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +@WebServlet("/adminRegister") +public class AdminRegisterServlet extends HttpServlet { + AdminService adminService=new AdminService(); + @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 { + resp.setCharacterEncoding("UTF-8"); + resp.setContentType("text/html; charset=utf-8"); + // 设置响应头允许ajax跨域访问 + String curOrigin = req.getHeader("Origin"); + resp.setHeader("Access-Control-Allow-Origin", curOrigin == null ? "true" : curOrigin); + resp.setHeader("Access-Control-Allow-Credentials", "true"); + resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD"); + resp.setHeader("Access-Control-Max-Age", "3600"); + resp.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); + resp.setContentType("application/json;charset=UTF-8"); + PrintWriter writer = resp.getWriter(); + String adminName = req.getParameter("adminname"); + if (StringUtils.isEmpty(adminName)) { + setResultError("用户名称不能够是为空", writer); + return; + } + String adminPwd = req.getParameter("password"); + // 参数验证 + if (StringUtils.isEmpty(adminPwd)) { + setResultError("密码不能够是为空", writer); + return; + } + + // 管理员注册之前根据用户名称查询该管理员是否存在如果不存在的情况下才可以注册 如果存在的话就无法注册 + adminEntity adminEntity = adminService.findByAdminName(adminName); + if (adminEntity != null) { + setResultError("用户名: " + adminName + "已被注册!", writer); + return; + } + //用户数据注册 + int register = adminService.adminRegister(adminName, adminPwd); + if (register <= 0) { + // 注册失败了 //转发到错误页面 + setResultError("注册失败!", writer); + return; + } + setResultOK("注册成功!", writer); + } + + @Override + protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doDelete(req, resp); + } + public void setResult(Integer code, String msg, PrintWriter writer) { + HashMap result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } +}