Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計(jì)管理系統(tǒng)的實(shí)現(xiàn)流程
一、項(xiàng)目簡述
功能包括: 該系統(tǒng)不錯(cuò)分為學(xué)生,教師,管理員,教導(dǎo)主任四種角 色,包括學(xué)生管理,教師管理,學(xué)生選題,教師選題,主 任審核,管理員審核,開題報(bào)告,中期檢查,論文提交, 文件管理等等非常不錯(cuò)。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
用戶管理操作控制層:
/** * 用戶管理操作 */ @Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; /** * 用戶添加頁面 * @return */ @GetMapping("/add") public String create() { return "user/add"; } /** * 用戶添加操作 * @param user * @return */ @PostMapping("/add") @ResponseBody public Map<String, Object> add(@RequestBody User user) { if(StringUtils.isEmpty(user.getUserName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懹脩裘?).getMap(); } if(StringUtils.isEmpty(user.getName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨Q").getMap(); } if(StringUtils.isEmpty(user.getUserPwd())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨艽a").getMap(); } int result = userService.create(user); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } /** * 根據(jù)id刪除 * @param id * @return */ @PostMapping("/delete/{id}") @ResponseBody public Map<String, Object> delete(@PathVariable("id") Integer id) { int result = userService.delete(id); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } //批量刪除 @PostMapping("/delete") @ResponseBody public Map<String, Object> delete(String ids) { int result = userService.delete(ids); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } /** * 編輯用戶信息操作 * @param user * @return */ @PostMapping("/edit") @ResponseBody public Map<String, Object> edit(@RequestBody User user) { if(StringUtils.isEmpty(user.getUserName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懹脩裘?).getMap(); } if(StringUtils.isEmpty(user.getName())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨Q").getMap(); } if(StringUtils.isEmpty(user.getUserPwd())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懨艽a").getMap(); } int result = userService.update(user); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } /** * 根據(jù)id查詢,跳轉(zhuǎn)修改頁面 * @param id * @param modelMap * @return */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap modelMap) { User user = userService.detail(id); modelMap.addAttribute("user", user); return "user/edit"; } //查詢所有 @PostMapping("/query") @ResponseBody public Map<String, Object> query(@RequestBody User user) { List<User> list = userService.query(user); Integer count = userService.count(user); return MapControl.getInstance().success().page(list, count).getMap(); } //跳轉(zhuǎn)列表頁面 @GetMapping("/list") public String list() { return "user/list"; } }
跳轉(zhuǎn)首頁判斷以及數(shù)據(jù)展示圖表:
@Controller public class IndexController { @Autowired UserService userService; @Autowired TeacherService teacherService; @Autowired StudentService studentService; @Autowired ClazzService clazzService; @Autowired SubjectService subjectService; @Autowired CourseService courseService; @Autowired SectionService sectionService; @Autowired ScoreService scoreService; //跳轉(zhuǎn)系統(tǒng)主頁 @GetMapping("/index") public String login() { return "index"; } //跳轉(zhuǎn)用戶基本信息頁面 @GetMapping("/info") public String info() { return "info"; } //跳轉(zhuǎn)修改密碼頁面 @GetMapping("/pwd") public String pwd() { return "pwd"; } //修改密碼 根據(jù)舊密碼來修改密碼 @PostMapping("/pwd") @ResponseBody public Map<String,Object> pwd(String sourcePwd,String newPwd,String type,Integer id) { //先判斷類型 if("1".equals(type)) { User user = userService.detail(id); //比較原密碼是否相同 注意:原密碼也要加密后再進(jìn)行比較,因?yàn)閿?shù)據(jù)庫中存儲(chǔ)的是加密后的密碼 if(user.getUserPwd().equals(MD5Utils.getMD5(sourcePwd))) { User entity = new User(); entity.setId(id); entity.setUserPwd(MD5Utils.getMD5(newPwd)); //主要要加密 int result = userService.update(entity); if(result <= 0) { return MapControl.getInstance().error().getMap(); } else { return MapControl.getInstance().success().getMap(); } } else { return MapControl.getInstance().error("原密碼錯(cuò)誤").getMap(); } } if("2".equals(type)) { Teacher teacher = teacherService.detail(id); //比較原密碼 if(teacher.getTeacherPwd().equals(MD5Utils.getMD5(sourcePwd))) { Teacher entity = new Teacher(); entity.setId(id); entity.setTeacherPwd(MD5Utils.getMD5(newPwd)); int result = teacherService.update(entity); if(result <= 0) { return MapControl.getInstance().error().getMap(); } else { return MapControl.getInstance().success().getMap(); } } else { return MapControl.getInstance().error("原密碼錯(cuò)誤").getMap(); } } if("3".equals(type)) { Student student = studentService.detail(id); //比較原密碼 if(student.getStuPwd().equals(MD5Utils.getMD5(sourcePwd))) { Student entity = new Student(); entity.setId(id); entity.setStuPwd(MD5Utils.getMD5(newPwd)); int result = studentService.update(entity); if(result <= 0) { return MapControl.getInstance().error().getMap(); } else { return MapControl.getInstance().success().getMap(); } } else { return MapControl.getInstance().error("原密碼錯(cuò)誤").getMap(); } } return MapControl.getInstance().error().getMap(); } //跳轉(zhuǎn)系統(tǒng)主頁(數(shù)據(jù)概覽) @GetMapping("/main") public String main(ModelMap modelMap) { //1.系統(tǒng)數(shù)據(jù)概覽 List<Clazz> clazzes = clazzService.query(null); List<Subject> subjects = subjectService.query(null); List<Teacher> teachers = teacherService.query(null); List<Course> courses = courseService.query(null); List<Section> sections = sectionService.query(null); List<Student> students = studentService.query(null); modelMap.addAttribute("clazzCnt",clazzes.size()); modelMap.addAttribute("subjectCnt",subjects.size()); modelMap.addAttribute("teacherCnt",teachers.size()); modelMap.addAttribute("courseCnt",courses.size()); modelMap.addAttribute("studentCnt",students.size()); modelMap.addAttribute("sectionCnt",sections.size()); //2.班級(jí)學(xué)生數(shù)量 List<Map<String,Object>> mapList = new ArrayList<>(); for(Clazz clazz : clazzes) { Map<String,Object> map = new HashMap<>(); map.put("name",clazz.getClazzName()); //設(shè)置班級(jí)名稱 int cnt = 0; //統(tǒng)計(jì)學(xué)生數(shù)量 for(Student student : students) { if(student.getClazzId() == clazz.getId()) { cnt++; } } map.put("cnt",cnt); //設(shè)置學(xué)生數(shù)量 mapList.add(map); } modelMap.addAttribute("mapList",mapList); //3.查詢各科平均成績(根據(jù)專業(yè)查詢各科平均成績) List<HashMap> mapList2 = scoreService.queryAvgScoreBySection(); modelMap.addAttribute("mapList2",mapList2); return "main"; } }
公告管理控制器:
/** * 公告管理控制器 */ @Controller @RequestMapping("/notice") public class NoticeController { @Autowired private NoticeService noticeService; //跳轉(zhuǎn)添加頁面 @GetMapping("/add") public String add() { return "notice/add"; } /** * 公告添加 * @param notice * @return */ @PostMapping("/add") @ResponseBody public Map<String, Object> add(Notice notice, HttpServletRequest request) { if(StringUtils.isEmpty(notice.getTitle())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懝鏄?biāo)題").getMap(); } if(StringUtils.isEmpty(notice.getContent())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懝鎯?nèi)容").getMap(); } User user = (User) request.getSession().getAttribute("user"); notice.setAuthor(user.getUserName()); notice.setAuth("1"); int result = noticeService.create(notice); if (result <= 0) { //新增失敗 return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } //根據(jù)id刪除 @PostMapping("/delete/{id}") @ResponseBody public Map<String, Object> delete(@PathVariable("id") Integer id) { int result = noticeService.delete(id); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } //批量刪除 @PostMapping("/delete") @ResponseBody public Map<String, Object> delete(String ids) { int result = noticeService.delete(ids); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } /** * 修改公告操作 * @param notice * @return */ @PostMapping("/edit") @ResponseBody public Map<String, Object> edit(@RequestBody Notice notice) { if(StringUtils.isEmpty(notice.getTitle())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懝鏄?biāo)題").getMap(); } if(StringUtils.isEmpty(notice.getContent())){ return MapControl.getInstance().error("請(qǐng)?zhí)顚懝鎯?nèi)容").getMap(); } int result = noticeService.update(notice); if (result <= 0) { return MapControl.getInstance().error().getMap(); } return MapControl.getInstance().success().getMap(); } //根據(jù)id查詢,跳轉(zhuǎn)修改頁面 @GetMapping("/edit/{id}") public String edit(@PathVariable Integer id, ModelMap modelMap) { //查詢要修改的老師 Notice notice = noticeService.detail(id); modelMap.addAttribute("notice", notice); return "notice/edit"; } //根據(jù)id查詢,跳轉(zhuǎn)添加頁面 @GetMapping("/look/{id}") public String look(@PathVariable Integer id, ModelMap modelMap) { Notice notice = noticeService.detail(id); modelMap.addAttribute("notice", notice); return "notice/look"; } //查詢所有 @PostMapping("/query") @ResponseBody public Map<String, Object> query(@RequestBody Notice notice) { List<Notice> list = noticeService.query(notice); Integer count = noticeService.count(notice); return MapControl.getInstance().success().put("data", list).put("count", count).getMap(); } //跳轉(zhuǎn)列表頁面 @GetMapping("/list") public String list() { return "notice/list"; } }
登陸用戶判斷業(yè)務(wù)控制層:
@Controller public class LoginController { @Autowired private UserService userService; @Autowired private TeacherService teacherService; @Autowired private StudentService studentService; //跳轉(zhuǎn)登錄頁面 @GetMapping("/login") public String login() { return "login"; } //登錄操作 @PostMapping("/login") @ResponseBody public Map<String, Object> login(String userName, String password, String captcha, String type, HttpSession session) { //判斷用戶名、密碼、用戶類型、驗(yàn)證碼是否為空 if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password) || StringUtils.isEmpty(captcha) || StringUtils.isEmpty(type)) { return MapControl.getInstance().error("用戶名或密碼不能為空").getMap(); } //獲取系統(tǒng)生成的驗(yàn)證碼 String _captcha = (String) session.getAttribute("captcha"); //先判斷驗(yàn)證碼是否正確 if (!(captcha.toLowerCase()).equals(_captcha.toLowerCase())) { //驗(yàn)證碼錯(cuò)誤 return MapControl.getInstance().error("驗(yàn)證碼錯(cuò)誤").getMap(); } //判斷用戶類型 if ("1".equals(type)) { //管理員驗(yàn)證登錄 User user = userService.login(userName, MD5Utils.getMD5(password)); //對(duì)密碼進(jìn)行加密處理,因?yàn)閿?shù)據(jù)庫中存儲(chǔ)的是加密后的密碼 if (user != null) { session.setAttribute("user", user); session.setAttribute("type", 1); return MapControl.getInstance().success().add("data", user).getMap(); } else { return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap(); } } if ("2".equals(type)) { //老師驗(yàn)證登錄 Teacher teacher = teacherService.login(userName, MD5Utils.getMD5(password)); if (teacher != null) { session.setAttribute("user", teacher); session.setAttribute("type", "2"); return MapControl.getInstance().success().add("data", teacher).getMap(); } else { return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap(); } } if ("3".equals(type)) { //學(xué)生驗(yàn)證登錄 Student student = studentService.login(userName, MD5Utils.getMD5(password)); if (student != null) { session.setAttribute("user", student); session.setAttribute("type", "3"); return MapControl.getInstance().success().add("data", student).getMap(); } else { return MapControl.getInstance().error("用戶名或密碼錯(cuò)誤").getMap(); } } return MapControl.getInstance().getMap(); } }
到此這篇關(guān)于Java 實(shí)戰(zhàn)項(xiàng)目之畢業(yè)設(shè)計(jì)管理系統(tǒng)的實(shí)現(xiàn)流程的文章就介紹到這了,更多相關(guān)Java 畢業(yè)設(shè)計(jì)管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之寵物商城系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之倉庫管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)戰(zhàn)項(xiàng)目之校園跑腿管理系統(tǒng)的實(shí)現(xiàn)
- Java實(shí)戰(zhàn)項(xiàng)目練習(xí)之球館在線預(yù)約系統(tǒng)的實(shí)現(xiàn)
- Java?實(shí)戰(zhàn)項(xiàng)目之家政服務(wù)平臺(tái)系統(tǒng)的實(shí)現(xiàn)流程
- Java?實(shí)戰(zhàn)項(xiàng)目之學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn)流程
- Java實(shí)例項(xiàng)目零錢通的實(shí)現(xiàn)流程
相關(guān)文章
Java web三件套listener、filter、servelt原理解析
這篇文章主要介紹了Java web三件套listener、filter、servelt原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Java Socket使用加密協(xié)議進(jìn)行傳輸對(duì)象的方法
這篇文章主要介紹了Java Socket使用加密協(xié)議進(jìn)行傳輸對(duì)象的方法,結(jié)合實(shí)例形式分析了java socket加密協(xié)議相關(guān)接口與類的調(diào)用方法,以及服務(wù)器、客戶端實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):線性表
這篇文章主要介紹了Java的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對(duì)廣大的程序愛好者有所幫助,同時(shí)祝大家有一個(gè)好成績,需要的朋友可以參考下,希望能給你帶來幫助2021-07-07spring?cloud?gateway中netty線程池小優(yōu)化
這篇文章主要介紹了spring?cloud?gateway中netty線程池小優(yōu)化技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07SpringBoot Web開發(fā)之系統(tǒng)任務(wù)啟動(dòng)與路徑映射和框架整合
這篇文章主要介紹了SpringBoot Web開發(fā)中的系統(tǒng)任務(wù)啟動(dòng)與路徑映射和Servlet、Filter、Listener框架整合,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Java Web使用POI導(dǎo)出Excel的方法詳解
這篇文章主要介紹了Java Web使用POI導(dǎo)出Excel的方法,結(jié)合實(shí)例形式詳細(xì)分析了Java Web使用POI導(dǎo)出Excel的具體操作步驟、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-06-06Java探索之Hibernate主鍵生成策略詳細(xì)介紹
這篇文章主要介紹了Java探索之Hibernate主鍵生成策略詳細(xì)介紹,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10