首页 > 编程语言 >(附源码)基于Spring Boot的英语学习网站的设计与实现-计算机毕设 28248

(附源码)基于Spring Boot的英语学习网站的设计与实现-计算机毕设 28248

时间:2024-11-01 11:49:51浏览次数:3  
标签:10 毕设 varchar int Spring 用户 源码 英语

基于Spring Boot的英语学习网站的设计与实现

摘要

在当今全球化的时代,英语已经成为了国际交流的通用语言。为了提高英语水平,越来越多的人选择在线学习英语。然而,传统的英语学习网站往往存在功能单一、交互性差、用户体验不佳等问题。为了解决这些问题,我们提出了基于Spring Boot的英语学习网站的设计与实现。

Spring Boot是一个开源的Java框架,它简化了Spring应用的初始搭建以及开发过程。通过Spring Boot,我们可以快速构建出稳定、可靠、易于维护的英语学习网站后端服务。同时,Spring Boot还提供了丰富的功能和插件,如安全认证、数据持久化、RESTful API等,为英语学习网站的开发提供了强大的支持。

在英语学习网站的设计与实现中,我们将注重以下几个方面:首先,提供丰富的学习资源,包括课程视频、听力材料、资料专栏、阅读材料等,以满足不同用户的需求;同时,实现个性化的学习推荐,根据用户的学习历史和偏好,为其推荐合适的学习资源;还有优化用户体验,提供简洁明了的界面设计和流畅的操作体验;最后,确保系统的安全性和稳定性,保护用户数据和隐私的安全。

综上所述,基于Spring Boot的英语学习网站的设计与实现具有重要的现实意义和应用价值。通过该网站的应用,我们可以为英语学习者提供更加高效、便捷、个性化的学习体验,推动英语教育的创新与发展。

关键词:英语学习网站,Springboot框架,Java技术;

Design and Implementation of an English Learning Website Based on Spring Boot

abstract

In today's era of globalization, English has become the universal language for international communication. In order to improve their English proficiency, more and more people choose to learn English online. However, traditional English learning websites often suffer from issues such as single functionality, poor interactivity, and poor user experience. To address these issues, we propose the design and implementation of an English learning website based on Spring Boot.

Spring Boot is an open-source Java framework that simplifies the initial setup and development process of Spring applications. Through Spring Boot, we can quickly build a stable, reliable, and easy to maintain backend service for English learning websites. At the same time, Spring Boot also provides rich features and plugins, such as security authentication, data persistence, RESTful APIs, etc., providing strong support for the development of English learning websites.

In the design and implementation of English learning websites, we will focus on the following aspects: firstly, providing rich learning resources, including course videos, listening materials, information columns, reading materials, etc., to meet the needs of different users; At the same time, achieve personalized learning recommendations, recommend suitable learning resources to users based on their learning history and preferences; Furthermore, optimizing user experience by providing a concise and clear interface design and a smooth operating experience; Finally, ensure the security and stability of the system, and protect the security of user data and privacy.

In summary, the design and implementation of an English learning website based on Spring Boot have important practical significance and application value. Through the application of this website, we can provide English learners with a more efficient, convenient, and personalized learning experience, promoting innovation and development in English education.

Keywords:English learning website, Springboot framework, Java technology;

目录

第1章 绪   论

1.1选题背景

1.2选题意义

1.3国内外研究现状

1.4研究方法

1.5 开发技术

1.5.1 JAVA技术

1.5.2 MVVM模式

1.5.3 B/S结构

1.5.4 Spring boot框架

1.5.5 Mysql数据库

第2章 系统分析

2.1 可行性分析

2.1.1技术可行性

2.1.2经济可行性

2.1.3社会可行性

2.2总体设计原则

2.3 系统需求分析

2.4 系统用例分析

2.5 业务流程分析

2.5.1登录流程

2.5.2注册流程

2.5.3添加信息流程

2.5.4删除信息流程

第3章 系统设计

3.1 系统概要设计

3.2系统结构设计

3.3 数据库设计

3.3.1概念结构设计

3.3.2数据库表设计

第4章 系统关键模块设计与实现

4.1普通用户模块

4.1.1注册界面

4.1.2登录界面

4.1.3交流论坛界面

4.1.4资讯专栏界面

4.1.5资料专栏界面

4.2教师用户模块

4.2.1精品贴界面

4.2.2和分奖品界面

4.3管理员模块

4.3.1公共管理界面

4.3.2系统用户界面

4.3.3用户积分界面

4.3.4教师积分界面

4.3.5积分奖品界面

4.3.6用户兑换界面

第5章软件测试

5.1软件测试的重要性

5.2测试实例的研究与选择

5.3测试环境与测试条件

5.4系统运行情况

5.5系统评价

5.5.1系统功能评价

5.5.2系统技术评价

5.5.3系统经济评价

第6章 总结

参考文献

致   谢

  1.  绪   论

1.1选题背景

随着全球化的深入发展,英语作为国际交流的通用语言,其重要性日益凸显。越来越多的人意识到学习英语的重要性,并寻求各种途径来提高自己的英语水平。传统的英语学习方式,如课堂教学、纸质教材等,虽然在一定程度上能够满足学习者的需求,但存在着时间、地点限制以及学习资源有限等问题。因此,随着互联网的普及和技术的快速发展,英语学习网站应运而生,为学习者提供了一个全新的学习平台。然而,现有的英语学习网站在功能和用户体验方面还存在一些不足。一些网站虽然提供了丰富的学习资源,但缺乏个性化的学习推荐,无法根据学习者的实际情况和需求进行智能匹配。同时,一些网站在界面设计和交互性方面也存在不足,影响了学习者的学习体验和兴趣。

