You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.7 KiB
123 lines
3.7 KiB
package servlet.admin;
|
|
|
|
import java.io.IOException;
|
|
import java.io.PrintWriter;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.ResultSet;
|
|
import java.sql.SQLException;
|
|
|
|
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.sql.Connection;
|
|
|
|
import javabean.Base;
|
|
import javabean.Util;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONObject;
|
|
|
|
/**
|
|
* Servlet 实现类,用于处理管理员的添加操作
|
|
*
|
|
* 该 Servlet 接收管理员的姓名、账号、密码和邮箱,通过 SQL 查询验证账号是否重复,如果不重复则插入新管理员。
|
|
*/
|
|
@WebServlet("/admin/managerAdd")
|
|
public class ManagerAdd extends HttpServlet {
|
|
|
|
/**
|
|
* 处理 POST 请求,用于添加新的管理员
|
|
*
|
|
* 该方法会接收请求中的管理员姓名、账号、密码和邮箱,首先验证账号是否已存在,
|
|
* 如果不存在,则将新的管理员信息插入到数据库中。返回 JSON 格式的响应结果。
|
|
*
|
|
* @param req 请求对象
|
|
* @param resp 响应对象
|
|
* @throws ServletException 如果发生 Servlet 错误
|
|
* @throws IOException 如果发生 I/O 错误
|
|
*/
|
|
@Override
|
|
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
// 设置响应内容类型为 JSON
|
|
resp.setContentType("application/json; charset=utf8");
|
|
|
|
// 接收前端传递的参数
|
|
String name = req.getParameter("name");
|
|
String account = req.getParameter("account");
|
|
String password = req.getParameter("password");
|
|
String email = req.getParameter("email");
|
|
|
|
// SQL 语句及数据库连接准备
|
|
String sql = "";
|
|
Connection connection = null;
|
|
PreparedStatement pstmt = null;
|
|
ResultSet resultSet = null;
|
|
int result = 0;
|
|
int count = 0;
|
|
|
|
// 返回的响应数据
|
|
int code = 1;
|
|
String msg = "";
|
|
PrintWriter out = resp.getWriter();
|
|
JSONArray jsonArray = new JSONArray();
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
|
// 进行参数校验,检查不能为空的字段
|
|
if (name == null || name.equals("") || account == null || account.equals("") ||
|
|
password == null || password.equals("") || email == null || email.equals("")) {
|
|
msg = "参数不能为空";
|
|
out.print(Util.jsonResponse(code, msg, null));
|
|
} else {
|
|
try {
|
|
// 获取数据库连接
|
|
connection = (Connection) Base.getConnection();
|
|
|
|
// 验证账号是否已存在
|
|
sql = "select count(*) as count from manager where account=?";
|
|
pstmt = connection.prepareStatement(sql);
|
|
pstmt.setString(1, account);
|
|
resultSet = pstmt.executeQuery();
|
|
resultSet.next();
|
|
count = resultSet.getInt("count");
|
|
|
|
// 如果账号不存在,则插入新管理员
|
|
if (count == 0) {
|
|
sql = "insert into manager(name, account, password, email) values(?,?,?,?)";
|
|
pstmt = connection.prepareStatement(sql);
|
|
pstmt.setString(1, name);
|
|
pstmt.setString(2, account);
|
|
pstmt.setString(3, password);
|
|
pstmt.setString(4, email);
|
|
result = pstmt.executeUpdate();
|
|
}
|
|
|
|
// 根据执行结果返回响应信息
|
|
if (result == 1 && count == 0) {
|
|
code = 0;
|
|
msg = "添加成功";
|
|
} else if (count > 0) {
|
|
msg = "账号重复";
|
|
} else {
|
|
msg = "添加失败";
|
|
}
|
|
} catch (ClassNotFoundException e) {
|
|
msg = "class not found";
|
|
} catch (SQLException e) {
|
|
msg = "sql错误";
|
|
} finally {
|
|
try {
|
|
// 关闭数据库资源
|
|
Base.closeResource(connection, pstmt, resultSet);
|
|
} catch (SQLException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
// 返回响应结果
|
|
out.print(Util.jsonResponse(code, msg, null));
|
|
}
|
|
}
|
|
}
|