基于javaweb的SSM+Maven电影在线观看系统(java+ssm+jsp+layui+maven+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

350023312402

360023312402

370023312402

380023312402

390023312402

400023312402

基于javaweb的SSM+Maven电影在线观看系统(java+ssm+jsp+layui+maven+mysql)

一、项目简述

环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。  

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
51
        }
}

@RequestMapping(value = "imageUpdate",produces="text/html;charset=utf-8")
@ResponseBody
public String imageUpdate(MultipartFile file,HttpSession session,HttpServletRequest request){
User user = (User) session.getAttribute("user");
JSONObject jsonObject = new JSONObject();
File oldFile = new File(request.getServletContext().getRealPath(user.getImg()));
System.out.println(oldFile);
if (oldFile.exists()){
// if (oldFile.delete()){
// System.out.println("删除成功");
// }
}
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
String fileName = user.getUsername()+ "-" + new Date().getTime()+suffix;
String src = request.getServletContext().getRealPath("file/user/avatar/" + fileName);
try {
FileUtils.copyInputStreamToFile(file.getInputStream(),new File(src));
userServiceImpl.updImgById(user.getId(),"file/user/avatar/" + fileName);
user.setImg("file/user/avatar/" + fileName);
session.setAttribute("user",user);
jsonObject.put("src","file/user/avatar/" + fileName);
jsonObject.put("code",1);
} catch (IOException e) {
System.out.println("图片上传失败");
jsonObject.put("code",0);
return jsonObject.toString();
}
return jsonObject.toString();
}

@RequestMapping("update")
public String update(User user,HttpSession session,HttpServletRequest req){
System.out.println(user);
userServiceImpl.updByUser(user);
User oldUser = (User) session.getAttribute("user");
user.setImg(oldUser.getImg());
session.setAttribute("user",user);
List<Video> collections = userServiceImpl.getCollection(user.getId());
req.setAttribute("collections",collections);
return "/user/home";
}