为了解决这些问题,我们提出了基于Spring Boot的英语学习网站的设计与实现。Spring Boot作为一个轻量级、快速构建应用的Java框架,具有高度的灵活性和可扩展性,非常适合用于构建英语学习网站的后端服务。通过整合Spring Boot的技术优势,我们可以设计出一个功能强大、用户体验优良的英语学习网站,为英语学习者提供更加高效、便捷、个性化的学习体验。同时,该网站还可以为教育机构和个人提供一个展示和推广英语学习资源的平台,推动英语教育的创新与发展。

1.2选题意义

基于Spring Boot的英语学习网站的设计与实现选题意义深远。随着全球化的推进和互联网技术的迅猛发展,线上学习已成为趋势,尤其是在语言学习领域。传统的英语学习方式受到时间、地点和资源的限制,而线上学习平台则提供了更加灵活和多样的学习方式。该选题的意义在于它能够满足现代学习者的个性化需求。通过Spring Boot框架的支持,英语学习网站可以实现用户数据的智能分析,为每位学习者提供精准的学习资源推荐,从而提高学习效率。该选题有助于推动教育信息化和现代化的进程。基于Spring Boot的英语学习网站可以利用云计算等先进技术,实现学习资源的数字化、网络化和智能化,为教育领域的数字化转型提供有力支持。此外,该选题还具有商业价值和社会意义。通过提供优质的英语学习服务,该网站可以吸引大量用户,进而实现商业变现。同时,它也可以为社会培养更多的英语人才,提升国民的语言素质和国际竞争力。

综上所述,基于Spring Boot的英语学习网站的设计与实现选题意义重大,它不仅符合教育信息化的趋势,满足学习者的个性化需求,还能推动教育领域的数字化转型,并产生商业价值和社会意义。

1.3国内外研究现状

基于Spring Boot的英语学习网站的设计与实现,在国内外都受到了广泛的关注和研究。

在国内,随着教育信息化和数字化的不断推进,越来越多的研究者和开发者开始关注基于Spring Boot的英语学习网站的设计与实现。这些研究主要关注网站的功能设计、用户体验、学习资源的管理和推荐算法等方面。同时,国内的高校和教育机构也开始尝试利用Spring Boot框架开发英语学习网站,以满足学生的在线学习需求,提高教学效果和学习效率。

在国外,基于Spring Boot的英语学习网站的研究和应用也非常活跃。由于Spring Boot框架的开源性和灵活性,它得到了许多开发者的青睐。国外的开发者们利用Spring Boot框架开发出了许多功能强大、用户体验优良的英语学习网站。这些网站不仅提供了丰富的学习资源,还利用人工智能和大数据技术实现了个性化的学习推荐和智能辅导,为用户提供了更加高效、便捷的学习体验。

综上所述,基于Spring Boot的英语学习网站的设计与实现在国内外都受到了广泛的关注和研究。随着技术的不断发展和应用的不断深入,相信未来会有更多的创新和应用涌现出来,为英语学习领域带来更多的可能性和发展机遇。

1.4研究方法

在基于Spring Boot的英语学习网站的设计与实现中,研究方法的选择和应用至关重要。主要采用以下研究方法:

文献研究法:首先,通过查阅相关文献,了解国内外关于英语学习网站的研究现状和发展趋势。这有助于我们了解已有的研究成果和不足,从而为我们的研究提供理论支持和方向指导。

需求分析法:通过用户调研和需求分析,明确英语学习网站的功能需求、用户体验需求和性能需求等。这有助于我们设计出更符合用户需求的网站,提高网站的实用性和易用性。

系统设计法:在明确需求后,进行系统设计,包括系统架构设计、数据库设计、界面设计等。这有助于我们构建出稳定、可靠、易于维护的网站系统,确保网站的正常运行和持续发展。

开发实现法:在系统设计的基础上,利用Spring Boot框架进行网站的开发实现。这包括后端服务的搭建、数据库的连接、业务逻辑的实现等。通过开发实现法,我们可以将设计转化为实际可用的网站系统。

测试评估法:在开发完成后,对网站系统进行详细的测试和评估。这包括功能测试、性能测试、安全测试等。通过测试评估法,我们可以发现网站系统中存在的问题和不足,并进行相应的优化和改进。

综上所述,基于Spring Boot的英语学习网站的设计与实现需要综合运用多种研究方法。通过文献研究法了解研究现状和发展趋势,通过需求分析法明确用户需求和系统需求,通过系统设计法构建出稳定可靠的网站系统,通过开发实现法将设计转化为实际可用的网站系统,最后通过测试评估法确保网站系统的质量和性能。这些研究方法的综合应用将有助于我们设计和实现出一个功能强大、用户体验优良的英语学习网站。

1.5 开发技术

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的Springboot框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用Springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

1.5.1 JAVA技术

JAVA语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的,兼容性比较强,适应市面上大多数操作系统,不会出现乱码的现像,其扩展性和维护性都更好,具有分析问题和解决问题的能力,是面向过程的程序设计方便我们编写的代码更强壮。

