基于javaweb+mysql的ssm+maven在线作业提交批改系统(java+ssm+mysql+jsp+bootstrap)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM+Maven在线作业提交批改系统(java+ssm+mysql+jsp+bootstrap)
根路径:/
【code】目录复制到D盘:d:/code/file/work_submit/download/
管理员:
admin 123456
学生:
20001 123456
20002 123456
20003 123456
20004 123456
20005 123456
教师:
10001 123456
10002 123456
上传的文件最好用pdf格式
course.setNames(name);
//分页并查询
PageHelper.startPage(currPage,8);
List<Course> courses = courseMapper.findList(course);
System.out.println(courses);
PageInfo pageInfo = new PageInfo<Course>(courses,8);
//startPage后紧跟的这个查询就是分页查询
model.addAttribute("pas", pageInfo.getList());
//获得当前页
model.addAttribute("currPage", pageInfo.getPageNum());
//获得总页数
model.addAttribute("totalPage", pageInfo.getPages());
return "admin/course/list";
}
@RequestMapping(value="/gotoAddCourse")
public String gotoAddCourse(Model model){
return "admin/course/add";
}
/*
* 上传
*/
@RequestMapping(value="/addCourse", method = {RequestMethod.POST})
public String addCourse(Course course,HttpServletRequest request) {
System.out.println("course:"+course);
Course cl = courseMapper.findByName(course.getNames());
if(cl!=null) {
request.setAttribute("info", "课程名请勿重名!!!");
return "admin/course/fail";
}
courseMapper.insert(course);
return "redirect:/admin/course";
}
/**
*/
@RequestMapping(value="/courseDel")
public ModelAndView deleteEmp(Integer id){
courseMapper.delete(id);
ModelAndView modelAndView = new ModelAndView("redirect:/admin/course");
return modelAndView;
/**
* 去编辑页面
*/
// @RequestMapping(value="/gotoSelectCourse") public String
// gotoEditHotelType(Integer id,Map<String, Object> map){ //查询所有的课程
// List<Course> courses = courseMapper.findList(null); map.put("courses",
// courses); map.put("stu_id", id);
// return "tea/stu/charts/select"; }
@RequestMapping(value="/gotoSelectCourse")
public String gotoEditHotelType(Integer id,Map<String, Object> map){
//查询所有的课程
List<Course> courses = courseMapper.findList(null);
map.put("courses", courses);
map.put("stu_id", id);
return "tea/stu/charts/select";
}
///tea/gotoCharts
@RequestMapping(value="/gotoCharts")
public String gotoCharts(Integer
stu_id,Integer course_id,Map<String, Object> map){ //查询所有的课程
map.put("course_id", course_id);
map.put("stu_id", stu_id);
return "tea/stu/charts/charts"; }
///tea/getCharts?course_id='+course_id+"&stu_id="+stu_id
@RequestMapping(value="/getCharts")
@ResponseBody
public List<Info> getCharts(Integer stu_id,Integer course_id){
//查询所有的课程
List<Info> lisrInfo = infoMapper.findByStuAndCourse(stu_id, course_id);
System.out.println("折线图开始");
System.out.println(lisrInfo);
return lisrInfo;
}
* 绘制字符串
*/
private String drowString(Graphics g, String randomString, int i) {
g.setFont(getFont());
g.setColor(new Color(random.nextInt(101), random.nextInt(111), random.nextInt(121)));
String rand = String.valueOf(getRandomString(random.nextInt(randString.length())));
randomString += rand;
g.translate(random.nextInt(3), random.nextInt(3));
g.drawString(rand, 13 * i, 16);
return randomString;
}
/**
* 绘制干扰线
*/
private void drowLine(Graphics g) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(13);
int yl = random.nextInt(15);
g.drawLine(x, y, x + xl, y + yl);
}
/**
* 获取随机的字符
*/
public String getRandomString(int num) {
return String.valueOf(randString.charAt(num));
}
public static Boolean checkVerify(String verifiCode, HttpSession httpSession) {
if (StringUtils.isEmpty(verifiCode)) {
return false;
}
String random = (String) httpSession.getAttribute("RANDOMVALIDATECODEKEY");
if (StringUtils.isEmpty(random)) {
return false;
}
if (!random.equals(verifiCode)) {
return false;
}
return true;
}
}
if(currPage==null) {
currPage=1;
}
Course course = new Course();
course.setNames(name);
//分页并查询
PageHelper.startPage(currPage,8);
List<Course> courses = courseMapper.findList(course);
System.out.println(courses);
PageInfo pageInfo = new PageInfo<Course>(courses,8);
//startPage后紧跟的这个查询就是分页查询
model.addAttribute("pas", pageInfo.getList());
//获得当前页
model.addAttribute("currPage", pageInfo.getPageNum());
//获得总页数
model.addAttribute("totalPage", pageInfo.getPages());
return "admin/course/list";
}
@RequestMapping(value="/gotoAddCourse")
public String gotoAddCourse(Model model){
return "admin/course/add";
}
/*
* 上传
*/
@RequestMapping(value="/addCourse", method = {RequestMethod.POST})
public String addCourse(Course course,HttpServletRequest request) {
System.out.println("course:"+course);
Course cl = courseMapper.findByName(course.getNames());
if(cl!=null) {
request.setAttribute("info", "课程名请勿重名!!!");
return "admin/course/fail";
}
courseMapper.insert(course);
return "redirect:/admin/course";
}
/**
*/
@RequestMapping(value="/courseDel")
public ModelAndView deleteEmp(Integer id){
courseMapper.delete(id);
//获得当前页
model.addAttribute("currPage", pageInfo.getPageNum());
//获得总页数
model.addAttribute("totalPage", pageInfo.getPages());
return "tea/work/list";
}
@RequestMapping(value="/gotoAddWork")
public String gotoAddWork(Model model,HttpSession session){
Tea tea = (Tea) session.getAttribute("tea");
Clazz clazz = new Clazz();
clazz.setTea_id(tea.getId());
List<Clazz> clazzs = clazzMapper.findListByTeaId(clazz);
List<Course> courses = courseMapper.findList(null);
model.addAttribute("clazzs", clazzs);
model.addAttribute("courses", courses);
return "tea/work/add";
}
@RequestMapping(value="/addWork", method = {RequestMethod.POST})
public ModelAndView addVideo(Work work,BindingResult bindingResult,
@RequestParam("upload") MultipartFile upload,HttpSession session) {
//获取文件的保存路径
String path=fileBasePath+"work";
File dir = new File(path);
if(dir.exists() == true){
System.out.println("dirs is exists");
}else{
dir.mkdirs();
System.out.println(" created dirs");
}
//获取上传文件的名称
//String filename=upload.getOriginalFilename();
String filename=upload.getOriginalFilename();
try {
filename = URLEncoder.encode(filename,"UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//获取上传文件的扩展名
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("----------file download" + filename);
try {
bis.close();
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
}
ModelAndView modelAndView = new ModelAndView("redirect:/admin/tea");
return modelAndView;
}
/**
* 去编辑页面
*/
@RequestMapping(value="/gotoEditTea")
public String gotoEditHotelType(Integer id,Map<String, Object> map){
Tea tea =teaMapper.findById(id);
map.put("pa", tea);
return "admin/tea/edit";
}
@RequestMapping(value="/editTea", method = {RequestMethod.POST})
public ModelAndView editTea(Tea tea) {
System.out.println("tea:"+tea);
teaMapper.update(tea);
ModelAndView modelAndView = new ModelAndView("redirect:/admin/tea");
return modelAndView;
}
}
List<Clazz> clazzs =clazzMapper.findListByTeaId(clazz);
//查询所有的课程
map.put("clazzs", clazzs);
return "tea/workCommit/charts/selectClazz";
}
//findWork
@RequestMapping(value="/findWork")
@ResponseBody
public List<Work> findWork(Integer clazzId){
Work work = new Work();
work.setClazz_id(clazzId);
List<Work> list = workMapper.findListByClazzId(work);
return list;
}
///tea/gotoCharts
@RequestMapping(value="/gotoWorkCommitCharts")
public String gotoCharts(Integer clazz_id,Integer work_id,Map<String, Object> map){
//查询所有的课程
Work work = workMapper.findById(work_id);
String workTitle = work.getTitle();
map.put("clazz_id", clazz_id);
map.put("work_id", work_id);
map.put("workTitle", workTitle);
return "tea/workCommit/charts/charts";
}
///tea/getCharts?course_id='+course_id+"&stu_id="+stu_id
@RequestMapping(value="/getWorkCommitCharts")
@ResponseBody
public List<Info> getCharts(Integer clazz_id,Integer work_id){
//查询班级总人数
Integer total = stuMapper.findCountByClazzId(clazz_id);
//查询已经交作业的人数
Integer aready = workCommitMapper.findCountByWorkId(work_id);
Info info1 = new Info();
}
// 绘制随机字符
String randomString = "";
for (int i = 1; i <= stringNum; i++) {
randomString = drowString(g, randomString, i);
}
logger.info(randomString);
// 将生成的随机字符串保存到session中
session.removeAttribute(RANDOMCODEKEY);
session.setAttribute(RANDOMCODEKEY, randomString);
g.dispose();
try {
// 将内存中的图片通过流动形式输出到客户端
ImageIO.write(image, "JPEG", response.getOutputStream());
} catch (Exception e) {
logger.error("将内存中的图片通过流动形式输出到客户端失败>>>> ", e);
}
}
/**
* 绘制字符串
*/
private String drowString(Graphics g, String randomString, int i) {
g.setFont(getFont());
g.setColor(new Color(random.nextInt(101), random.nextInt(111), random.nextInt(121)));
String rand = String.valueOf(getRandomString(random.nextInt(randString.length())));
randomString += rand;
g.translate(random.nextInt(3), random.nextInt(3));
g.drawString(rand, 13 * i, 16);
return randomString;
}
/**
* 绘制干扰线
*/
private void drowLine(Graphics g) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(13);
int yl = random.nextInt(15);
g.drawLine(x, y, x + xl, y + yl);
@Autowired
private WorkCommitMapper workCommitMapper;
@Autowired
private ClazzMapper clazzMapper;
private static final String fileBasePath = "d:/code/file/work_submit/";
@Autowired
private WorkMapper workMapper;
@RequestMapping("/workCommit")
public String workCommit(Integer currPage,
String name,
Model model,HttpSession session){
if(currPage==null) {
currPage=1;
}
Stu stu = (Stu) session.getAttribute("stu");
WorkCommit workCommit = new WorkCommit();
workCommit.setStu_id(stu.getId());
//分页并查询
PageHelper.startPage(currPage,8);
List<WorkCommit> workCommits = workCommitMapper.findList(workCommit);
System.out.println(workCommits);
PageInfo pageInfo = new PageInfo<WorkCommit>(workCommits, 8);
//startPage后紧跟的这个查询就是分页查询
model.addAttribute("pas", pageInfo.getList());
//获得当前页
model.addAttribute("currPage", pageInfo.getPageNum());
//获得总页数
model.addAttribute("totalPage", pageInfo.getPages());
return "stu/workCommit/list";
}
@RequestMapping(value="/gotoAddWorkCommit")
public String gotoAddWorkCommit(Integer work_id,Model model){
model.addAttribute("work_id", work_id);
return "stu/workCommit/add";
}
/*
* 上传
*/
@RequestMapping(value="/addWorkCommit", method = {RequestMethod.POST})
* 退出登录
*/
@RequestMapping(value="loginOut")
public String userOut(HttpSession session){
session.invalidate();
return "main/login";
}
}
@Controller
@RequestMapping("/tea")
public class TeaStuController {
@Autowired
private StuMapper stuMapper;
@Autowired
private TeaMapper teaMapper;
@Autowired
private ClazzMapper clazzMapper;
Course course =courseMapper.findById(id);
map.put("pa", course);
return "admin/course/edit";
}
@RequestMapping(value="/editCourse", method = {RequestMethod.POST})
public ModelAndView editCourse(Course course) {
System.out.println("course:"+course);
courseMapper.update(course);
ModelAndView modelAndView = new ModelAndView("redirect:/admin/course");
return modelAndView;
}
}
@Controller
@RequestMapping("/admin")
public class AdminStuController {
@Autowired
private StuMapper stuMapper;
@Autowired
private ClazzMapper clazzMapper;
ModelAndView modelAndView = new ModelAndView("redirect:/admin/stu");
return modelAndView;
}
/**
* 去编辑页面
*/
@RequestMapping(value="/gotoEditStu")
public String gotoEditHotelType(Integer id,Map<String, Object> map){
List<Clazz> clazzs = clazzMapper.findList(null);
map.put("clazzs", clazzs);
Stu stu =stuMapper.findById(id);
map.put("pa", stu);
return "admin/stu/edit";
}
@RequestMapping(value="/editStu", method = {RequestMethod.POST})
public ModelAndView editStu(Stu stu) {
System.out.println("stu:"+stu);
stuMapper.update(stu);
ModelAndView modelAndView = new ModelAndView("redirect:/admin/stu");
return modelAndView;
}
}
map.put("stu_id", id);
return "tea/stu/charts/select";
}
///tea/gotoCharts
@RequestMapping(value="/gotoCharts")
public String gotoCharts(Integer
stu_id,Integer course_id,Map<String, Object> map){ //查询所有的课程
map.put("course_id", course_id);
map.put("stu_id", stu_id);
return "tea/stu/charts/charts"; }
///tea/getCharts?course_id='+course_id+"&stu_id="+stu_id
@RequestMapping(value="/getCharts")
@ResponseBody
public List<Info> getCharts(Integer stu_id,Integer course_id){
//查询所有的课程
List<Info> lisrInfo = infoMapper.findByStuAndCourse(stu_id, course_id);
System.out.println("折线图开始");
System.out.println(lisrInfo);
return lisrInfo;
}
//findWork
//findWork
/*
* @RequestMapping(value="/findWork1")
*
* @ResponseBody public List<Stu> findWork1(Integer stuId){ Stu stu = new Stu();
* stu.setCourse_id(stuId); List<Stu> list =
* workMapper.findListByCourseId(work); return list; }
*/
}
@Controller
@RequestMapping("/stu")
public class StuMsgController {
@Autowired
private MsgMapper msgMapper;
@RequestMapping("/msg")
public String msg(Integer tea_id,
Model model,HttpSession session){
Stu stu = (Stu) session.getAttribute("stu");
Msg msg = new Msg();
msg.setStu_id(stu.getId());
msg.setTea_id(tea_id);
List<Msg> stus = msgMapper.findList(msg);
System.out.println(stus);
model.addAttribute("pas", stus);
model.addAttribute("tea_id", tea_id);
return "stu/msg/list";
}
/*
* 回复
*/
public String gotoEditHotelType(Integer work_id,Integer id,Map<String, Object> map){
WorkCommit workCommits =workCommitMapper.findById(id);
map.put("pa", workCommits);
map.put("work_id", work_id);
return "tea/workCommit/edit";
}
@RequestMapping(value="/editWorkCommit", method = {RequestMethod.POST})
public ModelAndView editTea(Integer id,Integer work_id,WorkCommit workCommits,HttpSession session) throws Exception {
Tea tea = (Tea) session.getAttribute("tea");
Tea teadb = teaMapper.findById(tea.getId());
String username = teadb.getName();
System.out.println("workCommits:"+workCommits);
String grade = workCommits.getGrade();
//修改pdf
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formatStr =formatter.format(new Date());
WorkCommit workCommitsdb = workCommitMapper.findById(id);
String local =workCommitsdb.getWork_local();
String savepath = "d:/code/file/work_submit/work_commit/"+StringTools.getUUID()+".pdf";
PdfFiles.addContent(grade, username, formatStr, local, savepath);
workCommitsdb.setGrade(grade);
workCommitsdb.setWork_local(savepath);
workCommitMapper.update(workCommitsdb);
ModelAndView modelAndView = new ModelAndView("redirect:/tea/workCommit?work_id="+work_id);
return modelAndView;
}
///tea/workCommitShow?work_local=${pa.work_local}
@RequestMapping(value="/workCommitShow")
public void workCommitShow(String work_local,HttpServletResponse response) throws IOException{
//设置响应内容类型为PDF类型
response.setContentType("application/pdf");
ServletOutputStream sos = response.getOutputStream();
return modelAndView;
}
/**
*/
@RequestMapping(value="/stuDel")
public ModelAndView deleteEmp(Integer id){
stuMapper.delete(id);
ModelAndView modelAndView = new ModelAndView("redirect:/admin/stu");
return modelAndView;
}
/**
* 去编辑页面
*/
@RequestMapping(value="/gotoEditStu")
public String gotoEditHotelType(Integer id,Map<String, Object> map){
![请添加图片描述](https://img-blog.csdnimg.cn/direct/20156d7768fb4220ab1d65cce5be23e1.jpeg)
List<Clazz> clazzs = clazzMapper.findList(null);
map.put("clazzs", clazzs);
Stu stu =stuMapper.findById(id);
map.put("pa", stu);
return "admin/stu/edit";
}
@RequestMapping(value="/editStu", method = {RequestMethod.POST})
public ModelAndView editStu(Stu stu) {
System.out.println("stu:"+stu);
stuMapper.update(stu);
ModelAndView modelAndView = new ModelAndView("redirect:/admin/stu");
return modelAndView;
}
}