@RequestMapping("register")
public String register(User user,HttpServletRequest request){
try {
userServiceImpl.insert(user);
}catch (Exception e){
e.printStackTrace();
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

@Controller
@RequestMapping("user")
public class UserController {

@Resource
private UserService userServiceImpl;

@Resource
private HistoryService historyServiceImpl;

@RequestMapping(value = "getAll",produces="text/html;charset=utf-8")
@ResponseBody
public String getAll(int page,int limit){
int start = (page-1)*limit;
List<User> userList = userServiceImpl.getAll(start, limit);
int count = userServiceImpl.getCount();
JSONObject jsonObject = new JSONObject();
jsonObject.put("code",0);
jsonObject.put("count",count);
jsonObject.put("data",userList);
return jsonObject.toString();
}

@RequestMapping("getCode")
public void getCode(HttpServletResponse response, HttpSession session) throws IOException {
Object[] objs = CodeImageUtil.createImage();
String code = (String) objs[0];
BufferedImage image = (BufferedImage) objs[1];

OutputStream os = response.getOutputStream();
ImageIO.write(image,"png",os);

session.setAttribute("code",code);
}

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
    int count = userServiceImpl.getCountByCondition(user);
System.out.println(count);
JSONObject jsonObject = new JSONObject();
jsonObject.put("code",0);
jsonObject.put("count",count);
jsonObject.put("data",userList);
return jsonObject.toString();
}

@RequestMapping("user/list")
public String user(){
return "manage/userlist";
}

@RequestMapping("user/detail/{id}")
public String userDetail(@PathVariable("id")int id, HttpServletRequest request){
User user = userServiceImpl.getUserById(id);
request.setAttribute("user",user);
return "manage/user_detail";
}
@RequestMapping("user/delete/{id}")
@ResponseBody
public int userDelete(@PathVariable("id")int id, HttpServletRequest request){
return userServiceImpl.delById(id);
}

@RequestMapping("video/list")
public String video(HttpServletRequest request){
List<Video> videos = videoServiceImpl.getAllVideos();
List<Category> type = categoryServiceImpl.selByPid(0);
request.setAttribute("videos",videos);
request.setAttribute("type",type);
return "manage/videolist";
}

@RequestMapping("video/getCategoryByPid/{pid}")
@ResponseBody
public List<Category> getCategoryByPid(@PathVariable("pid") int pid){
return categoryServiceImpl.selByPid(pid);
}
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
        //清除文件夹
File fileDir = new File(ServerPath + "/" + fileMd5);
if (fileDir.isDirectory() && fileDir.exists()){
//fileDir.delete();
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("合并成功");
return fileName;
}

@RequestMapping("video/detail/updDetailAndDate")
@ResponseBody
public Map<String,Object> updDetailAndDate(VideoDetail detail){
Date date = new Date();
detail.setUploadDate(date);
Map<String,Object> map = new HashMap<>();
map.put("code",videoServiceImpl.updDetailById(detail));
return map;
}

@RequestMapping("video/detail/updDetail")
@ResponseBody
public Map<String,Object> updDetail(VideoDetail detail){
Map<String,Object> map = new HashMap<>();
map.put("code",videoServiceImpl.updDetailById(detail));
return map;
}

@RequestMapping("video/detail/del")
@ResponseBody
public int delDetail(HttpServletRequest request, Integer id){
VideoDetail detail = videoServiceImpl.getDetailByDetailId(id);
File path = new File(request.getServletContext().getRealPath("file/video/videos/" + detail.getFileName()));
if (path.exists()){
//path.delete();
}
return videoServiceImpl.delDetailByDetailId(id);
}

@RequestMapping("category/list")
public String categoryList(HttpServletRequest request){
request.setAttribute("categories",categoryServiceImpl.selAll());
request.setAttribute("type",categoryServiceImpl.selByPid(0));
return "manage/categoryList";
}

@RequestMapping("category/getAll")
@ResponseBody
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
}
@RequestMapping("/getByName/{name}")
@ResponseBody
public List<Video> getByName(@PathVariable("name") String name){
return videoServiceImpl.getByName(name);
}

@RequestMapping("detail/{id}")
public String detail(@PathVariable("id")int id, HttpServletRequest request){
Video video = videoServiceImpl.getById(id);
List<VideoDetail> episodes =videoServiceImpl.getDetailById(id);
request.setAttribute("video",video);
request.setAttribute("episodes",episodes);
return "video/video_detail";
}

@RequestMapping("download")
public void download(HttpServletRequest request, HttpServletResponse response,String fileName) throws IOException {
System.out.println(fileName);
String newName;
//解决文件名乱码
String userAgent = request.getHeader("User-Agent");
if(userAgent.contains("MSIE") || userAgent.contains("Trident") || userAgent.contains("Edge")){//IE
newName = java.net.URLEncoder.encode(fileName, "UTF-8");
}else{//非IE
newName = new String(fileName.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1);
}
response.setHeader("Content-Disposition","attachment;filename="+newName);
response.setCharacterEncoding("utf-8");
File file = new File(request.getServletContext().getRealPath("file/video/videos/"),fileName);
response.setHeader("Content-Length", String.valueOf(file.length()));
OutputStream os = new BufferedOutputStream(response.getOutputStream());
InputStream is = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[1024*1024*5];
int len = -1;
while ((len = is.read(buffer)) != -1){
os.write(buffer,0,len);
}
os.flush();
os.close();
is.close();
}

@RequestMapping("play")
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
51
52
53
//        File dir = new File(req.getServletContext().getRealPath("file/video/videos/"));
// File chunkFile = new File(dir + "/" + file.getOriginalFilename());
// try {
// FileUtils.copyInputStreamToFile(file.getInputStream(),chunkFile);
// } catch (IOException e) {
// e.printStackTrace();
// }
// }

/**
* webUploader分块上传单个文件
* @param file
* @return
*/
@RequestMapping("video/detail/upload")
@ResponseBody
public void upload(HttpServletRequest req, MultipartFile file,String fileMd5,String chunk){
File dir = new File(req.getServletContext().getRealPath("file/video/videos/") +"/"+ fileMd5);
if (!dir.exists()){
dir.mkdir();
}
File chunkFile = new File(dir + "/" + chunk);
try {
FileUtils.copyInputStreamToFile(file.getInputStream(),chunkFile);
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 断点续传,检查分片是否以上传
* @param chunk
* @param chunkSize
* @return
*/
@RequestMapping("video/detail/checkChunk")
@ResponseBody
public Map<String,Object> checkChunk(HttpServletRequest req,String fileMd5,int chunk,String chunkSize){
File checkFile = new File(req.getServletContext().getRealPath("file/video/videos/") + "/" + fileMd5 + "/" + chunk);
Map<String,Object> map = new HashMap<>();
//检查文件大小是否一致
if (checkFile.exists() && checkFile.length() == Integer.parseInt(chunkSize)){
map.put("ifExist",1);
}else {
map.put("ifExist",0);
}
return map;
}

/**
* 合并分片
* @param fileName
* @param fileMd5


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