JAVA相对其它语言来说,比较简单,编译起来更方便一些,安全可靠性高。不完全统计,现在全世界大约有2000多万人在使用它,JAVA既可以镶嵌使用又可以独力的使用。JAVA大致可以分成两个部分,一种部分是JAVA负责的编译,另一种是JAVA负责的运行。JAVA和C++语言很相像,但JAVA在编程时是一种以对象为导向的方式来进行编译的,使得编出来的软件可以单机使用,也可以在互联网上使用,检查出错更为方便。JAVA分布式、体系结构中立的特点也使得其存储更快,编议更简单。面向对象包括四个特点,一是封装,就是说在定义类的时候可以实现一定的功能和属性。二是抽象,属于类的一种,可以把一个具有共同属性的类封装在一个抽象里,便于简单编议。三是继承,顾名思义就是带有前者的特性。还有一个就是多态的特点,可以多种一起运用,表现了它可扩展性好。

1.5.2 MVVM模式

MVVM模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。

视图(View)代表用户交互界面,一个 Web 应用就可能有很多的界面,在 MVVM 模式中,视图仅仅处理的只有数据采集、处理,还有用户的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理。

模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVVM 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架。

控制器(Controller)可以理解为接收用户的请求,然后视图和模型匹配在一起,一起再完成用户请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成用户的什么样的请求。控制层不做所有的数据处理,比如说:用户点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递用户的信息,同时告诉模型做什么,然后选择符合需求的视图返回给用户。

1.5.3 B/S结构

B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。

1.5.4 Spring boot框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

1.5.5 Mysql数据库

Mysql 经过多次的更新,功能层面已经非常的丰富和完善了,从Mysql4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的Mysql支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。

针对本文中设计的英语学习网站在实际的实现过程中,最终选择Mysql数据库的主要原因在于在系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的Mysql来对英语学习网站后台数据进行存储操作。

  1. 系统分析

2.1 可行性分析

可行性分析的目的是确定一个系统是否有必要开发、确定系统是否能以最小的代价实现。其工作主要有三个方面,分别是技术、经济和社会三方面的可行性。我会从这三个方面对英语学习网站进行详细的分析。

2.1.1技术可行性

技术可行性分析是评估基于Spring Boot的英语学习网站设计与实现项目在技术层面是否具备实施条件的过程。考虑到Spring Boot框架的广泛应用和成熟生态系统,技术可行性非常高。Spring Boot提供了丰富的功能和插件,如安全认证、数据持久化、RESTful API等,这些功能可以很好地支持英语学习网站的开发。此外,Spring Boot的轻量级和快速构建应用的特性使得开发过程更加高效,缩短了开发周期。同时,现代软件开发工具和技术,如版本控制系统、持续集成/持续部署(CI/CD)等,也为项目的顺利实施提供了有力支持。因此,从技术层面来看,基于Spring Boot的英语学习网站的设计与实现是完全可行的。

2.1.2经济可行性

经济可行性分析是评估基于Spring Boot的英语学习网站项目在经济层面是否值得投资的过程。考虑到Spring Boot框架的开源性质,项目的初始投入成本相对较低,无需支付高昂的框架许可费用。此外,Spring Boot与各种开源技术和工具(如MySQL、Redis、AWS等)的兼容性极佳,这意味着在后续扩展和维护过程中,可以灵活选择成本效益高的解决方案。从长远来看,英语学习网站的市场需求大,潜在的盈利空间广阔,通过提供高质量的学习资源和个性化服务,可以吸引大量用户并实现盈利。因此,综合考虑初始投入、运营成本、市场需求和潜在收益,基于Spring Boot的英语学习网站的设计与实现在经济层面是可行的。

2.1.3社会可行性

社会可行性分析是评估基于Spring Boot的英语学习网站项目在社会层面是否可接受和有益的过程。在当前全球化的背景下,英语作为国际交流的通用语言,对于提升个人竞争力和国家发展具有重要意义。因此,一个高质量的英语学习网站能够满足广大学习者的需求,促进英语教育的普及和提高。基于Spring Boot的英语学习网站通过提供便捷、高效、个性化的学习体验,有助于培养更多的英语人才,推动社会的文化交流和经济发展。此外,该网站还可以为教育机构和个人提供一个展示和推广英语学习资源的平台,推动教育资源的共享和优化。因此,从社会层面来看,基于Spring Boot的英语学习网站的设计与实现是可行的,并且有望为社会带来积极的影响。

2.2总体设计原则

在基于Spring Boot的英语学习网站的设计与实现过程中,我们遵循以下总体设计原则:

我们强调用户为中心的设计理念。这意味着在设计过程中,我们始终将用户的需求和体验放在首位,确保网站的功能、界面和交互都能够满足用户的期望。我们注重用户反馈,不断优化和改进网站,以提升用户的满意度和忠诚度。

我们注重系统的可扩展性和可维护性。通过采用Spring Boot框架,我们利用其模块化和松耦合的特性,将系统划分为多个独立的组件,使得每个组件都可以独立地进行开发和部署。这种设计方式不仅提高了系统的可扩展性,使得我们可以根据需求的变化快速调整和优化系统,同时也增强了系统的可维护性,降低了后期维护的成本和难度。

