网站内容管理系统论文(本科计算机专业毕业设计论文写作指南(一)(1)_社会万象_光明网(组图))
优采云 发布时间: 2022-03-31 23:19网站内容管理系统论文(本科计算机专业毕业设计论文写作指南(一)(1)_社会万象_光明网(组图))
一、本科计算机科学毕业设计论文写作指导系列文章
计算机专业本科毕业设计论文写作指南
小教育发展与建设网站-开学(一)
小教育发展与建设网站-前言与需求分析(二)
小教育开发建设网站-总体设计(三)
小教育开发建设网站-系统设计(四)
小教育的发展与建设网站-下篇(五)
第4章系统设计4.1数据库设计4.1.1用户相关表
(1)Userinfo表,里面存储了用户的个人信息,比如头像、邮箱、*敏*感*词*号等。
(2)用户表,存放用户名、密码、手机号
(3)角色表,存储角色信息,如管理员角色、教师角色、学生角色。
(4)Permission是一个权限表,存储了所有的权限,比如发布课程权限、查看课程权限、上传课程权限等。
(5)U_r表是建立用户和角色关系的表,如果要修改用户的角色,可以通过这个表进行修改。
(6)R_p是一个角色和权限的中间表,通过它我们可以对角色的权限进行增删改查。
(7)Permission_group权限组,此表对权限进行分类,如用户管理组、课程管理组等。
图 4-1 用户相关表结构
4.1.2 课程相关表
(1)课程表主要记录课程名称、描述、类别、难度等信息。
(2)Course_chapter表,主要保存课程的章节信息,比如第一章的名字等。
(3)Course_content表,主要保存各个部分的具体内容,如课程视频地址、视频创建时间、课程名称等。
(4)Coursestatus是课程状态,代表课程从创建到发布的过程。有五个步骤,待提交->待审核->审核失败->可发表->已发布
(5)Course_different为课程的难度,如easy、medium、advanced等。
(6)Categorycourse是一个课程类别,比如英语课程、计算机课程,可以通过数据库添加,创建课程时会选择。
图 4-2 课程相关表结构
4.1.3 消息管理表
(1)这个表主要保存不同角色之间的通信信息,比如老师创建课程提交给管理员审核时,会向管理员发送消息,此时sendid为老师id,receiveid是管理员id,还有发送时间,发送内容等,发送后管理员会收到。
图4-3 消息管理表结构
4.1.4 学生选课表
(1)此表主要建立课程与学生之间的联系,保存导师所学课程的信息
图4-4 学生选课表结构
4.1.5 角色申请表
(1)这个表格是学生申请成为老师的表格。当学生想成为老师时,会在表格中添加一条记录,报告申请时间、审核状态、描述等信息.
图4-5 角色申请表结构
4.2后台设计
后台使用Java语言进行开发,因为它具有平台独立的特点,可以在不同平台上运行,同时具有安全性。它不需要像 C++ 那样使用指针直接对内存地址进行操作。当 Java 程序运行时,它需要的内存。由操作系统直接分配,防止系统的安全性受到指针的影响。它还具有面向对象的特性。Java 借鉴了 C++ 的一些面向对象的特性。通过将数据封装到类中,程序代码只需编译一次,可以多次使用,减少开销。万物皆物,物可重用,真是一大亮点。例如,在平台中代表用户。创建了一个新班级。
代码显示如下:
public class User implements Serializable {
private int uid;
private String phone;
private String upwd;
private List roles;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
public List getRoles() {
return roles;
}
public void setRoles(List roles) {
this.roles = roles;
}
}
平台选择使用spring boot框架。该框架可以快速开发spring应用,为java开发提供了一系列的解决方案。Spring Boot封装了很多API,可以处理事务处理,主要是异常发生时的事务回滚。,异常返回错误页面,操作成功时提交数据到数据库,以及其他自己开发难度很大的功能。由于它可以进行面向方面的编程,它使我们能够在不同的应用程序中组合各个方面,从而节省了代码量,提高了代码的重用性。
Spring Boot 框架有很多特性。tomcat容器是嵌入式的,运行时不需要单独安装容器,简化了maven配置。当需要一些依赖时,我们可以在我们之间引入它们。比如在项目中,我使用了文件上传和下载所需的commons-fileupload。而commons-io的两个jar包,只需要这样导入即可。
如下:
commons-fileupload
commons-fileupload
commons-io
commons-io
它可以基于注释进行配置。这些注释在项目中使用。@Controller 用于标记一个类头,表明该类是一个 Controller 对象。@RequestMapping 是处理请求的注解。它用于类或方法。参数 可以是get请求、post请求等,还有一个path参数,表示响应时访问的path必须收录参数值。对象已被操纵。@RequestParam 用于将请求参数映射到Controller层的方法参数。如果加了@ResponseBody注解,返回的内容会直接返回其他格式的数据,不经过视图解析器。@RestController 类似于 @Controller ,直接在类上添加,主要是为了避免@RequestMapping和@ResponseBody的重复写入。主要用于返回JSON、XML或其他类型的内容,使用@Service注解表示为业务层组件。下面是平台中使用的一个比较简单的控制器类。
代码显示如下:
@Controller
@RequestMapping("/notVerify")
public class NotVerifyCtrl {
Logger logger = LoggerFactory.getLogger(NotVerifyCtrl.class);
@Autowired
UserService userService;
@RequestMapping("/updatePwd")
public ModelAndView saveregister(String phone, String password) {
ModelAndView m = new ModelAndView();
int i = userService.updateUser(phone, new Sha384Hash(String.valueOf(password)).toBase64());
//拿到新增的uid
m.addObject("i", i);
m.setViewName("forgetPwd");
return m;
}
}
持久层框架最终决定使用myBatis。通过使用这个持久层框架,可以将所有的sql语句和业务代码分离到不同的文件中,sql语句可以存放在xml配置文件中,业务代码可以放在class文件中。这样便于维护和管理,同时动态sql的拼接可以通过逻辑标签来控制。同时只要Service实现类中的名称与xml中sql的名称相同,就可以自动完成映射,这样的架构开发变得更加灵活。.
下面的例子是教师根据条件查询课程。由此可以看出,所有的SQL都是用xml写的,与代码是分开的。如果使用where、select来拼接sql,querySelectCourse1是唯一标识,在同一个xml文件中,只有一个sql的id,resultType表示查询每一行的返回值类型,即是一个 Course 对象,在 bean 中创建。
一个例子如下:
select c.*,differentname,categoryname,cs.statusname from
course c,coursestatus cs,course_different cd,categorycourse cg
and c.coursename1 like '%${coursename1}%'
and c.categoryid=#{categoryid}
and c.differentid=#{differentid}
and c.coursestatusid =#{coursestatusid}
and c.createtime #{endtime1}
and c.createtime >= #{starttime1}
and c.differentid=cd.differentid
and c.coursestatusid=cs.coursestatusid
and c.categoryid=cg.categoryid
ORDER BY createtime DESC
limit #{page},#{limit}
Thymeleaf 是一个模板,具体来说是一个前端模板引擎,可以用在 Html 页面中,主要目标是提供一种创建模板的方法。它可以在联网和非联网环境中运行,然后可以通过在 html 标签中添加其他相关属性来表示。浏览器在解析HTML时,不会改变尚未定义的属性,可以用标签静态显示;数据传输到页面时,模板标签会动态替换为传入的内容,页面信息也会动态变化。对于从数据库中找到的数据,大部分数据以map和list的形式发送到前端。比如查看课程详情时,将List>>的类型发送到前端,消息被删除,并将int的类型返回给前端查看登录用户的个人信息。信息,将 userInfo 对象传递给前端。当我们想查看课程名称和创建教师姓名时,我们可以在html页面中开发,在页面上显示课程名称和创建的教师姓名在后台传入。
例子:
为了达到这个效果,我们的第一步是在html文件的头部引入一个模板:然后我们需要引入依赖。thymeleaf 等这些依赖是从 网站 中找到的,复制到 pom 文件中,依赖会自动下载。. 显示器需要稍后使用。基本上就是在基本的html标签前面加上th:符号,表示页面使用的是thymeleaf模板。例如,th:text 表示以文本形式显示,th:each 表示遍历集合中的数据。
4.3 前端设计
本平台使用html、CSS、JavaScript、CSS开发前端页面。html作为一种超文本标记语言,有很多标签,可以通过这些标签在互联网上展示信息。CSS是级联样式表,不仅可以修改静态网页,还可以通过一些脚本语言来动态修改,可以将html标签对象的宽度、高度、浮动、文字大小、字体、背景等更改为满足我们的要求。JavaScript 是一种用于编写脚本的语言。它由对象和事件驱动。使用JavaScript,可以轻松与HTML进行交互,可以完成丰富的页面交互效果。您可以通过在 HTML 文件底部嵌入来使用它,或者在 HTML 页面中实现外部脚本文件的引入。例如点击保存操作时,会弹出一个确认框。这个带有确认和取消按钮的小弹出页面是由 JavaScript 完成的,可视化的上传文件导航栏是由 JavaScript 制作的。不要打开 JavaScript 和 CSS,这可以改善客户的体验。每页的上部是页面字符类型、媒体类型,页面顶部还介绍了thymeleaf模板标准。下面是外部CSS样式的使用,中间是页面布局、div等标签。下面主要是导入的 JavaScript 和自定义的一些 JavaScript 脚本。并且页面顶部还介绍了thymeleaf模板标准。下面是外部CSS样式的使用,中间是页面布局、div等标签。下面主要是导入的 JavaScript 和自定义的一些 JavaScript 脚本。并且页面顶部还介绍了thymeleaf模板标准。下面是外部CSS样式的使用,中间是页面布局、div等标签。下面主要是导入的 JavaScript 和自定义的一些 JavaScript 脚本。
一些项目代码示例:
洛师公开课
a').trigger('click1');
$parent.siblings().removeClass('active1').find('li').removeClass('active1');
});
$('.sidebar-menu a').each(function () {
if (this.href === window.location.href) {
$(this).parent().addClass('active1')
.closest('.treesview-menu').addClass('.menu-open')
.closest('.treesview').addClass('active1');
}
});
});
在项目中经常可以触摸到列表页面,比如查看所有课程时显示的课程列表、查看用户时显示的列表、查看消息时使用的列表,均使用layui框架,提供了丰富的内置模块,全部使用layui框架。它可以以模块化方式按需下载。项目中主要使用布局、网格系统、表格、列表等。