博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
【转载】无限级分类的简单实例
查看>>
关于WinPE安装操作系统
查看>>
LeetCode Median of Two Sorted Arrays
查看>>
(算法)两个人是否为队友
查看>>
oschina程序开发
查看>>
mysql创建每月执行一次的event
查看>>
kafka集群部署
查看>>
STM8串口初始化寄存器配置
查看>>
ReactNative常用组件汇总
查看>>
openfaas 安装(docker swarm 模式)
查看>>
nested exception is java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
查看>>
“正在注册字体”问题解决
查看>>
[转]OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(上)
查看>>
CSS/CSS3中的原生变量var详解以及布局响应式网页扩展
查看>>
windows10 更新后要输入2次密码才能进入系统
查看>>
iOS开发-OpenGL ES入门教程1
查看>>
平衡二叉树(AVL树)
查看>>
Solidworks如何打开swb文件
查看>>
面向对象思想(第一天)
查看>>
微信小程序 js逻辑
查看>>