我们注重系统的安全性和稳定性。在设计过程中,我们采用了多种安全措施,如用户身份验证、数据加密传输、防止SQL注入等,以确保用户数据的安全性和隐私性。同时,我们也注重系统的稳定性,通过合理的系统架构和性能优化,确保网站在高并发、大数据量的情况下依然能够稳定运行,为用户提供可靠的服务。

我们注重系统的可扩展性和灵活性。通过采用微服务架构和容器化技术,我们可以将系统拆分为多个独立的服务,每个服务都可以独立地进行升级和扩展。这种设计方式不仅提高了系统的可扩展性,使得我们可以根据业务的发展快速扩展系统,同时也增强了系统的灵活性,使得我们可以灵活地应对各种变化和挑战。

综上所述,基于Spring Boot的英语学习网站的设计与实现遵循了用户为中心、可扩展性、可维护性、安全性、稳定性以及可扩展性和灵活性的总体设计原则。这些原则确保了网站能够满足用户的需求和期望,同时也为系统的长期发展和维护提供了坚实的基础。

2.3 系统需求分析

在设计和实现基于Spring Boot的英语学习网站时,我们需要对系统的各个功能模块进行深入的需求分析。以下是针对用户管理、论坛管理、资讯管理、用户积分、教师积分、资料专栏、师资认证、精品帖、积分奖品、用户兑换、教师兑换等重要功能的整体需求分析:

首先,用户管理是整个系统的核心,它涉及到用户的注册、登录、个人信息管理、密码重置等基本功能。用户管理需要确保用户信息的安全性,同时提供友好的用户界面和便捷的操作体验。

论坛管理是英语学习网站的重要组成部分,它为用户提供了一个交流学习的平台。论坛管理需要支持帖子的发布、回复、点赞等功能,同时需要有良好的内容审核机制,确保论坛内容的质量和安全性。

资讯管理是网站发布英语学习相关资讯的模块,它需要支持资讯的发布、编辑、删除等操作,同时需要有良好的分类和标签系统,方便用户查找和浏览。

用户积分和教师积分是激励用户和教师参与网站活动的重要机制。积分管理需要记录用户的积分变化,提供积分查询和兑换功能,同时需要设定合理的积分规则和兑换规则,确保积分系统的公平性和有效性。

资料专栏是网站提供英语学习资料的重要模块,它需要支持资料的上传、下载、购买等操作,同时需要提供资料的评价和推荐功能,帮助用户找到优质的学习资源。

师资认证是确保教师质量的重要环节,它需要对教师的资质和经验进行审核和认证,确保教师具备教授英语的能力和经验。师资认证需要提供完善的审核流程和认证标准,确保认证结果的公正性和准确性。

精品帖是论坛中优质帖子的集合,它代表了论坛的精华和高质量内容。精品帖需要有良好的评选机制和管理机制,确保入选的帖子确实具有较高的学习价值和参考价值。

积分奖品是用户和教师通过积分兑换的实物或虚拟奖品,它需要有良好的奖品管理和发放机制,确保奖品的真实性和有效性。

用户兑换和教师兑换是积分系统的核心功能之一,它允许用户和教师使用积分兑换相应的奖品或服务。兑换功能需要提供清晰的兑换规则和流程,确保兑换过程的顺畅和公平。

综上所述,基于Spring Boot的英语学习网站的设计与实现需要综合考虑用户管理、论坛管理、资讯管理、用户积分、教师积分、资料专栏、师资认证、精品帖、积分奖品、用户兑换、教师兑换等多个功能模块的需求,确保系统能够满足用户的学习和交流需求,同时提供便捷的操作体验和激励机制。

2.4 系统用例分析

系统的用例展示的是系统功能与用户之间的关系,通过用例的方式能够直观的展示出来,本英语学习网站的完整UML用例图分别是图2-1、图2-2和图2-3。

图2-1 英语学习网站普通用户角色用例图

图2-2 英语学习网站教师用户角色用例图

图2-3 英语学习网站管理员角色用例图

2.5 业务流程分析

2.5.1登录流程

登录模块主要满足管理员以及用户的权限登录,用户登录流程图如图2-4所示。

图2-4 登录流程图

2.5.2注册流程

未有账号的用户可进入注册界面进行注册操作,用户注册流程图如图2-5所示。

图2-5注册流程图

2.5.3添加信息流程

用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图2-6所示。

图2-6添加信息流程图

2.5.4删除信息流程

用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图2-7所示。

图2-7删除信息流程图

  1. 系统设计

3.1 系统概要设计

本英语学习网站选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图3-1所示:

图3-1 系统工作原理图

3.2系统结构设计

整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。

本英语学习网站结构图如图3-2所示。

图3-2 英语学习网站结构图

3.3 数据库设计

数据库可以说是所有软件的根本,如果数据库存在缺陷,那么会导致系统开发的不顺利、维护困难、用户使用不顺畅等一系列问题,严重时将会直接损害企业的利益,同时在开发完成后,数据库缺陷也更加难以解决。所以必须要对数据库设计重点把握,做到认真细致。因此,数据库设计是这个英语学习网站的重点要素。

3.3.1概念结构设计

英语学习网站总E-R图如下图3-3所示

图3-3英语学习网站总E-R图

3.3.2数据库表设计

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表boutique_stickers (精品帖)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

boutique_stickers_id

int

10

0

N

Y

精品帖ID

2

teacher_account

int

10

0

Y

N

0

教师账号

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

teachers_phone_number

varchar

64

0

Y

N

教师电话

5

post_name

