知新网在线视频学习网站

项目名称:知新网在线视频学习网站

 项目周期:一个星期
 开发环境:SpringToolsuite+Mysql5+Tomcat8.5+SVN+JDK1.8+Bootstrap
 项目背景:人们的物质生活快速增长,快节奏的时代下,人们的精神生活日益溃泛。于是,我们组想开发个在线学习网站,成为供大家学习、交流的心灵港湾。喻名意为:温故而知新,可以为师矣。
 项目模块划分:用户模块,视频模块,论坛模块,悬赏订单模块,后台管理系统
 项目组员:刘杨(组长),郭涛,王综艺,李小龙
 技术选型:采用c3p0技术连接数据库,查询出的数据结果,通过service层、controller层传值到jsp页面显示,且前端页面使用Ajax技术实现异步交互

责任描述:
1、 与组员协商基本功能,完善对知新网功能的详细思维导图;
2、统一命名规范准备
3、协助组员完成视频上传的功能实现,优化前端页面的美观性,降低后端代码的冗余度
4、整合项目,调试bug,流畅运行项目所有实现的功能.最后:我们实现了知新网的登陆、注册、用户资料上传修改、在线拍照上传、视频上传播放、论坛发贴评论、悬赏订单在线解疑以及后台管理系统等,

项目系统设计:

  • 模板划分

  • 系统工作流程

在这里插入图片描述
数据库表设计:

  • 采用逻辑删除,避免数据的不可恢复性
  • 用户表 教师表 用户详细表 课程表 用户学习表 评论表 论坛明细表 订单悬赏表 悬赏订单记录表
    课程订单明细 用户收藏表 视频库表

页面设计:

  • 使用Bootstrap框架、WebStorm工具

部分页面展示:

  • 首页
    调用阿里云的短信验证接口,实现手机号登录在这里插入图片描述

  • 视频播放页面
    采用了文件上传下载技术:导入了fastjson包,采用创建磁盘工厂类DiskFileItemFactory,解析器ServletFileUpload的办法。由于技术有限,上传时速率不够快。
    在这里插入图片描述

  • 后台管理系统:
    ①采用分页,对数据实现查询分页处理;
    ②采用table里的每行对应个表单,然后遍历出来,方便管理员直接客观的修改对应数据;
    ③采用Ajax异步技术
    在这里插入图片描述*

部分代码展示:

  • 文件上传
