博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1小时轻松上手springmvc,视频网站后台开发
阅读量:5891 次
发布时间:2019-06-19

本文共 4718 字,大约阅读时间需要 15 分钟。

由于最近半年一直在用springboot,但是也不能忘了本,于是把springmvc重新练了下,做了个前端传个表单,后台接收并显示的界面,该项目可以上传视频的URL,然后前端进行页面的播放,项目采用springmvc+spring+mybatis,前端是用jquery.功能很简单,前端一个form表单,提交后台,后台添加数据,并且将数据转发到前端进行显示。后台将entity,service,serviceimpl,controller,全部用marven进行关联,分模块开发。

项目中几个重要知识点:
1.文件上传
2.2张表在不关联的情况下,用inner join连表查询
3.分页查询
4.log日志使用
5.模块之间的联系,思想概述

项目的结构

Image.png

1.文件上传

(一):首先在resources目录下新建springmvc.xml,在里面加入

前端上传文件页面

添加视频资源

视频后台添加视频资源

视频名称:
视频类型:
优酷播放URL:
上传封面:

后台上传文件接口

@RequestMapping("/addVideo")    public String addVideo(@RequestParam(value = "file", required = false) MultipartFile file, VideoInfo videoInfo,            HttpServletRequest req, HttpServletResponse res) {//这里的required=false,意思是不传参也可以        try {            // 获取当前上下文            String path = req.getSession().getServletContext().getRealPath("/static/imgs");            // 文件名称            String newName = System.currentTimeMillis() + ".png";            File targetFile = new File(path, newName);            // 文件夹不存在,则创建文件夹            if (!targetFile.exists()) {                targetFile.mkdirs();            }            // 保存            try {                file.transferTo(targetFile);            } catch (Exception e) {                log.error(e);            }            videoInfo.setVideoUrl(newName);            videoInfoService.addVideoInfo(videoInfo);            req.setAttribute("result", "封面上传成功!");            return "redirect:/videoManag";        } catch (Exception e) {            log.error(e);            req.setAttribute("result", "上传失败!");            return LOCAVIDEO;        }    }

2.关联表的查询

select a.id as id,a.video_name as videoName, a.video_html as videoHtml ,a.video_url as videoUrl, a.video_del as videoDel, b.type_name as typeName from video_info  as a  inner join video_type as b  on a.video_type_id=b.id;

3.分页查询

在resource目录下新建mybatis-config.xml

applicationContext-dao.xml加载mybatis-config.xml

java代码使用

@RequestMapping("/indexVideo")    public String indexVideo(HttpServletRequest request, int pageIndex) {        Page page = PageHelper.startPage(pageIndex, 2);        request.setAttribute("listVideo", videoInfoService.getVoideAll(null));        request.setAttribute("pageSize", page.getPages());        return INDEXVIDEO;    }

前端代码

首页        
${p}
尾页

4.Spring整合log4j

创建log4j.properties,在resources/properties下创建log4j.properties文件

### set log levels ###log4j.rootLogger =INFO,DEBUG, stdout , Rlog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%nlog4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = E://logs/log.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = DEBUGlog4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%nlog4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File =E://logs/error.loglog4j.appender.E.Append = truelog4j.appender.E.Threshold = ERRORlog4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

web.xml加载 log4j.properties

log4jConfigLocation
/WEB-INF/classes/properties/log4j.properties
org.springframework.web.util.Log4jConfigListener

使用API

private static Logger log = Logger.getLogger(TestController.class);

5.模块之间的联系,思想概述

前后端一体的springmvc,我们以前都会搭建在一个项目,这次把entity,dao,service,serviceimpl,controller分成了模块进行开发,每个模块用marven进行关联。这样做的好处就是代码整洁清晰,每个层面都是个小的项目,适合分模块进行开发。

演示效果(一)

image.png

演示效果(二)

image.png

演示效果(三)

image.png

密码是sfze

关注我的公众号,都是满满的干货!

孙坚.gif

转载地址:http://zzbsx.baihongyu.com/

你可能感兴趣的文章
Fast通道获得Win10 Mobile Build 14977更新
查看>>
《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.6节识别操作系统...
查看>>
linux系统防火墙iptables命令规则及配置的示例
查看>>
10 个顶尖的 Linux 开源人工智能工具
查看>>
Firefox 跟踪保护技术将页面加载时间减少 44%
查看>>
聚合(根)、实体、值对象精炼思考总结
查看>>
java解析虾米音乐
查看>>
rails将类常量重构到数据库对应的表中之三
查看>>
mysql 多行合并函数
查看>>
【案例】RAID卡写策略改变引发的问题
查看>>
[Django学习]如何得到一个App
查看>>
第四十八讲:tapestry 与 淘宝kissy editor编辑器带图片上传
查看>>
Linux/Centos 重置Mysql root用户密码
查看>>
[C语言]unicode与utf-8编码转换(一)
查看>>
利用PDO导入导出数据库
查看>>
DDR3
查看>>
分支 统计字数
查看>>
艾级计算机的发展与挑战
查看>>
RocketMQ事务消息实战
查看>>
mysql-mmm-2.2.1安装手册
查看>>