varchar

64

0

Y

N

帖子名称

6

post_image

varchar

255

0

Y

N

帖子图片

7

release_time

date

10

0

Y

N

发布时间

8

post_points

int

10

0

Y

N

0

帖子积分

9

learning_method

text

65535

0

Y

N

学习方法

10

notes_of_academic_elites

text

65535

0

Y

N

学霸笔记

11

key_knowledge

text

65535

0

Y

N

重点知识

12

learning_experience

text

65535

0

Y

N

学习经验

13

post_details

text

65535

0

Y

N

帖子详情

14

hits

int

10

0

N

N

0

点击数

15

praise_len

int

10

0

N

N

0

点赞数

16

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

17

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表data_column (资料专栏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

data_column_id

int

10

0

N

Y

资料专栏ID

2

user_account

int

10

0

Y

N

0

用户账号

3

user_name

varchar

64

0

Y

N

用户姓名

4

user_phone_number

varchar

64

0

Y

N

用户电话

5

data_name

varchar

64

0

Y

N

资料名称

6

information_images

varchar

255

0

Y

N

资料图片

7

release_time

date

10

0

Y

N

发布时间

8

data_points

int

10

0

Y

N

0

资料积分

9

information_content

varchar

64

0

Y

N

资料内容

10

data_files

varchar

255

0

Y

N

资料文件

11

information_details

text

65535

0

Y

N

资料详情

12

hits

int

10

0

N

N

0

点击数

13

praise_len

int

10

0

N

N

0

点赞数

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_phone_number

varchar

16

0

Y

N

用户电话

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表rewards_for_points (积分奖品)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

rewards_for_points_id

int

10

0

N

Y

积分奖品ID

2

prize_name

varchar

64

0

Y

N

奖品名称

3

prize_image

varchar

255

0

Y

N

奖品图片

4

award_number

varchar

64

0

Y

N

奖品编号

5

reward_points

int

10

0

Y

N

0

奖品积分

6

prize_content

varchar

64

0

Y

N

奖品内容

7

prize_details

text

65535

0

Y

N

奖品详情

8

hits

int

10

0

N

N

0

点击数

9

praise_len

int

10

0

N

N

0

点赞数

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表teacher_certification (师资认证)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_certification_id

int

10

0

N

Y

师资认证ID

2

teacher_account

int

10

0

Y

N

0

教师账号

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

teachers_phone_number

varchar

64

0

Y

N

教师电话

5

teacher_id

varchar

64

0

N

N

教师编号

6

certification_time

date

10

0

Y

N

认证时间

7

qualification_image

varchar

255

0

Y

N

资质图片

8

examine_state

varchar

16

0

N

N

未审核

审核状态

9

examine_reply

varchar

16

0

Y

N

审核回复

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_points (教师积分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_points_id

int

10

0

N

Y

教师积分ID

2

teacher_account

int

10

0

Y

N

0

教师账号

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

teachers_phone_number

varchar

64

0

Y

N

教师电话

5

number_of_points

int

10

0

Y

N

0

积分数量

6

other_remarks

text

65535

0

Y

N

其他备注

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_redemption (教师兑换)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_redemption_id

int

10

0

N

Y

教师兑换ID

2

teacher_account

int

10

0

Y

N

0

教师账号

3

teachers_name

varchar

64

0

Y

N

教师姓名

4

teachers_phone_number

varchar

64

0

Y

N

教师电话

5

prize_name

varchar

64

0

Y

N

奖品名称

6

award_number

varchar

64

0

Y

N

奖品编号

7

reward_points

int

10

0

Y

N

0

奖品积分

8

exchange_quantity

int

10

0

Y

N

0

兑换数量

9

redeem_points

varchar

64

0

Y

N

兑换积分

10

redemption_time

date

10

0

Y

N

兑换时间

11

exchange_note_number

varchar

64

0

Y

N

兑换单号

12

redemption_details

text

65535

0

Y

N

兑换详情

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表teacher_users (教师用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

teacher_users_id

int

10

0

N

Y

教师用户ID

2

teachers_name

varchar

64

0

Y

N

教师姓名

3

teachers_phone_number

varchar

16

0

Y

N

教师电话

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表user_points (用户积分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_points_id

int

10

0

N

Y

用户积分ID

2

user_account

int

10

0

Y

N

0

用户账号

3

user_name

varchar

64

0

Y

N

用户姓名

4

user_phone_number

varchar

64

0

Y

N

用户电话

5

number_of_points

int

10

0

Y

N

0

积分数量

6

other_remarks

text

65535

0

Y

N

其他备注

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表user_redemption (用户兑换)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_redemption_id

int

10

0

N

Y

用户兑换ID

2

user_account

int

10

0

Y

N

0

用户账号

3

user_name

varchar

64

0

Y

N

用户姓名

4

user_phone_number

varchar

64

0

Y

N

用户电话

5

prize_name

varchar

64

0

Y

N

奖品名称

6

award_number

varchar

64

0

Y

N

奖品编号

7

reward_points

int

10

0

Y

N

0

奖品积分

8

exchange_quantity

int

10

0

Y

N

0

兑换数量

9

redeem_points

varchar

64

0

Y

N

兑换积分

10

redemption_time

date

10

0

Y

N

兑换时间

11

exchange_note_number

varchar

64

0

Y

N

兑换单号

12

redemption_details

text

65535

0

Y

N

兑换详情

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

  1. 系统关键模块设计与实现

4.1普通用户模块

4.1.1注册界面

用户在注册页面通过填写用户账号、密码、昵称、姓名、性别、电话等信息完成用户注册,如图4-1所示。

图4-1用户注册界面图

用户注册逻辑代码如下:

    * 注册

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = service.readBody(request.getReader());

        query.put("username",String.valueOf(map.get("username")));

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

    }

    public void insert(Map<String,Object> body){

        E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

        baseMapper.insert(entity);

        log.info("[{}] - 插入操作:{}",entity);

}

4.1.2登录界面

用户通过注册时的用户名+密码进行验证登录,如图4-2所示。

图4-2登录界面图

登录代码如下:

package com.project.demo.interceptor;

@Slf4j

public class LoginInterceptor implements HandlerInterceptor {

    private String tokenName = "x-auth-token";

    @Override

    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        String token = request.getHeader(this.tokenName);

        setHeader(request, response);

        log.info("[请求接口] - {} , [请求类型] - {}",request.getRequestURL().toString(),request.getMethod());

        if (request.getRequestURL().toString().contains("/api/user/login")){

            return true;

        }

        else if (request.getRequestURL().toString().contains("/api/user/state")){

            return true;

        }

        else if (request.getRequestURL().toString().contains("/api/user/register")){

            return true;

        }

    }

    @Override

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {

        //更新token

    }

    @Override

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }

    private void failure(HttpServletRequest request, HttpServletResponse response) throws IOException {

        response.setHeader("Content-type", "application/json;charset=UTF-8");

        response.setStatus(401);

        response.sendRedirect("https://www.baidu.com");

    }

    private void setHeader(HttpServletRequest request, HttpServletResponse response) {

        //跨域的header设置

        response.setHeader("Access-control-Allow-Origin", request.getHeader("Origin"));

        response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");

        response.setHeader("Access-Control-Allow-Credentials", "true");

        response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));

        response.setHeader("Access-Control-Max-Age", "1800");

        //防止乱码,适用于传输JSON数据

        response.setHeader("Content-Type", "application/json;charset=UTF-8");

        response.setStatus(HttpStatus.OK.value());

    }

}

