diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e3c9483..11bd7fd 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,7 +6,10 @@ - + + + + + + + + + + + + + @@ -328,11 +341,12 @@ + - diff --git a/src/com/controller/alluse/LoginServlet.java b/src/com/controller/alluse/LoginServlet.java index 07709fc..40250ba 100644 --- a/src/com/controller/alluse/LoginServlet.java +++ b/src/com/controller/alluse/LoginServlet.java @@ -14,62 +14,69 @@ import javax.servlet.http.HttpSession; import java.io.IOException; import java.sql.ResultSet; +/** + * 处理用户登录请求的Servlet + * 根据用户选择的身份(学生/教师/管理员)进行不同的验证逻辑 + */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // 设置请求和响应的字符编码,防止中文乱码 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); + // 从请求参数中获取用户输入的用户名、密码和身份 String userName = req.getParameter("userName"); String psw = req.getParameter("psw"); String identity = req.getParameter("identity1"); + // 打印日志用于调试 System.out.println(userName); System.out.println(psw); System.out.println(identity); + // 根据用户选择的身份进行不同的验证逻辑 if (identity.equals("学生")){//学生身份 - boolean flag = false; - String sql = "select * from student where sname = ? and spsw = ?"; - Object[] objects = {userName, psw}; - ResultSet resultSet = StuDao.login(sql, objects); - String sno = null; + boolean flag = false; // 标记是否验证成功 + String sql = "select * from student where sname = ? and spsw = ?"; // SQL查询语句 + Object[] objects = {userName, psw}; // SQL查询参数 + ResultSet resultSet = StuDao.login(sql, objects); // 执行数据库查询 + String sno = null; // 学生学号 try { - if (resultSet.next()){ - flag = true; - sno = resultSet.getString("sno"); + if (resultSet.next()){ // 如果查询结果不为空 + flag = true; // 验证成功 + sno = resultSet.getString("sno"); // 获取学生学号 } } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); // 打印异常堆栈信息 }finally { - JdbcUtils.close(resultSet); + JdbcUtils.close(resultSet); // 关闭结果集,释放资源 } - if (flag){ + if (flag){ // 验证成功 System.out.println("登录成功!"); - //创建会话,处理请求要用 + // 创建会话,存储用户信息 HttpSession session = req.getSession(); - session.setAttribute("userName", userName); - // 创建请求属性对象,处理请求要用 - session.setAttribute("sno", sno); + session.setAttribute("userName", userName); // 存储用户名 + session.setAttribute("sno", sno); // 存储学号 System.out.println(sno); + // 设置跳转信息并转发到提示页面 req.setAttribute("httpUrl","/view/stu/stumainview.jsp"); req.setAttribute("info", "登录成功!即将跳转至后台首页!"); req.setAttribute("title","登录成功"); req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); // resp.sendRedirect(req.getContextPath() + "/view/stu/stumainview.jsp"); - }else { + }else { // 验证失败 System.out.println("用户名或密码错误!请重新登录!"); - //返回登录成功的信息 + // 设置错误信息并转发到提示页面 req.setAttribute("httpUrl","/view/login/login.jsp"); req.setAttribute("info", "登录失败!用户名或密码错误!即将跳转至登录页面!"); req.setAttribute("title","登录失败"); req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); } - }else - if (identity.equals("教师")){//教师身份 + }else if (identity.equals("教师")){//教师身份 boolean flag = false; String sql = "select * from teacher where tname = ? and tpsw = ?"; Object[] objects = {userName, psw}; @@ -87,13 +94,13 @@ public class LoginServlet extends HttpServlet { } if (flag){ System.out.println("登录成功!"); - //创建会话,处理请求要用 + // 创建会话,存储用户信息 HttpSession session = req.getSession(); session.setAttribute("userName", userName); - // 创建请求属性对象,处理请求要用 session.setAttribute("tno", tno); System.out.println(tno); + // 设置跳转信息并转发到提示页面 req.setAttribute("httpUrl","/view/tea/teamainview.jsp"); req.setAttribute("info", "登录成功!即将跳转至后台首页!"); req.setAttribute("title","登录成功"); @@ -101,72 +108,68 @@ public class LoginServlet extends HttpServlet { // resp.sendRedirect(req.getContextPath() + "/view/guide/mainview_guide.jsp"); }else { System.out.println("用户名或密码错误!请重新登录!"); - //返回登录成功的信息 + // 设置错误信息并转发到提示页面 req.setAttribute("httpUrl","/view/login/login.jsp"); req.setAttribute("info", "登录失败!用户名或密码错误!即将跳转至登录页面!"); req.setAttribute("title","登录失败"); req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); } }else {//如果是管理员 - boolean flag = false; - String sql = "select * from admin where adname = ? and adpsw = ? and belong = ?"; - Object[] objects = {userName, psw, identity}; - ResultSet resultSet = SchoAdminDao.login(sql, objects); -// String belong = null; - try { - if (resultSet.next()){ - flag = true; -// belong = resultSet.getString("belong"); - } - } catch (Exception e) { - e.printStackTrace(); - }finally { - JdbcUtils.close(resultSet); + boolean flag = false; + String sql = "select * from admin where adname = ? and adpsw = ? and belong = ?"; + Object[] objects = {userName, psw, identity}; + ResultSet resultSet = SchoAdminDao.login(sql, objects); + try { + if (resultSet.next()){ + flag = true; } + } catch (Exception e) { + e.printStackTrace(); + }finally { + JdbcUtils.close(resultSet); + } - if (flag){ - - if (identity.equals("学校")){//学校管理员 - System.out.println("登录成功!"); - HttpSession session = req.getSession(); - // 创建会话属性对象,处理请求要用 - session.setAttribute("belong", identity); - System.out.println(identity); -// session.setAttribute("belong", belong); -// System.out.println(belong); + if (flag){ // 管理员验证成功 - req.setAttribute("httpUrl","/view/schoadmin/schomainview.jsp"); - req.setAttribute("info", "登录成功!即将跳转至后台首页!"); - req.setAttribute("title","登录成功"); - req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); - }else {//二级学院管理员 - System.out.println("登录成功!"); - //创建会话,处理请求要用 - HttpSession session = req.getSession(); - // 创建请求属性对象,处理请求要用 - session.setAttribute("belong", identity); - System.out.println(identity); + if (identity.equals("学校")){//学校管理员 + System.out.println("登录成功!"); + HttpSession session = req.getSession(); + session.setAttribute("belong", identity); // 存储管理员所属单位 + System.out.println(identity); - req.setAttribute("httpUrl","/view/deptadmin/deptmainview.jsp"); - req.setAttribute("info", "登录成功!即将跳转至后台首页!"); - req.setAttribute("title","登录成功"); - req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); -// resp.sendRedirect(req.getContextPath() + "/view/guide/mainview_guide.jsp"); - } + // 设置跳转信息并转发到提示页面 + req.setAttribute("httpUrl","/view/schoadmin/schomainview.jsp"); + req.setAttribute("info", "登录成功!即将跳转至后台首页!"); + req.setAttribute("title","登录成功"); + req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); + }else {//二级学院管理员 + System.out.println("登录成功!"); + // 创建会话,存储用户信息 + HttpSession session = req.getSession(); + session.setAttribute("belong", identity); + System.out.println(identity); - }else { - System.out.println("用户名或密码错误!请重新登录!"); - //返回登录成功的信息 - req.setAttribute("httpUrl","/view/login/login.jsp"); - req.setAttribute("info", "登录失败!用户名或密码错误!即将跳转至登录页面!"); - req.setAttribute("title","登录失败"); + // 设置跳转信息并转发到提示页面 + req.setAttribute("httpUrl","/view/deptadmin/deptmainview.jsp"); + req.setAttribute("info", "登录成功!即将跳转至后台首页!"); + req.setAttribute("title","登录成功"); req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); +// resp.sendRedirect(req.getContextPath() + "/view/guide/mainview_guide.jsp"); } + + }else { + System.out.println("用户名或密码错误!请重新登录!"); + // 设置错误信息并转发到提示页面 + req.setAttribute("httpUrl","/view/login/login.jsp"); + req.setAttribute("info", "登录失败!用户名或密码错误!即将跳转至登录页面!"); + req.setAttribute("title","登录失败"); + req.getRequestDispatcher("/view/alluse/info.jsp").forward(req, resp); + } } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - doGet(req, resp); + doGet(req, resp); // 对于POST请求,直接调用doGet方法处理 } -} +} \ No newline at end of file diff --git a/src/com/controller/frontweb/DelNewsServlet.java b/src/com/controller/frontweb/DelNewsServlet.java index 7c55eea..75a3f27 100644 --- a/src/com/controller/frontweb/DelNewsServlet.java +++ b/src/com/controller/frontweb/DelNewsServlet.java @@ -11,43 +11,53 @@ import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; +/** + * 处理新闻删除请求的Servlet + * 根据新闻ID删除对应新闻记录 + */ @WebServlet("/DelNewsServlet") public class DelNewsServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // 设置请求和响应的字符编码,防止中文乱码 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); + // 从请求参数中获取要删除的新闻ID String nid = req.getParameter("nid"); - int nid1 = Integer.parseInt(nid); + int nid1 = Integer.parseInt(nid); // 将字符串类型的ID转换为整数 + // 打印日志用于调试 System.out.println(nid1); - String sql = null; + String sql = null; // SQL语句变量 + // 第一步:检查新闻是否存在 sql = "select count(*) as num from news where nid = ?"; - Object[] objects = {nid1}; - int num = FrontWebDao.findTotalCount(sql, objects); + Object[] objects = {nid1}; // SQL查询参数 + int num = FrontWebDao.findTotalCount(sql, objects); // 执行查询,获取新闻数量 System.out.println(num); - if (num > 0){//有则删除 + + if (num > 0){ // 如果新闻存在,则执行删除操作 sql = "delete from news where nid = ?"; Object[] objects1 = {nid1}; - int num1 = FrontWebDao.executeUpdate(sql, objects1); - if (num1 > 0){ + int num1 = FrontWebDao.executeUpdate(sql, objects1); // 执行删除操作 + + if (num1 > 0){ // 删除成功 + // 通过JavaScript弹出提示框并关闭当前窗口 resp.getWriter().write(""); - }else { + }else { // 删除失败(可能是数据库操作异常) resp.getWriter().write(""); } - }else {//否则不能删除 + }else { // 新闻不存在,不能删除 resp.getWriter().write(""); } - } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - this.doGet(req, resp); + this.doGet(req, resp); // 对于POST请求,直接调用doGet方法处理 } -} +} \ No newline at end of file diff --git a/src/com/controller/frontweb/DeptAdmAlterPswServlet.java b/src/com/controller/frontweb/DeptAdmAlterPswServlet.java index 1ea73e4..ffa2707 100644 --- a/src/com/controller/frontweb/DeptAdmAlterPswServlet.java +++ b/src/com/controller/frontweb/DeptAdmAlterPswServlet.java @@ -10,37 +10,46 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; +/** + * 处理部门管理员密码修改请求的Servlet + * 验证两次输入的新密码是否一致并更新数据库 + */ @WebServlet("/DeptAdmAlterPswServlet") public class DeptAdmAlterPswServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // 设置请求和响应的字符编码,防止中文乱码 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); + // 从会话中获取管理员编号(标识当前登录用户) HttpSession session = req.getSession(); String adno = (String) session.getAttribute("adno"); + // 从请求参数中获取用户输入的新密码和确认密码 String adpsw = req.getParameter("adpsw"); String adpsw1 = req.getParameter("adpsw1"); - //判断两次密码是否相同 - if (adpsw.equals(adpsw1)){//相同则进行修改操作 - String sql = "update admin set adpsw = ? where adno = ?"; - Object[] objects = {adpsw, adno}; - int num = FrontWebDao.executeUpdate(sql, objects); - if (num > 0){ + // 判断两次输入的密码是否相同 + if (adpsw.equals(adpsw1)){// 相同则进行修改操作 + String sql = "update admin set adpsw = ? where adno = ?"; // SQL更新语句 + Object[] objects = {adpsw, adno}; // SQL参数:新密码和管理员编号 + int num = FrontWebDao.executeUpdate(sql, objects); // 执行数据库更新操作 + + if (num > 0){ // 更新成功 + // 提示用户修改成功并要求重新登录 resp.getWriter().write(""); - }else { + }else { // 更新失败(可能是数据库操作异常) resp.getWriter().write(""); } - }else {//不同则重新输入密码 + }else {// 两次密码不同,提示用户重新输入 resp.getWriter().write(""); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - this.doGet(req, resp); + this.doGet(req, resp); // 对于POST请求,直接调用doGet方法处理 } -} +} \ No newline at end of file diff --git a/src/com/controller/frontweb/DeptAdmForgetPswServlet.java b/src/com/controller/frontweb/DeptAdmForgetPswServlet.java index 3a2d02a..e26c821 100644 --- a/src/com/controller/frontweb/DeptAdmForgetPswServlet.java +++ b/src/com/controller/frontweb/DeptAdmForgetPswServlet.java @@ -9,36 +9,45 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +/** + * 处理部门管理员忘记密码重置请求的Servlet + * 验证两次输入的新密码是否一致并更新数据库 + */ @WebServlet("/DeptAdmForgetPswServlet") public class DeptAdmForgetPswServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + // 设置请求和响应的字符编码,防止中文乱码 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); + // 从请求参数中获取管理员编号(用户输入的需要重置密码的账号) String adno = req.getParameter("adno"); + // 从请求参数中获取用户输入的新密码和确认密码 String adpsw = req.getParameter("adpsw"); String adpsw1 = req.getParameter("adpsw1"); - //判断两次密码是否相同 - if (adpsw.equals(adpsw1)){//相同则进行修改操作 - String sql = "update admin set adpsw = ? where adno = ?"; - Object[] objects = {adpsw, adno}; - int num = FrontWebDao.executeUpdate(sql, objects); - if (num > 0){ + // 判断两次输入的密码是否相同 + if (adpsw.equals(adpsw1)){// 相同则进行修改操作 + String sql = "update admin set adpsw = ? where adno = ?"; // SQL更新语句 + Object[] objects = {adpsw, adno}; // SQL参数:新密码和管理员编号 + int num = FrontWebDao.executeUpdate(sql, objects); // 执行数据库更新操作 + + if (num > 0){ // 更新成功 + // 提示用户修改成功并跳转到登录页面 resp.getWriter().write(""); - }else { + }else { // 更新失败(可能是管理员编号不存在或数据库操作异常) resp.getWriter().write(""); } - }else {//不同则重新输入密码 + }else {// 两次密码不同,提示用户重新输入 resp.getWriter().write(""); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - this.doGet(req, resp); + this.doGet(req, resp); // 对于POST请求,直接调用doGet方法处理 } -} +} \ No newline at end of file