先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
正文
在校学生考试系统是一个功能非常完整的系统,界面简洁大方,用户交互性好,完整的包含了在校学生考试需要的相关功能:像题库管理,试卷管理,组卷管理,考试安排管理,在线考试,自动阅卷等功能均包含在内,比较适合做毕业设计使用,如果你选择了它,一定是一个优秀的毕业设计。
本系统角色分为三种:
管理员:可以对各类信息进行管理操作等
教师:主要进行试卷管理,试题管理和安排考试等
学生:主要进行系统参加考试,并进看考试分析结果等
下面一 一为大家展示系统的相关功能。
- 管理员登陆
http://localhost:8080/admin/login.jsp pcs / 123123
后台管理主界面:
年级管理
科目管理
班级管理:基本信息管理
班级管理:各班人数统计
教师管理:
学生管理:基本信息管理
学生管理:学生考试信息管理
试卷管理:
试题管理:
导入试题:
考试安排:
考试记录:
二,教师登陆系统
lyinping / 123456
考试登陆系统后一些基本信息只能查看,不能管理,但是可以管理学生、试卷、试题、安排考试,具体功能见管理员操作,不再一一截图。
三,学生登陆系统
user01 / 111111
学生在前台先注册再登陆:
进入考试中心进行考试:
答题考试
考试历史:回顾试卷
以上是在校学生考试系统的部分功能展示,所展示的各个功能模块增删改查的功能均能正常运行,功能十分强大,业务非常流畅,是一个难得的优秀系统。
系统实现的核心代码:
package com.taohan.online.exam.handler;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.google.gson.Gson;
import com.taohan.online.exam.service.ExamPaperInfoService;
import com.taohan.online.exam.service.StudentInfoService;
import com.taohan.online.exam.service.SubjectInfoService;
import com.taohan.online.exam.service.TeacherInfoService;
/**
-
Title: AdminHomeHandler
-
Description: 后台首页相关
-
@version: 1.0
*/
@Controller
public class AdminHomeHandler {
@Autowired
ExamPaperInfoService examPaperInfoService;
@Autowired
SubjectInfoService subjectInfoService;
@Autowired
TeacherInfoService teacherInfoService;
@Autowired
StudentInfoService studentInfoService;
@Autowired
Gson gson;
private Logger logger = Logger.getLogger(AdminHomeHandler.class);
@RequestMapping(“/homeInfo”)
public void homeInfo(HttpServletResponse response) throws IOException {
logger.info(“加载后台首页相关数据”);
int examPaperTotal = examPaperInfoService.getExamPpaerTotal();
int subjectTotal = subjectInfoService.getSubjectTotal();
int teacherTotal = teacherInfoService.getTeacherTotal();
int studentTotal = studentInfoService.getStudentTotal();
String json = “{“examPaperTotal”:”+examPaperTotal+", " +
““subjectTotal”:”+subjectTotal+", " +
““teacherTotal”:”+teacherTotal+", " +
““studentTotal”:”+studentTotal+“}”;
response.getWriter().print(json);
}
}
package com.taohan.online.exam.handler;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import com.google.gson.Gson;
import com.taohan.online.exam.charts.StudentCount;
import com.taohan.online.exam.po.ClassInfo;
import com.taohan.online.exam.po.GradeInfo;
import com.taohan.online.exam.po.TeacherInfo;
import com.taohan.online.exam.service.ClassInfoService;
import com.taohan.online.exam.service.GradeInfoService;
import com.taohan.online.exam.service.TeacherInfoService;
/**
-
Title: ClassInfoHandler
-
Description: 班级
-
@version: 1.0
*/
@Controller
@SuppressWarnings(“all”)
public class ClassInfoHandler {
@Autowired
private ClassInfoService classInfoService;
@Autowired
private GradeInfoService gradeInfoService;
@Autowired
private TeacherInfoService teacherInfoService;
@Autowired
private TeacherInfo teacher;
@Autowired
private ClassInfo classInfo;
@Autowired
private Gson gson;
private Logger logger = Logger.getLogger(ClassInfoHandler.class);
/**
-
获取所有班级
-
@param gradeId 年级编号
-
@param className 班级名称 可用于模糊查询
-
@param classId 班级编号
-
@return
*/
@RequestMapping(value=“/classes”, method=RequestMethod.GET)
public ModelAndView getClasses(@RequestParam(value=“gradeId”, required=false) Integer gradeId,
@RequestParam(value=“className”, required=false) String className,
@RequestParam(value=“classId”, required=false) Integer classId) {
logger.info(“获取班级集合 条件:gradeId: “+gradeId+”, 班级编号:”+classId+“, 班级:”+className);
ModelAndView model = new ModelAndView();
ClassInfo classInfo = new ClassInfo();
/处理查询条件/
if (gradeId != null) {
GradeInfo gradeInfo = new GradeInfo();
gradeInfo.setGradeId(gradeId);
classInfo.setGrade(gradeInfo);
}
if (classId != null)
classInfo.setClassId(classId);
if (className != null) {
if (className.trim() != “”)
classInfo.setClassName(className);
}
List classes = classInfoService.getClasses(classInfo);
model.setViewName(“admin/classes”);
model.addObject(“classes”, classes);
return model;
}
/**
-
预添加班级处理
-
@return
*/
@RequestMapping(“/preAddClass”)
public ModelAndView preAddClass() {
logger.info(“预添加班级信息”);
ModelAndView model = new ModelAndView();
//获取年级信息
List grades = gradeInfoService.getGrades();
model.setViewName(“admin/classedit”);
model.addObject(“grades”, grades);
//获取不是班主任的教师
teacher.setIsWork(0);
Map<String, Object> map = new HashMap<String, Object>();
map.put(“startIndex”, null);
map.put(“pageShow”, null);
map.put(“teacher”, teacher);
List teachers = teacherInfoService.getTeachers(map);
model.addObject(“teachers”, teachers);
model.addObject(“editClass”, new ClassInfo());
return model;
}
/**
-
添加班级
-
@param classInfo 班级信息
-
@param request
-
@return
*/
@RequestMapping(value=“/class”, method=RequestMethod.POST)
public String isAddClass(ClassInfo classInfo, HttpServletRequest request) {
logger.info("添加班级信息 "+classInfo);
//修改教师班主任状态
String returnMsg = isChangeTeacherWork(1, classInfo.getTeacher().getTeacherId());
if (returnMsg != null) {
request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”);
return “error”;
}
//添加
int row = classInfoService.isAddClass(classInfo);
if (row < 1) {
logger.error(“班级 “+classInfo+” 删除失败”);
request.setAttribute(“error”, “班级 “+classInfo.getClassName()+” 添加失败,请稍后再试!”);
return “…/error”;
}
return “redirect:/classes”;
}
/**
-
删除班级
-
@param classId 班级编号
-
@param request
-
@return
*/
@RequestMapping(value=“/del/class/{classId}”, method=RequestMethod.DELETE)
public String isDelClass(@PathVariable(“classId”) Integer classId, HttpServletRequest request) {
logger.info("删除班级 "+classId);
//将删除班级对于之前班主任改为 非班主任状态
//需要在删除班级之前修改,如果先删除了班级,再根据班级获取教师编号,就不能获取
ClassInfo delClass = classInfoService.getClassById(classId);
String returnMsg = isChangeTeacherWork(0, delClass.getTeacher().getTeacherId());
if (returnMsg != null) {
request.setAttribute(“error”, “修改教师班主任状态 对应教师编号有误”);
return “error”;
}
//删除
int row = classInfoService.isDelClass(classId);
if (row < 1) {
logger.error(“班级 “+classId+” 删除失败”);
request.setAttribute(“error”, “班级删除失败,请稍后再试!”);
return “…/error”;
}
return “redirect:/classes”;
}
/**
-
预修改班级处理
-
@param classId 班级编号
-
@return
*/
@RequestMapping(value=“edit/class/{classId}”, method=RequestMethod.GET)
public ModelAndView preUpdateClass(@PathVariable(“classId”) Integer classId) {
logger.info(“预修改班级处理”);
ModelAndView model = new ModelAndView();
//获取要修改班级
ClassInfo classInfo = classInfoService.getClassById(classId);
model.setViewName(“/admin/classedit”);
model.addObject(“editClass”, classInfo);
List grades = gradeInfoService.getGrades();
//获取不是班主任的教师
teacher.setIsWork(0);
Map<String, Object> map = new HashMap<String, Object>();
map.put(“startIndex”, null);
map.put(“pageShow”, null);
map.put(“teacher”, teacher);
List teachers = teacherInfoService.getTeachers(map);
//如果没有可用班主任
if (teachers.size() == 0 || teachers == null) {
teacher.setTeacherId(classInfo.getTeacher().getTeacherId());
teacher.setTeacherName(“暂无剩余教师”);
teachers.add(teacher);
}
model.addObject(“teachers”, teachers);
model.addObject(“grades”, grades);
return model;
}
最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
rs);
model.addObject(“grades”, grades);
return model;
}
最后
经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。
[外链图片转存中…(img-uHVGLLWV-1713695139857)]
[外链图片转存中…(img-ZSgESQ08-1713695139857)]
[外链图片转存中…(img-llR7JG5O-1713695139858)]
[外链图片转存中…(img-0xoQP26y-1713695139858)]
[外链图片转存中…(img-P0vy2xSy-1713695139859)]
[外链图片转存中…(img-TqvxF8vj-1713695139859)]
[外链图片转存中…(img-OwUWEtzb-1713695139860)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-UfUrq65l-1713695139860)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!