4.1.3交流论坛界面

普通用户可以进行交流、讨论。能够就英语学习、语言交流等话题进行互动交流。界面如4-3所示。

图4-3交流论坛界面图

4.1.4资讯专栏界面

普通用户可以查看英语学习相关的资讯和文章,包括学习心得、英语学习方法、留学资讯等内容。界面如下图4-4所示。

图4-4资讯专栏界面图

4.1.5资料专栏界面

普通用户可以对英语学习资料下载、学习资源推荐等功能,满足学习需求。界面如下图4-5所示。

图4-5资料专栏界面图

4.2教师用户模块

4.2.1精品贴界面

教师用户可以查看优质的教学帖子和教学资源,能够获取有价值的教学内容。在详情页面可以点赞、收藏和评论。界面如4-6所示。

图4-6精品贴界面图

4.2.2和分奖品界面

教师用户通过教学获取积分,积分可以用于兑换奖品或者特权。在详情页要以兑换、点赞和收藏。界面如4-7所示。

图4-7积分奖品界面图

4.3管理员模块

4.3.1公共管理界面

管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。界面如下图4-8所示。

图4-8公共管理界面图

4.3.2系统用户界面

管理员可对前台注册的用户以进行添加、重置或删除等操作,如图4-9所示。

图4-9系统用户管理界面图

用户管理界面逻辑代码如下:

@RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

}

4.3.3用户积分界面

管理员可以查看和管理用户的积分情况,包括积分的获取途径、使用情况等。界面如下图4-10所示。

图4-10用户积分界面图

4.3.4教师积分界面

管理员可以查看和管理教师用户的积分情况,以及监督教师积分的合理获取和使用。界面如下图4-11所示。

图4-11教师积分界面图

4.3.5积分奖品界面

管理员可以管理网站提供的积分奖品,包括添加新奖品、编辑奖品信息、删除奖品等操作。界面如下图4-12所示。

图4-12积分奖品界面图

4.3.6用户兑换界面

管理员负责管理用户通过积分兑换奖品的操作,审核兑换请求,确认发放奖品。户。界面如图4-13所示。

图4-13用户兑换界面图

第5章软件测试

测试存在于软件开发进程中的最后一个阶段,它可以保证一个软件的开发质量是否符合设计者的初衷,也为程序的正式上线做了最后一道质量检测的工序。软件测试主要是控制各种条件、包括软件输出方式,使用模式和运行环境等,来评估一个系统或应用是否符合设计标准。在软件测试过程中,我们一般刻意的去制造错误和极端条件,不能仅依照正常模式允许,而是多去尝试那些意外的情况。

5.1软件测试的重要性

只有在运行和维护阶段之前经历大量的测试的软件,才能说明它的质量是经得起检验的。最近计算机业界也都一致认为,测试应该存在于软件设计的每个阶段,因为越早发现错误,修复起来就越容易。

实际上,对于一个软件应用,错误是必然存在的,无论使用何种技术或手段,都不可能绝对的排除软件漏洞。测试是随着软件开发一同诞生的,两者是共同发展进步的。实际上,测试可以大幅度的降低维护的成本,如果一个漏洞在开发的早期就被发现,那么修复它的成本远比上线后再修复的成本要低得多。

