——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明






基于javaweb的SpringBoot在线选课系统(java+springboot+html+thymeleaf+ssm+maven+mysql)
1 2 3 4 5 6 7
| 管理员 admin 123456
学生 111 123456 222 123456 333 123456
|
学生可以筛选课程,选课,退选等
管理员可以管理课程,查询选课结果等
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| String uploadFileName = System.currentTimeMillis() + "";
String uploadFileSuffix = uploadFilePath.substring( uploadFilePath.indexOf('.') + 1 , uploadFilePath.length());
String uuid = UUID.randomUUID().toString().replace("-" , ""); uploadFileName = uploadFileName + "_" + uuid;
String path = request.getServletContext().getRealPath("/img"); new File(path).mkdirs();
String dbPath = "/img/" + uploadFileName + "." + uploadFileSuffix; stream = new BufferedOutputStream(new FileOutputStream(new File( path , uploadFileName + "." + uploadFileSuffix)));
byte[] bytes = file.getBytes(); stream.write(bytes , 0 , bytes.length); logger.debug("文件上传成功 " + uploadFileName);
return dbPath;
}catch(Exception e){ e.printStackTrace(); }finally{ try{ if(stream != null){ stream.close(); } }catch(IOException e){ e.printStackTrace(); } } } return null; } } package cn.gdpu.config.security.handler;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| UserCourseDAO userCourseDAO;
public User login(String username){ return adminDAO.login(username); }
public void excelOut(HttpServletResponse response) throws IOException{ int count = 0; String[] header = {"学生id" , "姓名" , "学号" , "专业" }; List<User> users = userDAO.selectAll(); List<SelectableCourse> courses = selectableCourseDAO.selectedCourses(); List<UserCourse> userCourses = userCourseDAO.selectAll(); HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("学生选课表"); sheet.setDefaultColumnWidth(10);
for(SelectableCourse cours : courses){
HSSFRow headrow = sheet.createRow(count); HSSFCell cell = headrow.createCell(0); HSSFRichTextString text = new HSSFRichTextString("课程名称:"+cours.getCourseName()+" 任课老师:"+cours.getTeacher()+" 上课时间:"+cours.getAddress()); cell.setCellValue(text); count++; HSSFRow row = sheet.createRow(count); for(int i = 0 ; i < header.length ; i++){ HSSFCell cellRow = row.createCell(i);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| if(user == null) throw new UsernameNotFoundException("Username " + username + " not found"); return new SecurityUser(user); } }; }
} package cn.gdpu.controller;
@RestController @RequestMapping("/course") @Api public class SelectableCourseController{
@Autowired SelectableCourseService selectableCourseService;
@PostMapping("/getAll") public Object getAll(@RequestParam(value = "page", defaultValue = "1") int page ,
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| @Autowired private VerifyCodeFilter verifyCodeFilter;
@Override protected void configure(HttpSecurity http) throws Exception{ http.csrf().disable(); http.authorizeRequests(). antMatchers("/static/**" ,"/getCode","/login","/logout", "resources").permitAll().anyRequest().authenticated(). and().formLogin().loginPage("/login").failureForwardUrl("/login?error=true").permitAll(). successForwardUrl("/success").defaultSuccessUrl("/success") .successHandler(loginSuccessHandler()) . and().logout().logoutSuccessUrl("/login").invalidateHttpSession(true).deleteCookies("JSESSIONID").logoutSuccessHandler(logoutSuccessHandler()). and().rememberMe(). and().sessionManagement().maximumSessions(1).expiredUrl("/login"); http.addFilterBefore(verifyCodeFilter, UsernamePasswordAuthenticationFilter.class); }
@Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{ auth.userDetailsService(userDetailsService()).passwordEncoder(passwordEncoder()); auth.eraseCredentials(false); }
@Bean public TokenBasedRememberMeServices tokenBasedRememberMeServices(){ return new TokenBasedRememberMeServices("springRocks" , userDetailsService()); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| httpServletResponse.sendRedirect("/login"); } }; }
@Bean public SavedRequestAwareAuthenticationSuccessHandler loginSuccessHandler(){ return new SavedRequestAwareAuthenticationSuccessHandler(){ @Override public void onAuthenticationSuccess(HttpServletRequest request , HttpServletResponse response , Authentication authentication) throws IOException, ServletException{ User userDetails = (User) authentication.getPrincipal(); logger.info("用户 : " + userDetails.getUsername() + " 登录成功! "); super.onAuthenticationSuccess(request , response , authentication); } }; }
@Bean @Override public UserDetailsService userDetailsService(){ return new UserDetailsService(){ @Autowired private UserService userService; @Autowired private AdminService adminService;
@Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException{ User user = null; if("admin".equals(username)){ user = adminService.login(username); }else{ user = userService.login(username); } if(user == null) throw new UsernameNotFoundException("Username " + username + " not found"); return new SecurityUser(user); } }; }
} package cn.gdpu.controller;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
public void excelOut(HttpServletResponse response) throws IOException{ int count = 0; String[] header = {"学生id" , "姓名" , "学号" , "专业" }; List<User> users = userDAO.selectAll(); List<SelectableCourse> courses = selectableCourseDAO.selectedCourses(); List<UserCourse> userCourses = userCourseDAO.selectAll(); HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("学生选课表"); sheet.setDefaultColumnWidth(10);
for(SelectableCourse cours : courses){
HSSFRow headrow = sheet.createRow(count); HSSFCell cell = headrow.createCell(0); HSSFRichTextString text = new HSSFRichTextString("课程名称:"+cours.getCourseName()+" 任课老师:"+cours.getTeacher()+" 上课时间:"+cours.getAddress()); cell.setCellValue(text); count++; HSSFRow row = sheet.createRow(count); for(int i = 0 ; i < header.length ; i++){ HSSFCell cellRow = row.createCell(i); HSSFRichTextString head2 = new HSSFRichTextString(header[i]); cellRow.setCellValue(head2); } count++; for(UserCourse uc : userCourses){
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=171422282105200cr
https://javayms.pages.dev?id=171422282105200cr