基于javaweb的SSM+Maven在线作业提交批改系统(java+ssm+mysql+jsp+bootstrap)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

302023110609

312023110609

322023110609

342023110609

352023110609

362023110609

372023110609

382023110609

392023110609

402023110609

412023110609

基于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格式

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
	}





}








@Controller
@RequestMapping("/tea")
public class TeaWorkCommitChartsController {

@Autowired
private StuMapper stuMapper;

@Autowired
private WorkCommitMapper workCommitMapper;

@Autowired
private WorkMapper workMapper;

@Autowired
private ClazzMapper clazzMapper;
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
	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();
}
//获取上传文件的扩展名
String suffix=filename.substring(filename.lastIndexOf("."));
//为了防止上传文件同名,需要给上传文件重新命名
String tempFileName=suffix;
File dest = new File(path + "/" + tempFileName);
try {
upload.transferTo(dest); //保存文件
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

work.setPath(path + "/" + tempFileName);




SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatStr =formatter.format(new Date());

work.setCreate_time(formatStr);

workMapper.insert(work);

//添加作业,添加公告
WorkNotice notice = new WorkNotice();
notice.setContent(work.getContent());
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
		return "tea/stu/list";
}

/**
* 去编辑页面
*/
@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 "tea/stu/edit";
}


}


public class SimpleCORSFilter implements Filter {
private boolean isCross = false;

@Override
public void destroy() {
isCross = false;
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
if (isCross) {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
System.out.println("拦截请求: " + httpServletRequest.getServletPath());
httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
httpServletResponse.setHeader("Access-Control-Max-Age", "0");
httpServletResponse.setHeader("Access-Control-Allow-Headers",
"Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");
httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");
httpServletResponse.setHeader("XDomainRequestAllowed", "1");
}
1
2
3
4
5





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
	}
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})
public String addWorkCommit(WorkCommit workCommit,BindingResult bindingResult,
@RequestParam("upload") MultipartFile upload,HttpSession session,HttpServletRequest request) {

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatStr =formatter.format(new Date());
Integer work_id = workCommit.getWork_id();
//查询截止时间
Work work = workMapper.findById(work_id);
String endTime =work.getEnd_time();

int result = formatStr.compareTo(endTime);
if(result>0) {//已经结束
request.setAttribute("info", "作业已过期,提交失败!!!");
return "stu/workCommit/fail";
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
48
49
50
       }  
return null;
}


/**
* 文件下载
* @param response
* @param str
*/
private void downFile(HttpServletResponse response, String str) {
try {
String FilePath = "d:/code/file/work_submit/download/";

String path = FilePath + str;
File file = new File(path);
if (file.exists()) {
InputStream ins = new FileInputStream(path);
BufferedInputStream bins = new BufferedInputStream(ins);// 放到缓冲流里面
OutputStream outs = response.getOutputStream();// 获取文件输出IO流
BufferedOutputStream bouts = new BufferedOutputStream(outs);
response.setContentType("application/x-download");// 设置response内容的类型
response.setHeader(
"Content-disposition",
"attachment;filename="
+ URLEncoder.encode(str, "UTF-8"));// 设置头部信息
int bytesRead = 0;
byte[] buffer = new byte[8192];
// 开始向网络传输文件流
while ((bytesRead = bins.read(buffer, 0, 8192)) != -1) {
bouts.write(buffer, 0, bytesRead);
}
bouts.flush();// 这里一定要调用flush()方法
ins.close();
bins.close();
outs.close();
bouts.close();
} else {
response.sendRedirect("../error.jsp");
}
} catch (IOException e) {
}
}


@RequestMapping(value="/workCommitDownLoad")
public String newGuideDownLoad(String work_local,HttpServletResponse response){

File file = new File(work_local);
System.out.println(work_local);


项目链接:
https://javayms.github.io?id=302023110609201eq
https://javayms.pages.dev?id=302023110609201eq