5.2测试实例的研究与选择

测试有白盒测试和黑盒测试两种方式。

其中,白盒测试是将软件看成一个透明的白盒子,按照程序的内部控制结构和处理技术逻辑来选定测试用例、软件系统测试的逻辑路径及过程需要进行管理测试,又称玻璃盒测试。因此白盒测试需要选择足够多的测试用例,覆盖尽可能多的代码来发现程序中的错误。

黑盒测试,也称为功能测试。它将需软件看作一个黑盒,像一个普通用户一样来模拟软件的使用流程。黑盒测试通过大量的输入边界值或错误数据,来检查是否可产生正确的输出。

本系统测试 主要选择黑盒测试,少量采用白盒测试。通过测试达到以下测试目的:

1.检查各大功能模块的运行,确保其能够正确运行,并检查各页面的完整性,保证页面完整。

2.检查各个接口是否可以正确地输入和输出,保证数据流通稳定可行。

3.检查数据结构,保证其和外部接口没有访问错误,访问顺利。

4.检查原计划的性能需求有没有完成,运行流畅。

本系统的测试用例(部分):

登录部分测试用例

编号

对象

项目

操作

预期结果

结果

1

登录

登录提示

使用正确的账号密码登录

成功登录

预期结果

2

登录提示

使用正确的账号但错误的密码登录

提示密码错误

预期结果

3

登录提示

使用错误的账号登录

提示不存在账户

预期结果

4

登录提示

不输入账号,点击登录

提示输入账号

预期结果

5

登录提示

输入账号但不输入密码点击登录

提示输入密码

预期结果

6

登录入口

已登录账号,查看登录入口

不显示登录入口

预期结果

5.3测试环境与测试条件

处理器:Inter Core I7-4710MQ四核处理器

内存:4GB

硬盘:1T

操作系统:Windows 10

数据库:MySQL

5.4系统运行情况

全部测试用例都已通过(包括但不限于以上测试用例),且不存在漏洞,实现了论文开始时所作要求。本系统运行稳定,使用流畅,可以满足客户需求。

5.5系统评价

5.5.1系统功能评价

试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。

5.5.2系统技术评价

系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。

5.5.3系统经济评价

在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。


第6章 总结

随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。该课题是英语学习网站以交流为核心展开的。本研究针对英语学习网站需求建模,数据建模及过程建模分析设计并实现程序研究的过程。给出系统应用架构并分析优劣势,通过功能分解图,系统组件图描述功能需求。设计建立了数据库,给出系统关键数据结构的定义。通过类关系图描述组件间的协作关系,给出各个类的定义方法。通过描述每一个类的字段,属性及方法实现系统的前后端代码。最终给出系统集成整合方法,完成英语学习网站的设计与实现。投入运行时,各功能均运行正常。系统的每个界面的操作符合常规逻辑,对使用者来说操作简单,界面友好。整个系统的各个功能设计合理,体现了人性化。

但是由于自己在系统开发过程中对一些用到的相关知识和技术掌握不够牢固,再加上自身开发经验欠缺,因此系统在有些方面的功能还不够完善,考虑的不够全面,因此整个系统还有待日后逐步完善。


参考文献

[1]赵彩霞,张栽培,杨璇.基于Java编程导航学习平台开发设计的研究[J].家电维修,2024,(03):62-64.

[2]李昕洋.Java EE后端计算机软件的设计与实现[J].电子技术,2024,53(02):70-71.

[3]雷欣,马宏琳,郑霖,等.基于SpringBoot的域名信息系统设计与实现[J].电脑知识与技术,2024,20(05):44-47.DOI:10.14004/j.cnki.ckt.2024.0188.

[4]白茹鑫.基于SpringBoot+SSM框架的企业安全培训管理系统设计与实现[J].现代信息科技,2024,8(01):44-49.DOI:10.19850/j.cnki.2096-4706.2024.01.009.

[5]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.

[6]Nurhadi B ,Arief M F ,Shofiyatul Q .Analysis of Vegetation Carbon Stock Using Remote Sensing In Penggaron Forest, Central Java Province[J].IOP Conference Series: Earth and Environmental Science,2023,1268(1):

[7]Mohammad M ,P. H S ,Hartuti P .Micro and Macro Scale Policy Framework to Decrease Risk of Flood Disasters in Central Java Province[J].IOP Conference Series: Earth and Environmental Science,2023,1268(1):

[8]M R ,T A M ,S A .Morphological and molecular identification of java barb () from East Java Province[J].IOP Conference Series: Earth and Environmental Science,2023,1273(1):

[9]Volkan H A .WebCollectives: A light regular expression based web content extractor in Java[J].SoftwareX,2023,24

[10]A S ,A M E ,S R , et al.Diversity of Fruit Flies on Three Varieties of Mango in Kuningan Regency, West Java, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2023,1287(1):

[11]林圣峰,姚锦江,林涛,等.基于SpringBoot的高校实验室管理系统设计[J].无线互联科技,2023,20(18):80-82.

[12]单树倩,任佳勋.基于SpringBoot和Vue框架的数据库原理网站设计与实现[J].电脑知识与技术,2021,17(30):40-41+50.DOI:10.14004/j.cnki.ckt.2021.2868.

[13]孙岩,李晶.基于SpringBoot的旅游资源管理网站的设计与实现[J].信息技术与信息化,2021,(01):37-39.

