|
|
|
@ -9,56 +9,56 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
|
|
@WebServlet("/DeptAddStuServlet")
|
|
|
|
|
public class DeptAddStuServlet extends HttpServlet {
|
|
|
|
|
@WebServlet("/DeptAddStuServlet")//@WebServlet("/DeptAddStuServlet"):这是一个 Servlet 注解,表示这个类处理访问路径为 /DeptAddStuServlet 的 HTTP 请求。
|
|
|
|
|
public class DeptAddStuServlet extends HttpServlet { //DeptAddStuServlet 继承了 HttpServlet 类,是一个处理 HTTP 请求的 Servlet 类。
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Override//doGet 方法是处理 GET 请求的入口。由于 Web 表单通常使用 GET 或 POST 提交数据,因此我们在这里处理来自客户端的 GET 请求。
|
|
|
|
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
|
|
req.setCharacterEncoding("utf-8");
|
|
|
|
|
req.setCharacterEncoding("utf-8"); //设置请求和响应的字符编码为 UTF-8,确保处理过程中不会出现中文乱码问题。
|
|
|
|
|
resp.setCharacterEncoding("utf-8");
|
|
|
|
|
resp.setContentType("text/html;charset=utf-8");
|
|
|
|
|
resp.setContentType("text/html;charset=utf-8");//设置响应内容类型为 HTML,并指定字符编码为 UTF-8。
|
|
|
|
|
|
|
|
|
|
//获取表单请求的参数
|
|
|
|
|
String sno = req.getParameter("sno");
|
|
|
|
|
String sname = req.getParameter("sname");
|
|
|
|
|
String ssex = req.getParameter("ssex");
|
|
|
|
|
String sage = req.getParameter("sage");
|
|
|
|
|
String specialty = req.getParameter("specialty");
|
|
|
|
|
String sclass = req.getParameter("sclass");
|
|
|
|
|
String sdept = req.getParameter("sdept");
|
|
|
|
|
String sphone = req.getParameter("sphone");
|
|
|
|
|
String spsw = req.getParameter("spsw");
|
|
|
|
|
//req.getParameter("parameterName") 用来获取来自表单提交的参数值。每个 getParameter 调用会返回一个字符串,表示对应表单字段的值。
|
|
|
|
|
String sno = req.getParameter("sno");//学号
|
|
|
|
|
String sname = req.getParameter("sname");//姓名
|
|
|
|
|
String ssex = req.getParameter("ssex");//性别
|
|
|
|
|
String sage = req.getParameter("sage");//年龄
|
|
|
|
|
String specialty = req.getParameter("specialty");//学生专业
|
|
|
|
|
String sclass = req.getParameter("sclass");//学生班级
|
|
|
|
|
String sdept = req.getParameter("sdept");//学生所属部门
|
|
|
|
|
String sphone = req.getParameter("sphone");//学生电话
|
|
|
|
|
String spsw = req.getParameter("spsw");//学生密码
|
|
|
|
|
|
|
|
|
|
//数据类型转换
|
|
|
|
|
int sage1 = Integer.parseInt(sage);
|
|
|
|
|
|
|
|
|
|
//将学生的年龄 sage(字符串类型)转换为 int 类型。这里使用 Integer.parseInt() 方法进行类型转换。
|
|
|
|
|
String sql = null;
|
|
|
|
|
|
|
|
|
|
System.out.println("shgshgh");
|
|
|
|
|
|
|
|
|
|
//查询是否存在此人
|
|
|
|
|
sql = "select count(*) as num from student where sno = ?";
|
|
|
|
|
Object[] objects = {sno};
|
|
|
|
|
int count = DeptAdminDao.findTotalCount(sql, objects);
|
|
|
|
|
Object[] objects = {sno};//构造一个 SQL 查询语句,检查数据库中是否已经存在学号为 sno 的学生。
|
|
|
|
|
int count = DeptAdminDao.findTotalCount(sql, objects);//DeptAdminDao.findTotalCount() 是自定义的数据库操作方法,用于执行 SQL 查询并返回符合条件的记录数。返回值 count 为查询结果,表示匹配的学生数量。
|
|
|
|
|
|
|
|
|
|
if (count == 0){//无则操作
|
|
|
|
|
if (count == 0){//如果查询结果 count 为 0,说明没有找到该学号的学生,学生信息可以插入数据库。
|
|
|
|
|
sql = "insert into student values(?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
|
|
|
|
Object[] objects1 = {sno, sname, ssex, sage1, sclass, specialty, sdept, sphone, spsw};
|
|
|
|
|
|
|
|
|
|
//构造一个 SQL 插入语句,将学生信息插入 student 表
|
|
|
|
|
int num = DeptAdminDao.executeUpdate(sql, objects1);
|
|
|
|
|
|
|
|
|
|
System.out.println(num);
|
|
|
|
|
//DeptAdminDao.executeUpdate() 方法执行插入操作,并返回受影响的行数(即成功插入的记录数)。此时 num 表示执行的结果。
|
|
|
|
|
System.out.println(num);//在控制台打印 num,用来调试输出插入操作是否成功。通常在开发阶段,使用 System.out.println() 打印日志。
|
|
|
|
|
|
|
|
|
|
// req.getRequestDispatcher("/DeptQueryStuByPageServlet?currentPage=1&rows=8").forward(req, resp);
|
|
|
|
|
|
|
|
|
|
req.getRequestDispatcher("/DeptQueryStuByPageServlet?currentPage=1&rows=7&sname=&sclass=&specialty=").forward(req, resp);
|
|
|
|
|
//如果学生成功插入数据库,跳转到另一个 Servlet(DeptQueryStuByPageServlet),用于分页查询学生信息。
|
|
|
|
|
req.getRequestDispatcher("/DeptQueryStuByPageServlet?currentPage=1&rows=7&sname=&sclass=&specialty=").forward(req, resp);//使用 req.getRequestDispatcher().forward() 方法将请求转发到指定的 Servlet,并携带一些查询参数(例如:当前页码 currentPage=1 和每页显示的学生数 rows=7)。
|
|
|
|
|
}else {
|
|
|
|
|
req.getRequestDispatcher("/view/alluse/existdataofadd.jsp").forward(req, resp);
|
|
|
|
|
req.getRequestDispatcher("/view/alluse/existdataofadd.jsp").forward(req, resp);//如果数据库中已经存在该学号的学生,转发到一个名为 existdataofadd.jsp 的页面,通常用于提示用户该学生已经存在,无法再次添加。
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
|
|
doGet(req, resp);
|
|
|
|
|
doGet(req, resp);//doPost 方法处理 POST 请求。这里通过调用 doGet(req, resp),使得 POST 请求和 GET 请求的处理逻辑一致,避免重复代码。
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|