基于javaweb+mysql的jsp+servlet学生信息管理系统(java+servlet+jsp+easyui+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的JSP+Servlet学生信息管理系统(java+servlet+jsp+easyui+mysql)
介绍
学生信息管理系统,该项目分为管理员、老师、学生三种角色; 管理员主要功能: 学生信息管理、班级信息管理、教师信息管理、系统管理; 老师主要功能: 学生信息管理、班级信息管理、教师信息管理、系统管理; 学生主要功能: 学生信息管理、系统管理;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7版本;
技术栈
- Servlet+Jsp+easyui
使用说明
- 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 3. 将项目中DbUtil.java中的数据库配置改为自己的配置 4. 配置tomcat,运行项目,在浏览器中输入localhost:8080/xxx 登录 5.管理员账号:admin 密码:admin 教师账号:王鹤翔老师 密码:111 学生账号:江小雷 密码:1
case 2:{
StudentDao studentDao = new StudentDao();
Student student = studentDao.login(name, password);
studentDao.closeCon();
if(student == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", student);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
case 3:{
TeacherDao teahcerDao = new TeacherDao();
Teacher teacher = teahcerDao.login(name, password);
teahcerDao.closeCon();
if(teacher == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", teacher);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
default:
break;
}
response.getWriter().write(loginStatus);
}
private void logout(HttpServletRequest request,HttpServletResponse response) throws IOException{
request.getSession().removeAttribute("user");
request.getSession().removeAttribute("userType");
response.sendRedirect("index.jsp");
}
}
e.printStackTrace();
}
}
String ret = "success";
if(!scoreDao.addScore(score)){
ret = "error";
}
try {
response.getWriter().write(ret);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class AttendanceServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
String method = request.getParameter("method");
if("toAttendanceServletListView".equals(method)){
ret.put("rows", courseList);
try {
String from = request.getParameter("from");
if("combox".equals(from)){
response.getWriter().write(JSONArray.fromObject(courseList).toString());
}else{
response.getWriter().write(JSONObject.fromObject(ret).toString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void addScore(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
int studentId = request.getParameter("studentid") == null ? 0 : Integer.parseInt(request.getParameter("studentid").toString());
int courseId = request.getParameter("courseid") == null ? 0 : Integer.parseInt(request.getParameter("courseid").toString());
Double scoreNum = Double.parseDouble(request.getParameter("score"));
String remark = request.getParameter("remark");
Score score = new Score();
score.setCourseId(courseId);
score.setStudentId(studentId);
score.setScore(scoreNum);
score.setRemark(remark);
ScoreDao scoreDao = new ScoreDao();
if(scoreDao.isAdd(studentId, courseId)){
try {
response.getWriter().write("added");
scoreDao.closeCon();
return;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String ret = "success";
if(!scoreDao.addScore(score)){
ret = "error";
}
try {
response.getWriter().write(ret);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
String name = request.getParameter("name");
int teacherId = request.getParameter("teacherid") == null ? 0 : Integer.parseInt(request.getParameter("teacherid").toString());
Integer currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
Integer pageSize = request.getParameter("rows") == null ? 999 : Integer.parseInt(request.getParameter("rows"));
Course course = new Course();
course.setName(name);
course.setTeacherId(teacherId);
CourseDao courseDao = new CourseDao();
List<Course> courseList = courseDao.getCourseList(course, new Page(currentPage, pageSize));
int total = courseDao.getCourseListTotal(course);
courseDao.closeCon();
response.setCharacterEncoding("UTF-8");
Map<String, Object> ret = new HashMap<String, Object>();
ret.put("total", total);
ret.put("rows", courseList);
try {
String from = request.getParameter("from");
if("combox".equals(from)){
response.getWriter().write(JSONArray.fromObject(courseList).toString());
}else{
response.getWriter().write(JSONObject.fromObject(ret).toString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void addCourse(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
String name = request.getParameter("name");
int teacherId = Integer.parseInt(request.getParameter("teacherid").toString());
int maxNum = Integer.parseInt(request.getParameter("maxnum").toString());
String courseDate = request.getParameter("course_date");
String info = request.getParameter("info");
Course course = new Course();
course.setName(name);
course.setTeacherId(teacherId);
course.setInfo(info);
course.setMaxNum(maxNum);
course.setCourseDate(courseDate);
CourseDao courseDao = new CourseDao();
course.setInfo(info);
course.setMaxNum(maxNum);
course.setCourseDate(courseDate);
CourseDao courseDao = new CourseDao();
String msg = "error";
if(courseDao.addCourse(course)){
msg = "success";
}
try {
response.getWriter().write(msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
courseDao.closeCon();
}
}
}
/**
*
*系统登录后主界面
*/
public class SystemServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -7258264317769166483L;
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
String method = request.getParameter("method");
if("toPersonalView".equals(method)){
personalView(request,response);
Admin admin = adminDao.login(name, password);
adminDao.closeCon();
if(admin == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", admin);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
case 2:{
StudentDao studentDao = new StudentDao();
Student student = studentDao.login(name, password);
studentDao.closeCon();
if(student == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", student);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
case 3:{
TeacherDao teahcerDao = new TeacherDao();
Teacher teacher = teahcerDao.login(name, password);
teahcerDao.closeCon();
if(teacher == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", teacher);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
default:
break;
}
response.getWriter().write(loginStatus);
}
private void logout(HttpServletRequest request,HttpServletResponse response) throws IOException{
request.getSession().removeAttribute("user");
request.getSession().removeAttribute("userType");
response.sendRedirect("index.jsp");
}
/**
*
*班级信息管理servlet
*/
public class ClazzServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
String method = request.getParameter("method");
if("toClazzListView".equals(method)){
clazzList(request,response);
}else if("getClazzList".equals(method)){
getClazzList(request, response);
}else if("AddClazz".equals(method)){
addClazz(request, response);
}else if("DeleteClazz".equals(method)){
deleteClazz(request, response);
}else if("EditClazz".equals(method)){
editClazz(request, response);
}
}
private void editClazz(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
Integer id = Integer.parseInt(request.getParameter("id"));
String name = request.getParameter("name");
String info = request.getParameter("info");
Clazz clazz = new Clazz();
clazz.setName(name);
clazz.setInfo(info);
clazz.setId(id);
ClazzDao clazzDao = new ClazzDao();
if(clazzDao.editClazz(clazz)){
try {
response.getWriter().write("success");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
clazzDao.closeCon();
}
}
}
private void deleteClazz(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
Integer id = Integer.parseInt(request.getParameter("clazzid"));
ClazzDao clazzDao = new ClazzDao();
if(clazzDao.deleteClazz(id)){
/**
*
*系统登录后主界面
*/
public class SystemServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = -7258264317769166483L;
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
doPost(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
String method = request.getParameter("method");
if("toPersonalView".equals(method)){
personalView(request,response);
return;
}else if("EditPasswod".equals(method)){
editPassword(request,response);
return;
}
try {
request.getRequestDispatcher("view/system.jsp").forward(request, response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void editPassword(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
String password = request.getParameter("password");
String newPassword = request.getParameter("newpassword");
response.setCharacterEncoding("UTF-8");
int userType = Integer.parseInt(request.getSession().getAttribute("userType").toString());
if(userType == 1){
//管理员
}
if(cell.getCellType() != cell.CELL_TYPE_NUMERIC){
errorMsg += "第" + rowNum + "行课程id不是整数!\n";
continue;
}
int courseId = new Double(cell.getNumericCellValue()).intValue();
//获取第2列,成绩
cell = row.getCell(2);
if(cell == null){
errorMsg += "第" + rowNum + "行成绩缺失!\n";
continue;
}
if(cell.getCellType() != cell.CELL_TYPE_NUMERIC){
errorMsg += "第" + rowNum + "行成绩类型不是数字!\n";
continue;
}
double scoreValue = cell.getNumericCellValue();
//获取第3列,备注
cell = row.getCell(3);
String remark = null;
if(cell != null){
remark = cell.getStringCellValue();
}
Student student = studentDao.getStudent(studentId);
if(student == null){
errorMsg += "第" + rowNum + "行学生id不存在!\n";
continue;
}
Course course = courseDao.getCourse(courseId);
if(course == null){
errorMsg += "第" + rowNum + "行课程id不存在!\n";
continue;
}
if(!selectedCourseDao.isSelected(studentId, courseId)){
errorMsg += "第" + rowNum + "行课程该同学未选,不合法!\n";
continue;
}
if(scoreDao.isAdd(studentId, courseId)){
errorMsg += "第" + rowNum + "行成绩已经被添加,请勿重复添加!\n";
continue;
}
Score score = new Score();
score.setCourseId(courseId);
score.setRemark(remark);
score.setScore(scoreValue);
score.setStudentId(studentId);
if(scoreDao.addScore(score)){
count++;
}
}
errorMsg += "成功录入" + count + "条成绩信息!";
if(userType == 2){
//如果是学生,只能查看自己的信息
Student currentUser = (Student)request.getSession().getAttribute("user");
studentId = currentUser.getId();
}
leave.setStudentId(studentId);
LeaveDao leaveDao = new LeaveDao();
List<Leave> leaveList = leaveDao.getLeaveList(leave, new Page(currentPage, pageSize));
int total = leaveDao.getLeaveListTotal(leave);
leaveDao.closeCon();
response.setCharacterEncoding("UTF-8");
Map<String, Object> ret = new HashMap<String, Object>();
ret.put("total", total);
ret.put("rows", leaveList);
try {
String from = request.getParameter("from");
if("combox".equals(from)){
response.getWriter().write(JSONArray.fromObject(leaveList).toString());
}else{
response.getWriter().write(JSONObject.fromObject(ret).toString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void addLeave(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
int studentId = Integer.parseInt(request.getParameter("studentid"));
String info = request.getParameter("info");
Leave leave = new Leave();
leave.setStudentId(studentId);
leave.setInfo(info);
leave.setRemark("");
LeaveDao leaveDao = new LeaveDao();
String msg = "error";
if(leaveDao.addLeave(leave)){
msg = "success";
}
try {
response.getWriter().write(msg);
} catch (IOException e) {
msg = "error";
}
scoreDao.closeCon();
try {
response.getWriter().write(msg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void editScore(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
int id = Integer.parseInt(request.getParameter("id"));
int studentId = request.getParameter("studentid") == null ? 0 : Integer.parseInt(request.getParameter("studentid").toString());
int courseId = request.getParameter("courseid") == null ? 0 : Integer.parseInt(request.getParameter("courseid").toString());
Double scoreNum = Double.parseDouble(request.getParameter("score"));
String remark = request.getParameter("remark");
Score score = new Score();
score.setId(id);
score.setCourseId(courseId);
score.setStudentId(studentId);
score.setScore(scoreNum);
score.setRemark(remark);
ScoreDao scoreDao = new ScoreDao();
String ret = "success";
if(!scoreDao.editScore(score)){
ret = "error";
}
try {
response.getWriter().write(ret);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void getScoreList(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
int studentId = request.getParameter("studentid") == null ? 0 : Integer.parseInt(request.getParameter("studentid").toString());
int courseId = request.getParameter("courseid") == null ? 0 : Integer.parseInt(request.getParameter("courseid").toString());
Integer currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
Integer pageSize = request.getParameter("rows") == null ? 999 : Integer.parseInt(request.getParameter("rows"));
int total = studentDao.getStudentListTotal(student);
studentDao.closeCon();
response.setCharacterEncoding("UTF-8");
Map<String, Object> ret = new HashMap<String, Object>();
ret.put("total", total);
ret.put("rows", clazzList);
try {
String from = request.getParameter("from");
if("combox".equals(from)){
response.getWriter().write(JSONArray.fromObject(clazzList).toString());
}else{
response.getWriter().write(JSONObject.fromObject(ret).toString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void addStudent(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
String name = request.getParameter("name");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String mobile = request.getParameter("mobile");
String qq = request.getParameter("qq");
int clazzId = Integer.parseInt(request.getParameter("clazzid"));
Student student = new Student();
student.setClazzId(clazzId);
student.setMobile(mobile);
student.setName(name);
student.setPassword(password);
student.setQq(qq);
student.setSex(sex);
student.setSn(SnGenerateUtil.generateSn(clazzId));
StudentDao studentDao = new StudentDao();
if(studentDao.addStudent(student)){
try {
response.getWriter().write("success");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
studentDao.closeCon();
}
}
}
//验证码验证通过,对比用户名密码是否正确
String loginStatus = "loginFaild";
switch (type) {
case 1:{
AdminDao adminDao = new AdminDao();
Admin admin = adminDao.login(name, password);
adminDao.closeCon();
if(admin == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", admin);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
case 2:{
StudentDao studentDao = new StudentDao();
Student student = studentDao.login(name, password);
studentDao.closeCon();
if(student == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", student);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
case 3:{
TeacherDao teahcerDao = new TeacherDao();
Teacher teacher = teahcerDao.login(name, password);
teahcerDao.closeCon();
if(teacher == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", teacher);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}
//学生
Student student = (Student)request.getSession().getAttribute("user");
if(!student.getPassword().equals(password)){
try {
response.getWriter().write("原密码错误!");
return;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
StudentDao studentDao = new StudentDao();
if(studentDao.editPassword(student, newPassword)){
try {
response.getWriter().write("success");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
studentDao.closeCon();
}
}else{
try {
response.getWriter().write("数据库修改错误");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
studentDao.closeCon();
}
}
}
if(userType == 3){
//教师
Teacher teacher = (Teacher)request.getSession().getAttribute("user");
if(!teacher.getPassword().equals(password)){
try {
response.getWriter().write("原密码错误!");
return;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
TeacherDao teacherDao = new TeacherDao();
if(teacherDao.editPassword(teacher, newPassword)){
try {
String errorMsg = "";
StudentDao studentDao = new StudentDao();
CourseDao courseDao = new CourseDao();
ScoreDao scoreDao = new ScoreDao();
SelectedCourseDao selectedCourseDao = new SelectedCourseDao();
for(int rowNum = 1; rowNum <= sheetAt.getLastRowNum(); rowNum++){
HSSFRow row = sheetAt.getRow(rowNum);
HSSFCell cell = row.getCell(0);
//获取第0列,学生id
if(cell == null){
errorMsg += "第" + rowNum + "行学生id缺失!\n";
continue;
}
if(cell.getCellType() != cell.CELL_TYPE_NUMERIC){
errorMsg += "第" + rowNum + "行学生id类型不是整数!\n";
continue;
}
int studentId = new Double(cell.getNumericCellValue()).intValue();
//获取第1列,课程id
cell = row.getCell(1);
if(cell == null){
errorMsg += "第" + rowNum + "行课程id缺失!\n";
continue;
}
if(cell.getCellType() != cell.CELL_TYPE_NUMERIC){
errorMsg += "第" + rowNum + "行课程id不是整数!\n";
continue;
}
int courseId = new Double(cell.getNumericCellValue()).intValue();
//获取第2列,成绩
cell = row.getCell(2);
if(cell == null){
errorMsg += "第" + rowNum + "行成绩缺失!\n";
continue;
}
if(cell.getCellType() != cell.CELL_TYPE_NUMERIC){
errorMsg += "第" + rowNum + "行成绩类型不是数字!\n";
continue;
}
double scoreValue = cell.getNumericCellValue();
//获取第3列,备注
Integer pageSize = request.getParameter("rows") == null ? 999 : Integer.parseInt(request.getParameter("rows"));
Integer clazz = request.getParameter("clazzid") == null ? 0 : Integer.parseInt(request.getParameter("clazzid"));
//获取当前登录用户类型
int userType = Integer.parseInt(request.getSession().getAttribute("userType").toString());
Teacher teacher = new Teacher();
teacher.setName(name);
teacher.setClazzId(clazz);
if(userType == 3){
//如果是学生,只能查看自己的信息
Teacher currentUser = (Teacher)request.getSession().getAttribute("user");
teacher.setId(currentUser.getId());
}
TeacherDao teacherDao = new TeacherDao();
List<Teacher> teacherList = teacherDao.getTeacherList(teacher, new Page(currentPage, pageSize));
int total = teacherDao.getTeacherListTotal(teacher);
teacherDao.closeCon();
response.setCharacterEncoding("UTF-8");
Map<String, Object> ret = new HashMap<String, Object>();
ret.put("total", total);
ret.put("rows", teacherList);
try {
String from = request.getParameter("from");
if("combox".equals(from)){
response.getWriter().write(JSONArray.fromObject(teacherList).toString());
}else{
response.getWriter().write(JSONObject.fromObject(ret).toString());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void addTeacher(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
String name = request.getParameter("name");
String password = request.getParameter("password");
String sex = request.getParameter("sex");
String mobile = request.getParameter("mobile");
String qq = request.getParameter("qq");
int clazzId = Integer.parseInt(request.getParameter("clazzid"));
Teacher teacher = new Teacher();
teacher.setClazzId(clazzId);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
studentDao.closeCon();
}
}
}
private void studentList(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
try {
request.getRequestDispatcher("view/studentList.jsp").forward(request, response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class SelectedCourseServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 7120913402001186955L;
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{