// 1.创建磁盘工厂类
DiskFileItemFactory factory = new DiskFileItemFactory();
// 内存缓冲区与临时路径的关系, 加载的文件在内存缓冲区不够的情况下
// 把此文件加载进临时存放路径
factory.setSizeThreshold(20 * 1024 * 1024);
// 临时文件存放路径 如果不存在此路径,则创建
File temp = new File("D:/temp");
if (!temp.exists()) {
	temp.mkdirs();
}
factory.setRepository(temp);
// 2.创建解析器
ServletFileUpload sfu = new ServletFileUpload(factory);
// 判断表单是否为multipart/form-data
boolean bl = ServletFileUpload.isMultipartContent(request);
try {
	// 设置文件的最大字节数
	sfu.setFileSizeMax(1024 * 1024); // 超出限定字节 触发异常FileUploadBase$FileSizeLimitExceededException
	if (bl) {
		// 3.解析request
		List<FileItem> list = sfu.parseRequest(request);
		// 遍历结果集
		System.out.println(list);
		for (FileItem item : list) {
			// 当前对象是普通表单控件(true)还是文件表单控件(false)
			if (item.isFormField()) {
				// 控件名
				String name = item.getFieldName();
				// 得到值
				String value = item.getString();
				System.out.println("key:" + name + ",value:" + value);
			} else {
				// 控件名
				String name = item.getFieldName();
				// 文件名:
				String fileName = item.getName();
				System.out.println("key:" + name + ",filename:" + fileName);
				// 保存文件数据
				String path = this.getServletContext().getRealPath("/") + "images\\HeadPortrait";
				System.out.println("path"+path);
				File root = new File(path);
				if (!root.exists()) {
					// 上传的根路径不存在则新建
					root.mkdirs();
				}
				// 文件名冲突 D:/image/页码列表处理.jpg
				int lastIndex = fileName.lastIndexOf("\\");
				if (lastIndex != -1) {
					fileName = fileName.substring(lastIndex + 1);
				}
				// 文件名重写生成
				fileName = UUID.randomUUID().toString().replace("-", "") + fileName;
				System.out.println("新生成的文件名:" + fileName);
				basePath = "images\\HeadPortrait"+"\\"+fileName;
				// 开始上传
				File load = new File(root, fileName);
				item.write(load);
			}
  • 分页的jsp代码
<p>
	<a href="<c:url value='/VideoServlet?method=findAll&pageSize=3'/>"
		target="mainFrame">全部视频</a>
</p>
<table border="1" width="100%" cellspacing="0">
	<tr>
		<th>编号</th>
		<th>ID</th>
		<th>课程图片</th>
		<th>课程名称</th>
		<th>课程类型</th>
		<th>课程评分</th>
		<th>课程价格</th>
		<th>课程状态</th>
		<th>操作</th>
	</tr>
	<c:if test="${not empty page}">
		<c:if test="${not empty page.list}">
			<c:forEach items="${page.list}" var="allList" varStatus="status">
				<form action="<c:url value='/VideoServlet?method=updateVideo'/>"
					method="post">
					<tr>
						<td>${status.index+1}</td>
						<td><input type="text" value="${allList.courseId}"
							name="courseId"
							style="border: none; width: 20px;; text-align: center;" /></td>
						<td><img src="${allList.courseImage}" width="100"
							height="120" /></td>
						<td style="width: 20px"><input type="text"
							value="${allList.courseName}" name="courseName"
							style="border: none; text-align: center;" /></td>
						<td><input type="text" value="${allList.courseType}"
							name="courseType" style="border: none; text-align: center;" /></td>
						<td><input type="text" value="${allList.courseGrade}"
							name="courseGrade"
							style="border: none; width: 40px; text-align: center;" /></td>
						<td><input type="text" value="${allList.coursePrice}"
							name="coursePrice"
							style="border: none; width: 180px; text-align: center;" /></td>
						<td><input type="text" value="${allList.courseStatus}"
							name="courseStatus"
							style="border: none; width: 10px; text-align: center;" /></td>
						<td><input type="submit" value="修改" /></td>
					</tr>
				</form>
			</c:forEach>
		</c:if>
	</c:if>

	<c:if test="${not empty page}">
		<p>
			当前:${page.currentPageNo}|总${page.countPage}<a
				href="<c:url value='/VideoServlet?method=findAll&pageSize=3&currentPageNo=1'/>">首页</a>
			<c:if test="${page.currentPageNo!=1}">
				<a
					href="<c:url value='/VideoServlet?method=findAll&pageSize=3&currentPageNo=${page.currentPageNo-1}'/>">上一页</a>
			</c:if>
			<c:if test="${page.currentPageNo!=page.countPage}">
				<a
					href="<c:url value='/VideoServlet?method=findAll&pageSize=3&currentPageNo=${page.currentPageNo+1}'/>">下一页</a>
			</c:if>
			<a
				href="<c:url value='/VideoServlet?method=findAll&pageSize=3&currentPageNo=${page.countPage}'/>">尾页</a>
		</p>
	</c:if>
</table>

dao层接口方法

/**
 * 将用户输入的信息添加到个人中心的我的主页
 * 
 * @param userDetailId用户表id
 * @param userId用户明细表
 * @return UserDetail用户详情表对象
 */
UserDetail addMyHomepage(int userDetailId, UserDetail userId);

/**
 * 修改密码的方法
 * 
 * @param oldPassword
 * @param password
 * @param userId      用户表的id
 * @return 是否修改成功
 */
boolean updatePwd(String oldPassword, String password, int userId);

/**
 * 根据用户表id查找明细表
 * 
 * @param userOfId
 * @return UserDetail
 */
UserDetail selectUserDetailByUId(int userOfId);

更多内容,请点击下方:

My Blog: http://coderblue.cn/
Github:https://github.com/onecoderly
My Project:http://coderblue.cn/project/

微厦在线培训考试系统是一款基于B/S架构的在线学习系统,支持手机端、电脑端,可以在安卓、苹果、微信中使用,方便学员利用碎片化时间进行随时随地的学习,可广泛用于培训机构、职业学院、机关单位、企业机构等等。该系统集在线学习、在线练习、模拟考试、在线考试于一体,这对于培训机构的远程教学开展更加有利。 软件功能 1. 支持手机,可以在安卓、苹果、微信中使用。 2. 在线学习、在线练习、模拟考试、在线考试、错题回顾、考试回顾等 3. 支持自动判卷和手工判卷。 4. 支持本地视频(flv)在线上传在线播放。 5. 支持试题批量导入、导出。 6. 支持考试成绩分组查询、分组导出。 2016新增功能 1. *支持多种界面风格,风格自由切换 2. *视频在线学习,精准记录学员观看时间(视频失去焦点即停止播放) 3. *支持视频播放事件(课堂提问、实时反馈、提醒、资料展示) 4. *学习时间精准统计,统计在线时间,在线学习时间 5. *支持微信,手机端在线学习、在线考试 6. *学员批量导入、批量导出 7. *教师批量导入、批量导出 8. *支持公式编辑 系统环境 系统基于.Net 4.0开发;数据库采用Sqlserver2005; 硬件环境:CPU1.6Mhz以上,内存2GB以上 软件环境:Windows server 2003或以上版本、IIS6以上版本、DotNet4.0 Framework、Sqlserver2005或以上版本 演示地址 http://exam.weisha100.cn/ 学员账号:13223040250密码1 教师账号:18037155753密码1 管理账号:song密码1(在网站底部的“机构管理”处登录) 下载地址 http://pan.baidu.com/s/1bppzM15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值