作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
学生角色包含以下功能:
个人信息修改,成绩查看,班级通讯录查看等功能。
教师角色包含以下功能:
个人信息修改,成绩登记,成绩统计,查看通讯录,添加考试,登陆页面等功能。
管理员角色包含以下功能:
学生信息增删改查,年级信息管理,教师信息增删改查,班级信息管理,系统设置,考试信息增删改查,课程信息管理等功能。
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
更多项目源码,请到“源码空间站”,地址:http://www.shuyue.fun/
环境需要
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.数据库:MySql 5.7版本;
技术栈
HTML+CSS+JavaScript+jsp+mysql
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/login.jsp 登录
运行截图
相关代码
管理员控制器
@Controller
@RequestMapping(value="/auth")
public class AuthController {
@Autowired
AuthService authService;
@ResponseBody
@RequestMapping(value="/list")
public String getAuthList(@RequestParam(defaultValue="0")int curr,@RequestParam(defaultValue="10")int nums,
@RequestParam(defaultValue="")String searchKey) {
Pagination<Auth> page = new Pagination<Auth>();
page.setTotalItemsCount(authService.getTotalItemsCount(searchKey));
page.setPageSize(nums);
page.setPageNum(curr);
List<Auth> list = authService.getAuthList(page, searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR + page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;
return jsonStr;
}
@ResponseBody
@RequestMapping(value="/setting")
public String setting(Auth auth, String type, Byte val) {
if ("teacherAuth".equals(type)) {
auth.setTeacherAuth(val);
} else {
auth.setStudentAuth(val);
}
System.out.println(auth.toString());
if (authService.update(auth) > 0) return StrUtil.RESULT_TRUE;
return "操作失败!";
}
}
课程管理控制器
@Controller
@RequestMapping(value="/course")
public class CourseController {
@Autowired
CourseService courseService;
@ResponseBody
@RequestMapping(value="/list")
public String getCourseList(@RequestParam(defaultValue="0")int curr,
@RequestParam(defaultValue="20")int nums,
@RequestParam(defaultValue="")String searchKey) {
Pagination<Course> page = new Pagination<Course>();
page.setTotalItemsCount(courseService.getTotalItemsCount(searchKey));
page.setPageSize(nums);
page.setPageNum(curr);
List<Course> list = courseService.getCourseList(page,searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list)
+ StrUtil.RETURN_JONS_END_STR;
System.out.println(jsonStr);
return jsonStr;
}
/**
* 返回教师自己教的课程列表
*/
@ResponseBody
@RequestMapping(value="/getMyCourse")
public String getMyCourse(@RequestParam(defaultValue="0")int curr,
@RequestParam(defaultValue="10")int nums, HttpSession session) {
Pagination<Course> page = new Pagination<Course>();
Teacher t = (Teacher) session.getAttribute(StrUtil.USER);
page.setTotalItemsCount(courseService.getTotalItemsCountByTid(t.getId()));
page.setPageSize(nums);
page.setPageNum(curr);
List<Course> list = courseService.getCourseListByTid(page, t.getId());
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list)
+ StrUtil.RETURN_JONS_END_STR;
System.out.println(jsonStr);
return jsonStr;
}
/**
* 返回可选课程列表(可选:人数未满、课程开始时间在当前时间之后)
* @param curr
* @param nums
* @param searchKey
* @return
*/
@ResponseBody
@RequestMapping(value="/choiceList")
public String getCourseChoiceList(@RequestParam(defaultValue="0")int curr,
@RequestParam(defaultValue="30")int nums, @RequestParam(defaultValue="1") int isAll,
@RequestParam(defaultValue="")String searchKey, HttpSession session) {
Pagination<Course> page = new Pagination<Course>();
String sId = ((Student) session.getAttribute(StrUtil.USER)).getId();
page.setTotalItemsCount(courseService.getTotalItemsCountBySid(isAll, searchKey, sId));
page.setPageSize(nums);
page.setPageNum(curr);
List<Course> list = courseService.getCourseListBySid(page, isAll, searchKey, sId);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list)
+ StrUtil.RETURN_JONS_END_STR;
System.out.println(isAll+"sid"+sId);
System.out.println(jsonStr);
return jsonStr;
}
@RequestMapping(value="/addPage")
public ModelAndView toAddPage() {
return new ModelAndView("courseAdd");
}
/**
* 增加,或者修改Course
* @param Course
* @return
*/
@ResponseBody
@RequestMapping(value="/add")
public String addCourse(Course course) {
int res = 0;
if (course.getId() == null || course.getId().equals("")) {
try {
res = courseService.addCourse(course);
} catch (Exception e) {
e.printStackTrace();
System.out.println("添加失败!");
return "添加失败!";
}
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else {
res = courseService.updateCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
}
@ResponseBody
@RequestMapping(value="/complete")
public String complete(Course course) {
int res = courseService.completeCourse(course);
if (res > 0) return StrUtil.RESULT_TRUE;
return "操作失败!";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteStudnet(Course c) {
if (courseService.deleteCourse(c) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param cIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteStudnetList(String cIds) {
List<Integer> list = new ArrayList<Integer>();
try {
String[] ids = cIds.split(",");
for (String id: ids) {
list.add(Integer.parseInt(id));
}
if (courseService.deleteCourse(list) > 0) {
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
}
}
公告管理控制器
@Controller
@RequestMapping(value="notice")
public class NoticeController {
private static final Integer AUTH_A = 3;
private static final Integer AUTH_T = 2;
private static final Integer AUTH_S = 1;
@Autowired
private NoticeService noticeService;
@ResponseBody
@RequestMapping(value="/list")
public String getNoticeList(@RequestParam(defaultValue="0")int curr,
@RequestParam(defaultValue="20")int nums,
@RequestParam(defaultValue="")String searchKey,
HttpSession session) {
Pagination<Student> page = new Pagination<Student>();
page.setPageSize(nums);
page.setPageNum(curr);
List<Notice> list = new ArrayList<Notice>();
User user = (User) session.getAttribute(StrUtil.USER);
Integer auth = null;
if (user.getUserType().equals(StrUtil.ADMIN)) {
auth = AUTH_A;
} else if (user.getUserType().equals(StrUtil.TEACHER)) {
auth = AUTH_T;
} else if (user.getUserType().equals(StrUtil.STUDENT)) {
auth = AUTH_S;
}
page.setTotalItemsCount(noticeService.getTotalItemsCount(auth, searchKey));
list = noticeService.getNoticeList(page, auth, searchKey);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ page.getTotalItemsCount()
+ StrUtil.RETURN_JONS_MID_STR
+ JSON.toJSONString(list)
+ StrUtil.RETURN_JONS_END_STR;
return jsonStr;
}
/**
* 查看公告
* @param nId
* @param mav
* @return
*/
@RequestMapping(value="/info")
public ModelAndView showNoticeInfo(HttpSession session, Integer nId, ModelAndView mav) {
User user = (User) session.getAttribute(StrUtil.USER);
Integer auth = null;
if (user.getUserType().equals(StrUtil.ADMIN)) {
auth = AUTH_A;
} else if (user.getUserType().equals(StrUtil.TEACHER)) {
auth = AUTH_T;
} else if (user.getUserType().equals(StrUtil.STUDENT)) {
auth = AUTH_S;
}
Notice notice = noticeService.getNotice(nId);
//无权限查看
if (auth < notice.getAuth()) {
return new ModelAndView("404");
}
mav = new ModelAndView("notice");
mav.addObject("notice", notice);
return mav;
}
@RequestMapping(value="/look")
public ModelAndView showNotice(){
return new ModelAndView("notice");
}
@RequestMapping(value="/addPage")
public ModelAndView toAddPage() {
return new ModelAndView("noticeAdd");
}
/**
* 增加,或者修改notice
* @param opType
* @param notice
* @return
*/
@ResponseBody
@RequestMapping(value="/add")
public String addNotice(@RequestParam(defaultValue="2")Integer opType, Notice notice) {
int res = 0;
if (opType == 0) {
try {
res = noticeService.addNotice(notice);
} catch (Exception e) {
System.out.println("添加失败!");
return "添加失败!";
}
if (res > 0)
return StrUtil.RESULT_TRUE;
return "添加失败";
} else if (opType == 1) {
res = noticeService.updateNotice(notice);
if (res > 0) return StrUtil.RESULT_TRUE;
return "修改失败!";
}
return "error";
}
@ResponseBody
@RequestMapping(value="/delete")
public String deleteNotice(Notice notice) {
if (noticeService.deleteNotice(notice) > 0) return StrUtil.RESULT_TRUE;
return "删除失败!";
}
/**
* 批量删除
* @param stuIds
* @return
*/
@ResponseBody
@RequestMapping(value="/deleteList")
public String deleteNoticeList(String nIds) {
List<Integer> list = new ArrayList<Integer>();
try {
String[] ids = nIds.split(",");
for (String id: ids) {
list.add(Integer.parseInt(id));
}
if (noticeService.deleteNotice(list) > 0) {
return StrUtil.RESULT_TRUE;
}
} catch (Exception e) {
e.printStackTrace();
return "删除失败!参数出错!";//
}
return "删除失败!";
}
@ResponseBody
@RequestMapping(value="/uploadImg")
public String uploadImg(MultipartFile file,HttpServletRequest request) throws IOException{
System.out.println("comming!");
String path = request.getSession().getServletContext().getRealPath("/images");
System.out.println("path>>"+path);
String fileName = file.getOriginalFilename();
System.out.println("fileName>>"+fileName);
fileName = fileName.substring(fileName.lastIndexOf("."), fileName.length());
fileName = fileName + System.currentTimeMillis();
System.out.println("fileName>>"+fileName);
File dir = new File(path, fileName);
if(!dir.exists()){
dir.mkdirs();
}
// MultipartFile自带的解析方法
file.transferTo(dir);
String jsonStr = StrUtil.RETURN_JONS_PRE_STR
+ null
+ StrUtil.RETURN_JONS_MID_STR
+ "{\"src\":\"" + "/ssm_stumanager/images/" + fileName + "\"}"
+ StrUtil.RETURN_JONS_END_STR;
return jsonStr;
}
}
如果也想学习本系统,下面领取。关注并回复:088jsp