[14]吴俊芳,欧阳慧.基于数字化专题学习网站的教学模式研究——以“英语视听说”课程为例[J].教育教学论坛,2020,(40):234-235.

[15]汪微琦,吴俊芳.以英语视听说专题学习网站为载体助力学生自主学习能力的培养[J].教育教学论坛,2020,(39):179-180.

[16]李孟津,杨丹.基于SpringBoot的在线招聘网站的设计与实现[J].科学技术创新,2020,(26):98-99.

[17]谢利君.基于英语专题学习网站的大学英语自主学习模式研究[J].校园英语,2020,(31):51-52.

[18]罗路腾,王贵鑫.基于Springboot的博客网站的设计与实现[J].科学技术创新,2019,(33):64-66.

[19]皋德春.英语学习网站资源在初中听力课堂中的应用[J].内蒙古教育,2019,(23):66-67.

[20]周婷婷.中国英语学习网站双语栏目文章汉译现存问题与对策[D].福建师范大学,2019.DOI:10.27019/d.cnki.gfjsu.2019.000624.

   谢

大学生活在这个时候即将划上一个句号,但是对于我的人生道路来说,这仅仅是一个逗号,我将面对的是又一次征程的开始。

回忆过去,许许多多的事情浮现在脑海:刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢学校所有支持帮助过我的老师,谢谢你们多年来的关心和爱护。同窗的友情同样难忘,你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。

最后,我要特别感谢指导英语学习网站设计的老师。本论文是在他的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。老师无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向老师表示衷心的感谢和崇高的敬意,谢谢他细心而又耐心地辅导,使得我得以顺利的完成毕业设计开发工作,同时也要感谢其他帮助过我的老师和同学,他们在我成长过程中给予了我很大的帮助,在此一并表示感谢。

由于本人水平有限,加上时间紧促,本文一定有不少缺点和不足,恳请各位老师给予帮助和指正。

请关注点赞+私信博主,免费领取项目源码

标签:10,毕设,varchar,int,Spring,用户,源码,英语
From: https://blog.csdn.net/Q_3461074420/article/details/143303694

相关文章

  • SpringMVC笔记 一万字
    此笔记来自于B站尚硅谷文章目录一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建sprin......
  • 【开题报告+论文+源码】基于SSM的电子书库系统
    项目背景与意义随着互联网技术的快速发展和智能设备的普及,人们的阅读习惯正逐渐从传统的纸质书籍转向电子书籍。在线阅读以其便捷性、实时性和丰富性受到了广大读者的青睐。然而,现有的在线阅读平台在用户体验、资源管理和个性化推荐等方面仍存在一定的不足,无法满足读者日益增......
  • SpringBoot抗疫物资调配系统开发
    第1章概述1.1研究背景随着现代网络技术发展,对于抗疫物资管理系统现在正处于网络发展的阶段,所以对它的要求也是比较严格的,要从这个系统的功能和用户实际需求来进行对系统制定开发的发展方式,依靠网络技术的的快速发展和现代通讯技术的结合为用户带来方便,可以方便管理员网......
  • 【含文档+PPT+源码】基于Python校园跑腿管理系统设计与实现
    项目介绍本课程演示的是一款基于Python校园跑腿管理系统设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料2.带你从零开始部署运行本套系统3.该项目附带的源码资料可作为......
  • 基于SpringBoot的抗疫物资智能管理平台
    第1章概述1.1研究背景随着现代网络技术发展,对于抗疫物资管理系统现在正处于网络发展的阶段,所以对它的要求也是比较严格的,要从这个系统的功能和用户实际需求来进行对系统制定开发的发展方式,依靠网络技术的的快速发展和现代通讯技术的结合为用户带来方便,可以方便管理员网......
  • SpringBoot项目集成MinIO
    一、MinIO的下载安装以及基本使用1.下载地址:https://dl.min.io/server/minio/release/windows-amd64/minio.exe2.下载好后需要手动创建data文件夹用于存储MinIO中的数据 3.键入cmd 4.设置MinIO的一些变量(第一次启动需要配置)setMINIO_ROOT_USER=adminsetMINIO_ROOT_P......
  • Springboot计算机毕业设计高速公路联网收费系统13z1s
    Springboot计算机毕业设计高速公路联网收费系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,业务员,收费路段,收费类型,缴费信息开题报告内容一、项目背景随着高速公路网络的不断扩展和交......
  • Springboot计算机毕业设计高校仪器管理系统zr0a9
    Springboot计算机毕业设计高校仪器管理系统zr0a9本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,仪器类型,仪器信息,仪器借用,仪器归还,学院,仪器报修,仪器维修,仪器报废开题报告内容一、选题......
  • 【关注可白嫖源码】招聘管理系统(案例分析)
    摘 要    本文旨在设计与实现基于Node.js的招聘管理系统,旨在提升招聘流程的效率和便捷性。通过深入研究Node.js在Web开发中的优势和应用,结合招聘管理系统的需求,构建了一个功能强大、易于使用的系统。利用Node.js的非阻塞I/O、事件驱动等特性,实现了系统的高并发处理......
  • Springboot计算机毕业设计工业大学医务室管理系统n2t8c
    Springboot计算机毕业设计工业大学医务室管理系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:学生,教师,科室名称,医生,预约信息,取消预约,开药信息,缴费信息,药品信息,药品入库,药品出库,出诊......