学生管理系统的设计与实现—后端代码

    xiaoxiao2022-07-07  215

    下面仅展示部分说明问题的代码。不对全部代码作展示。项目后端架构如下

    Controller层实现

    //LoginController.java package com.lanou.controller; import java.io.IOException; 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 com.lanou.entity.User; import com.lanou.service.impl.UserService; import com.lanou.util.Result; @WebServlet("/login") public class LoginController extends HttpServlet{ private UserService userService = new UserService(); private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if(req.getParameter("vcode").equalsIgnoreCase(req.getSession().getAttribute("vcode").toString())) { Result res = userService.loginCheck(req.getParameter("account"), req.getParameter("password"), req.getParameter("roleId")); if(res.getStatus() == 200) { User u = (User) res.getData(); req.getSession().setAttribute("user",u ); if(u.getRoleId() == 1) { resp.sendRedirect("/Job/static/StudentIndex.html"); }else { resp.sendRedirect("/Job/static/TeacherIndex.html"); } }else { req.setAttribute("msg", res.getMsg()); req.getRequestDispatcher("/index.jsp").forward(req, resp); } }else { req.setAttribute("msg", "验证码输入有误"); req.getRequestDispatcher("/index.jsp").forward(req, resp); } } } //ExitController.java package com.lanou.controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/static/exit") public class ExitController extends HttpServlet{ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html; charset=utf8"); req.getSession().invalidate(); resp.sendRedirect("../index.jsp"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } } ```java //UpdatePasswordController.java package com.lanou.controller; import java.io.IOException; 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 com.alibaba.fastjson.JSONObject; import com.lanou.entity.User; import com.lanou.service.impl.UserService; import com.lanou.util.Result; @WebServlet("/static/updatepassword") public class UpdatePasswordController extends HttpServlet{ private static final long serialVersionUID = 1L; private UserService userService = new UserService(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=utf8"); User current_user = (User) req.getSession().getAttribute("user"); String oldPass = req.getParameter("oldPass"); String newPass = req.getParameter("newPass"); Result res = userService.updatePassword(current_user.getAccount(), oldPass, newPass); resp.getWriter().print(JSONObject.toJSONString(res)); } } //VcodeController.java package com.lanou.controller; import java.io.IOException; import javax.imageio.ImageIO; 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 com.lanou.util.VerifyCode; @WebServlet("/vcode.png") public class VcodeController extends HttpServlet{ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getSession().setAttribute("vcode", VerifyCode.drawRandomText()); ImageIO.write(VerifyCode.verifyImg, "png", resp.getOutputStream()); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } } //student/StudentFamilyController.java package com.lanou.controller.student; import java.io.IOException; 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 com.alibaba.fastjson.JSONObject; import com.lanou.entity.Studentfamily; import com.lanou.entity.User; import com.lanou.service.impl.StudentService; import com.lanou.util.Result; @WebServlet("/static/studentfamily") public class StudentFamilyController extends HttpServlet{ private static final long serialVersionUID = 1L; private StudentService studentService = new StudentService(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User current_user = (User)req.getSession().getAttribute("user"); String account = current_user.getAccount(); Result res = studentService.getStudentFamily(account); Studentfamily info = (Studentfamily)res.getData(); req.setAttribute("studentfamily", info); req.getRequestDispatcher("FamilyInformation.jsp").forward(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User current_user = (User) req.getSession().getAttribute("user"); String account = current_user.getAccount(); String family = req.getParameter("family"); Studentfamily studentFamily = JSONObject.parseObject(family, Studentfamily.class); studentFamily.setAccount(account); studentService.saveStudentFamily(studentFamily); resp.getWriter().print("success"); } } //teacher/TeacherListController.java package com.lanou.controller.teacher; import java.io.IOException; import java.util.List; 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 com.lanou.entity.Teacherinfo; import com.lanou.service.ITeacherService; import com.lanou.service.impl.TeacherService; @WebServlet("/static/teacherlist") public class TeacherListController extends HttpServlet{ private static final long serialVersionUID = 1L; private ITeacherService teacherService = new TeacherService(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List<Teacherinfo> teacherList = teacherService.selectAll(); req.setAttribute("teacherlist", teacherList); req.getRequestDispatcher("TeacherInfo.jsp").forward(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }

    Dao层实现

    //StudentDao.java package com.lanou.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import com.lanou.dao.IStudentDao; import com.lanou.entity.Studentfamily; import com.lanou.entity.Studentgraduate; import com.lanou.entity.Studentinfo; import com.lanou.entity.Studentjob; import com.lanou.entity.Studentrecord; import com.lanou.entity.Studentschool; import com.lanou.util.JDBCUtil; public class StudentDao implements IStudentDao{ public Studentinfo getStudentInfo(String account) { Connection conn = null; try { conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement("select * from tb_studentinfo where account = ?"); pstmt.setString(1, account); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { return new Studentinfo(rs.getString("account"), rs.getDate("birth"),rs.getString("email"), rs.getShort("gender"), rs.getString("identification"), rs.getString("name"), rs.getString("nation"), rs.getString("politics"), rs.getString("qq"), rs.getString("teacherId"),rs.getString("tel")); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } public Studentfamily getStudentFamily(String account) { Connection conn = null; try { conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement("select * from tb_studentfamily where account = ?"); pstmt.setString(1, account); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { return new Studentfamily(rs.getString("account"), rs.getString("address"), rs.getInt("id"), rs.getString("name"), rs.getString("police_address"), rs.getString("poolDegree"), rs.getString("poolNo"), rs.getString("postal"), rs.getString("relation"), rs.getString("tel")); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } public Studentschool getStudentSchool(String account) { Connection conn = null; try { conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement("select * from tb_studentschool where account = ?"); pstmt.setString(1, account); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { return new Studentschool(rs.getString("account"), rs.getInt("id"), rs.getString("school"), rs.getString("university")); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } public Studentrecord getStudentRecord(String account) { Connection conn = null; try { conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement("select * from tb_studentrecord where account = ?"); pstmt.setString(1, account); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { return new Studentrecord(rs.getString("account"), rs.getString("class"), rs.getString("classify"), rs.getString("degree"), rs.getInt("length"), rs.getString("major"), rs.getString("school")); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } @Override public Studentgraduate getStudentgraduate(String account) { Connection conn = null; try { conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement("select * from tb_studentgraduate where account = ?"); pstmt.setString(1, account); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { return new Studentgraduate(rs.getString("account"), rs.getString("major"), rs.getString("school")); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } @Override public Studentjob getStudentjob(String account) { Connection conn = null; try { conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement("select * from tb_studentjob where account = ?"); pstmt.setString(1, account); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { return new Studentjob(rs.getString("account"), rs.getString("address"), rs.getString("company"), rs.getString("contact"), rs.getString("department"), rs.getString("district"), rs.getString("email"), rs.getString("tel")); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } public void saveStudentRecord(Studentrecord studentRecord) { Connection conn = null; try { conn = JDBCUtil.getConnection(); if(getStudentRecord(studentRecord.getAccount()) == null) { PreparedStatement pstmt = conn.prepareStatement("insert into tb_studentrecord(account,degree,length,classify,major,school,class) " + "values(?,?,?,?,?,?,?)"); pstmt.setString(1, studentRecord.getAccount()); pstmt.setString(2, studentRecord.getDegree()); pstmt.setInt(3, studentRecord.getLength()); pstmt.setString(4, studentRecord.getClassify()); pstmt.setString(5, studentRecord.getMajor()); pstmt.setString(6, studentRecord.getSchool()); pstmt.setString(7, studentRecord.getClass_()); pstmt.executeUpdate(); }else { String sql = "update tb_studentrecord set " + "degree='" + studentRecord.getDegree() + "',length='" + studentRecord.getLength() + "',classify='" + studentRecord.getClassify() + "',major='" + studentRecord.getMajor() + "',school='" + studentRecord.getMajor() + "',class='" + studentRecord.getClass_() + "' where account='" + studentRecord.getAccount()+"'"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } } @Override public void saveStudentInfo(Studentinfo studentInfo) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Connection conn = null; try { conn = JDBCUtil.getConnection(); if(getStudentInfo(studentInfo.getAccount()) == null) { PreparedStatement pstmt = conn.prepareStatement("insert into tb_studentinfo(account,name,gender,nation,birth,politics," + "identification,tel,email,qq) " + "values(?,?,?,?,?,?,?,?,?,?)"); pstmt.setString(1, studentInfo.getAccount()); pstmt.setString(2, studentInfo.getName()); pstmt.setInt(3, studentInfo.getGender()); pstmt.setString(4, studentInfo.getNation()); pstmt.setString(5, sdf.format(studentInfo.getBirth())); pstmt.setString(6, studentInfo.getPolitics()); pstmt.setString(7, studentInfo.getIdentification()); pstmt.setString(8, studentInfo.getTel()); pstmt.setString(9, studentInfo.getEmail()); pstmt.setString(10, studentInfo.getQq()); pstmt.executeUpdate(); }else { String sql = "update tb_studentinfo set " + "name='" + studentInfo.getName() + "',gender='" + studentInfo.getGender() + "',nation='" + studentInfo.getNation() + "',birth='" + sdf.format(studentInfo.getBirth()) + "',politics='" + studentInfo.getPolitics() + "',identification='" + studentInfo.getIdentification() + "',tel='" + studentInfo.getTel() + "',email='" + studentInfo.getEmail() + "',qq='" + studentInfo.getQq() + "' where account='" + studentInfo.getAccount()+"'"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } } @Override public void saveStudentFamily(Studentfamily studentFamily) { Connection conn = null; try { conn = JDBCUtil.getConnection(); if(getStudentFamily(studentFamily.getAccount()) == null) { PreparedStatement pstmt = conn.prepareStatement("insert into tb_studentfamily(account,name,relation,tel,postal,poolDegree,poolNo,police_address,address) " + "values(?,?,?,?,?,?,?,?,?)"); pstmt.setString(1, studentFamily.getAccount()); pstmt.setString(2, studentFamily.getName()); pstmt.setString(3, studentFamily.getRelation()); pstmt.setString(4, studentFamily.getTel()); pstmt.setString(5, studentFamily.getPostal()); pstmt.setString(6, studentFamily.getPoolDegree()); pstmt.setString(7, studentFamily.getPoolNo()); pstmt.setString(8, studentFamily.getPoliceAddress()); pstmt.setString(9, studentFamily.getAddress()); pstmt.executeUpdate(); }else { String sql = "update tb_studentfamily set " + "name='" + studentFamily.getName() + "',relation='" + studentFamily.getRelation() + "',tel='" + studentFamily.getTel() + "',postal='" + studentFamily.getPostal() + "',poolDegree='" + studentFamily.getPoolDegree() + "',poolNo='" + studentFamily.getPoolNo() + "',police_address='" + studentFamily.getPoliceAddress() + "',address='" + studentFamily.getAddress() + "' where account='" + studentFamily.getAccount()+"'"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } } @Override public void saveStudentSchool(Studentschool studentSchool) { Connection conn = null; try { conn = JDBCUtil.getConnection(); if(getStudentSchool(studentSchool.getAccount()) == null) { PreparedStatement pstmt = conn.prepareStatement("insert into tb_studentschool(account,university,school) " + "values(?,?,?)"); pstmt.setString(1, studentSchool.getAccount()); pstmt.setString(2, studentSchool.getUniversity()); pstmt.setString(3, studentSchool.getSchool()); pstmt.executeUpdate(); }else { String sql = "update tb_studentschool set " + "university='" + studentSchool.getUniversity() + "',school='" + studentSchool.getSchool() + "' where account='" + studentSchool.getAccount()+"'"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } } @Override public void saveStudentGraduate(Studentgraduate studentGraduate) { Connection conn = null; try { conn = JDBCUtil.getConnection(); if(getStudentgraduate(studentGraduate.getAccount()) == null) { PreparedStatement pstmt = conn.prepareStatement("insert into tb_studentgraduate(account,major,school) " + "values(?,?,?)"); pstmt.setString(1, studentGraduate.getAccount()); pstmt.setString(2, studentGraduate.getMajor()); pstmt.setString(3, studentGraduate.getSchool()); pstmt.executeUpdate(); }else { String sql = "update tb_studentgraduate set " + "major='" + studentGraduate.getMajor() + "',school='" + studentGraduate.getSchool() + "' where account='" + studentGraduate.getAccount()+"'"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } } @Override public void saveStudentJob(Studentjob studentJob) { Connection conn = null; try { conn = JDBCUtil.getConnection(); if(getStudentjob(studentJob.getAccount()) == null) { PreparedStatement pstmt = conn.prepareStatement("insert into tb_studentjob(account,company,email,department," + "district,address,contact,tel) " + "values(?,?,?,?,?,?,?,?)"); pstmt.setString(1, studentJob.getAccount()); pstmt.setString(2, studentJob.getCompany()); pstmt.setString(3, studentJob.getEmail()); pstmt.setString(4, studentJob.getDepartment()); pstmt.setString(5, studentJob.getDistrict()); pstmt.setString(6, studentJob.getAddress()); pstmt.setString(7, studentJob.getContact()); pstmt.setString(8, studentJob.getTel()); pstmt.executeUpdate(); }else { String sql = "update tb_studentjob set " + "company='" + studentJob.getCompany() + "',email='" + studentJob.getEmail() + "',department='" + studentJob.getDepartment() + "',district='" + studentJob.getDistrict() + "',address='" + studentJob.getAddress() + "',contact='" + studentJob.getContact() + "',tel='" + studentJob.getTel() + "' where account='" + studentJob.getAccount()+"'"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } } @Override public List<Studentinfo> selectAll() { Connection conn = null; List<Studentinfo> studentList = new ArrayList<Studentinfo>(); try { conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement("select * from tb_studentinfo"); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { studentList.add(new Studentinfo(rs.getString("account"), rs.getDate("birth"),rs.getString("email"), rs.getShort("gender"), rs.getString("identification"), rs.getString("name"), rs.getString("nation"), rs.getString("politics"), rs.getString("qq"), rs.getString("teacherId"),rs.getString("tel"))); } return studentList; } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } public List<Studentinfo> findByKeyWord(String param) { Connection conn = null; List<Studentinfo> studentList = new ArrayList<Studentinfo>(); try { conn = JDBCUtil.getConnection(); String sql = "select * from tb_studentinfo where account like " + "concat('%',"+param+",'%')" +" or name like " + "concat('%',"+param+",'%')"; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); while(rs.next()) { studentList.add(new Studentinfo(rs.getString("account"), rs.getDate("birth"),rs.getString("email"), rs.getShort("gender"), rs.getString("identification"), rs.getString("name"), rs.getString("nation"), rs.getString("politics"), rs.getString("qq"), rs.getString("teacherId"),rs.getString("tel"))); } return studentList; } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil.closeConnection(conn); } return null; } }

    Util工具类

    //VerifyCode.java package com.lanou.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.util.Random; public class VerifyCode { public static BufferedImage verifyImg; public static String drawRandomText() { int width = 200; int height = 69; verifyImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = (Graphics2D) verifyImg.getGraphics(); graphics.setColor(Color.WHITE);// 设置画笔颜色-验证码背景色 graphics.fillRect(0, 0, width, height);// 填充背景 graphics.setFont(new Font("微软雅黑", Font.BOLD, 40)); // 数字和字母的组合 String baseNumLetter = "123456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"; StringBuffer sBuffer = new StringBuffer(); int x = 10; // 旋转原点的 x 坐标 String ch = ""; Random random = new Random(); for (int i = 0; i < 4; i++) { graphics.setColor(getRandomColor()); // 设置字体旋转角度 int degree = random.nextInt() % 30; // 角度小于30度 int dot = random.nextInt(baseNumLetter.length()); ch = baseNumLetter.charAt(dot) + ""; sBuffer.append(ch); // 正向旋转 graphics.rotate(degree * Math.PI / 180, x, 45); graphics.drawString(ch, x, 45); // 反向旋转 graphics.rotate(-degree * Math.PI / 180, x, 45); x += 48; } // 画干扰线 for (int i = 0; i < 6; i++) { // 设置随机颜色 graphics.setColor(getRandomColor()); // 随机画线 graphics.drawLine(random.nextInt(width), random.nextInt(height), random.nextInt(width), random.nextInt(height)); } // 添加噪点 for (int i = 0; i < 30; i++) { int x1 = random.nextInt(width); int y1 = random.nextInt(height); graphics.setColor(getRandomColor()); graphics.fillRect(x1, y1, 2, 2); } return sBuffer.toString(); } /** * 随机取色 */ private static Color getRandomColor() { Random ran = new Random(); Color color = new Color(ran.nextInt(256), ran.nextInt(256), ran.nextInt(256)); return color; } }
    最新回复(0)