👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
学生信息管理系统拥有三种角色,分别为学生、教师和管理员,功能更加完善,可以作为初学者参照学习课程设计。
-
学生:班级通讯录查询、个人信息查看修改、成绩查询、密码修改
-
教师:教师通讯录查询、个人信息查看修改、成绩登记、成绩查询、考试统计、密码修改
-
管理员:学生信息管理、教师信息管理、班级信息管理、年级信息管理、课程信息管理、成绩统计分析、系统管理:(修改密码、 系统设置、 退出系统)
1.1 背景描述
学生管理系统是一款用于学校或教育机构进行学生信息管理的软件系统。它涵盖了从学生基本信息、成绩管理、课程管理、考勤管理等多个方面。系统能够方便地进行学生信息的录入、修改、查询和删除,同时支持数据统计和分析,帮助学校更好地了解学生的学习情况和表现。通过学生管理系统,学校可以更加高效地进行学生信息管理,提高管理效率,同时更好地保障学生的权益和安全。
2、项目技术
2.1 servlet
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
mysql5-8、tomcat8-10、JDK1.8+
4、功能截图+视频演示+文档目录
4.1 登录界面
登录界面有三种角色可以选择,分别为学生、老师和管理员,经过密码、用户名和验证码校验通过之后,网页会跳转到不同的角色功能页面。
4.2 管理员-成绩统计
管理员可以添加和删除考试安排、根据班级信息查看成绩等。成绩统计页面显示了 该考试中学生的姓名、学号以及各科成绩。科目均可以在后台修改。
4.3 管理员-添加学生界面
管理员可以添加、删除和修改学生信息,还可以通过年级和班级条件筛选学生。同时此页面使用了分页技术,每页显示10个学生的信息。教师信息的管理和学生信息管理功能相同,详情可以看项目运行视频。
4.4 管理员-系统设置
系统设置界面中,管理员可以设置该项目的名字,还可以设置通知信息,这些信息都将会分别在老师界面和学生界面显示。同时还可以禁止教师和学生登录系统。
4.5 学生相关界面
学生界面主要有三个,分别为成绩查看、班级通讯录查看和个人信息页面。在个人信息页面,学生可以修改自己的信息和密码。
4.6 教师相关界面
教师相关页面中,教师可以查看和修改自身信息和密码。同时教师可以对自己负责的课程进行成绩登记以及修改等功能。
4.7文档目录
5 、核心代码实现
5.1 配置代码
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/database?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
</property>
<property name="user">root</property>
<property name="password">root</property>
</default-config>
<!-- <default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://192.168.1.13:3306/df07fb99668844964bc0266b841e65ed9</property>
<property name="user">5d8cf882-2db4</property>
<property name="password">aa19a42d-1d5a</property>
</default-config> -->
</c3p0-config>
5.2 其它核心代码
package com.lizhou.servlet;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lizhou.bean.User;
import com.lizhou.service.SystemService;
import com.lizhou.tools.VCodeGenerator;
/**
* 验证码
* @author bojiangzhou
*
*/
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private SystemService service = new SystemService();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取请求的方法
String method = request.getParameter("method");
if("GetVCode".equalsIgnoreCase(method)){
getVCode(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取请求的方法
String method = request.getParameter("method");
if("Login".equals(method)){ //验证登录
login(request, response);
}
}
/**
* 验证用户登录
* @param request
* @param response
* @throws IOException
*/
private void login(HttpServletRequest request, HttpServletResponse response) throws IOException {
//获取用户输入的账户
String account = request.getParameter("account");
//获取用户输入的密码
String password = request.getParameter("password");
//获取用户输入的验证码
String vcode = request.getParameter("vcode");
//获取登录类型
int type = Integer.parseInt(request.getParameter("type"));
//返回信息
String msg = "";
//获取session中的验证码
String sVcode = (String) request.getSession().getAttribute("vcode");
if(!sVcode.equalsIgnoreCase(vcode)){//先判断验证码是否正确
msg = "vcodeError";
} else{ //判断用户名和密码是否正确
//将账户和密码封装
User user = new User();
user.setAccount(account);
user.setPassword(password);
user.setType(Integer.parseInt(request.getParameter("type")));
//创建系统数据层对象
//查询用户是否存在
User loginUser = service.getAdmin(user);
if(loginUser == null){//如果用户名或密码错误
msg = "loginError";
} else{ //正确
if(User.USER_ADMIN == type){
msg = "admin";
} else if(User.USER_STUDENT == type){
msg = "student";
} else if(User.USER_TEACHER == type){
msg = "teacher";
}
//将该用户名保存到session中
request.getSession().setAttribute("user", loginUser);
}
}
//返回登录信息
response.getWriter().write(msg);
}
/**
* 获取验证码
* @param request
* @param response
* @throws IOException
*/
private void getVCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
//创建验证码生成器对象
VCodeGenerator vcGenerator = new VCodeGenerator();
//生成验证码
String vcode = vcGenerator.generatorVCode();
//将验证码保存在session域中,以便判断验证码是否正确
request.getSession().setAttribute("vcode", vcode);
//生成验证码图片
BufferedImage vImg = vcGenerator.generatorRotateVCodeImage(vcode, true);
//输出图像
ImageIO.write(vImg, "gif", response.getOutputStream());
}
}
6 、功能视频演示
学生信息管理系统