施峰 张瑾
摘要:计算机软件开发已经成为较热门的行业,许多不同行业的用户纷纷开始学习计算机编程。计算机专业课程很多,编译原理已成为一门重要的计算机必修课,得到了越来越多的高校和自学人群的重视。一个好的编译原理课程网站不仅能提高用户学习这门课的效率,而且能够解决在学习中带来的困惑,也在一定程度上节约时间成本。针对这种情况,设计了一种基于SSM框架的编译原理精品课程网站。该网站采用SSM框架,后台使用MySQL数据库存储数据,使用了Java编程技术,能够实现数据的高效传输,并且具有较好的用户体验。
关键词:精品课程网站;MySQL数据库;SSM框架;留言管理
一、引言
本文将对在校大学生和自学计算机编程课程的人群对课程网站管理需求进行调查与分析。基于这项调研的结果,提出了一种基于SSM框架的编译原理精品课程网站的设计方案。在设计过程中,遵循MVC分层思想的原则,并采用MySql5.0数据库、Tomcat6.0服务器和Java语言进行开发。通过实现一些基础功能,基本满足了精品课程平台的需求。还通过对精品课程网站中不同版块的管理,进一步完善了精品网站的建设。此外,还提高了自学人群的学习效率,并为教师与学生的互动交流提供了一个平台。
二、精品课程网站设计与实现现状
随着计算机技术在社会各个领域的广泛应用,计算机软件开发已经成为一个相当热门的行业,许多不同行业的人开始学习计算机编程。计算机专业课程非常丰富,其中编译原理已经成为一门重要的必修课程,越来越多的高校和自学者开始重视它。学习这门课程对于将来从事计算机编程领域的工作是有帮助的。
编译原理本质上是一个算法问题,对于很多学生来说,刚开始接触学习时可能会有一定难度。在校学生在课堂上有老师的辅导,但这远远不够,他们还需要在课后定期查漏补缺。而对于自学者群体来说,大部分都是自力更生,需要查阅书籍和观看视频,这段时间可能也会浪费很多时间。为了解决这个问题,基于用户需求,开发了一个专门用于学习编译原理课程的网站,供自学者使用。通过使用这个网站,用户可以进行系统的学习,提高编译原理的学习效率,解决学习中的困惑,并在一定程度上节约时间成本。
三、精品课程网站核心技术
精品课程网站采用的是B/S模式设计结构,开发环境工具使用的是MyEclipse2020版,后台采用的是MySQL5.0作为存取数据的数据库,服务器使用的是Tomcat6.0。底层编程语言是Java。网站系统架构采用三层架构,以MVC分层思想为原则,使用SSM框架进行整合开发。
(一)Java语言
Java是一门面向对象的程序语言,具有简单性、健壮性、安全性和动态性等特点[1]。Java语言和传统C++语言有很多相似之处,都是面向对象的语言,不同之处在于二者运行机制。C++使用指针运行机制,而Java使用垃圾收集机制。由于Java具有可移植性的特点,常被广泛应用于编写桌面应用程序、Web应用程序和分布式系统应用程序等。正因为这些特点,它深受许多开发者的喜爱。
(二)HTML/CSS
HTML是一种超文本标记语言,主要由
(三)MyEclipse
MyEclipse是基于Eclipse工具进一步演化而来的,它具有独立的插件,为开发人员提供了高效且可扩展的开发环境。同时,MyEclipse还提供了许多新功能,便于后期的维护和管理。目前,MyEclipse可用于Java、JavaWeb、JavaEE和移动应用程序的开发。开发人员可以使用这个工具进行多种操作,包括编码、测试、调试和发布等功能。它与框架技术很好地融合,为后续开发提供了许多便利。
(四)MySQL
MySQL是一种广泛应用于中小型企业的关系型数据库管理系统[2]。它支持SQL语言,具有综合统一、高度非过程化和面向集合等特点,可以与不同的编程语言良好地配合使用。本网站选择MySQL作为数据库的原因是,它具有较低的使用成本,并且可以与本网站使用的Java语言很好地结合。
(五)Tomcat
Tomcat由Apache、Sun等公司及个人共同开发而成,是一个免费的开放源代码的Web应用服务器[3]。Tomcat由三大核心组件构成,分别是Web容器、Servlet容器和Jsp容器。每个容器对应完成不同的功能。
四、精品课程网站需求分析
在系统开发过程中,需求分析是整个项目计划阶段最关键的环节。需求分析是指对软件开发的需求进行整理和归纳,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义。在对自学人群进行了调研分析之后,为了满足大多数用户的需求进行系统设计,系统应具有几个重要的模块,包括系统数据维护、课程信息管理、资料信息管理、用户信息管理、留言信息管理、课程查询管理等。其中,基本信息管理模块主要是管理员对后台上架的课程信息进行在线编辑和修改;用户信息管理模块主要是对注册用户账号和密码的维护以及系统登录权限的设定;系统数据维护模块主要是对数据库中的数据进行备份和恢复;资料信息管理模块主要是管理员对上传的资料进行编辑和修改;留言信息管理模块可以定期回复用户留下的问题;查询管理模块可以根据用户的条件进行在线检索。
五、精品课程网站设计与实现
网站用户类型分为管理员、注册用户和教师,每一种类型对应一种权限[4]。对于没有注册的用户统称为游客,游客只能在线浏览教学资料,不能进行其他操作。注册用户后可以使用网站内的课程管理、资料下载、在线检索和在线留言等功能,以系统地学习编译原理课程。教师登录后可以管理自己建设的课程,具体包含课程管理、留言管理、资料管理、留言管理和用户管理等功能。管理员登录后只能进行网站层面的管理,包括教师管理、学生管理以及网站配置方面等[4],不包含任何与课程有关的功能。
(一)系统功能设计
本网站分为前台模块和后台模块[5]。前台模块是与用户直接交互的部分,用户在前台页面中接触到所有元素,如字体、颜色、图片、导航和轮播图等,都是通过HTML页面来实现的。后台模块是整个网站管理的重要入口,主要功能是对前台内容进行管理以及一些功能的管理。前台模块侧重于用户的使用,需要考虑良好的用户体验度,而后台功能则侧重于功能的实现,需要考虑代码的精简性。
1.前台模块功能
用户管理模块:游客可以通过网站首页在线注册、使用个人的账号密码登录,并修改个人信息[5]。
精品课程模块:用户登录成功后,可以在这里学习编译原理这门课的知识点。目前网站内容主要以文本和图片的形式进行展示,用户可以点击标题自行查看所学内容。
资料下载模块:此页面的内容只针对注册会员开放。未注册的用户目前没有下载资料的权限,只能在线浏览教学资料,不能进行其他操作。注册会员可以根据条件选择所需资料进行下载和查看。
问题留言模块:注册用户在使用网站学习过程中,可以将需要答疑的问题上传至该留言模块,以便后期课程教师能够第一时间看到问题并回复。
查询信息模块:注册用户可以按照条件筛选课程,然后进行在线检索,查询所需的课程学习资料。
2. 后台模块功能
管理员维护模块:管理员可以对注册用户和教师的信息进行修改、创建和删除账号等。
教师维护模块:教师成功登录后,可以修改个人信息。
课程管理模块:教师可以在后台上传有关编译原理的课程,也可以对系统发布的旧课程进行下架或重新编辑上传。
留言管理模块:教师可以查看、回复和删除用户在留言板上的留言内容。
资料信息管理:该模块的功能类似于课程管理功能,教师可以上传和更新关于编译原理的学习资料供用户查看和下载。
3.网站功能实现
网站前台功能实现包含用户管理功能实现和用户课程管理功能实现。
1.用戶管理功能实现
用户初次登录网站需要注册一个新账号。在登录界面中,用户输入账号和密码后,点击登录按钮,系统将调用方法层中的Login()方法,获取网页表单中输入的值,然后将该值传入到Select方法中进行用户查找。并且再返回User对象,判断User对象的值是否为NULL,如果不为NULL则表示有这个数据,用户登录成功;反之登录失败,用户需要进行在线注册。用户点击“注册”按钮,填写网页上的字段信息,再点击提交按钮。系统将调用方法层中的AddUser()方法,获取网页表单中的值,创建一个新对象,并根据用户名查找数据库中是否已存在该用户。如果存在,则显示注册失败;反之则注册成功,并调用Add()方法将数据插入到数据库中。
2.用户课程管理功能实现
用户课程模块中主要由Index函数、New函数、Update函数、Edit函数、BatchDelete函数进行调用与处理操作。Index函数可以实现显示课程列表数目;new函数是实现增加课程的函数,方法中model属性对象由Model.AddAttribute()方法实现,里面传tcourse参数,就会相应返回course文件下的edit jsp页面;Edit函数可以实现在线修改,Update可以实现更新操作[6],先判断课程的id是否存在,如果存在,就记录需要修改的id号,数目进行加一的操作,最后将调用Session的SaveOrUpdate方法,会对数据库中数据进行操作;BatchDelete函数可以实现对课程进行批量删除,函数中用到了集合,使用集合存储判断的结果。
3.资料信息管理功能实现
通过创建Downloadaction类,对FileName()的方法设置了私有的方法,GetFilename()方法中会返回filename这个类型,它指的是文件下载名定义的变量。在InputStream方法中定义一个路径参数,把url传过来的中文参数进行编码,之后再把编码过的赋值到这个NewFileName对象中,在之前的需提前配置sturts.xml文件。Action类中GetInputStream()方法需提前进行抛出异常的操作。InputStream表示的是文件下载的来源流,它对应着Action中inputStream的属性名,route保存的是已经编码过的路径,会把这个值返回来。Param对象标签有inputname、contentdisposition和buffersize分别代表的是来源流,文件下载的方式包括内联和附件的方式,当用户开始进行下载的时候,默认会优先选择以附件的方式弹出对话框,进行下载,否则会把加载的内容直接显示在页面上,默认的方式是内联的方式,buffersize代表的是下载文件缓冲区,是文件临时存放的地方。
4.留言信息管理功能实现
该功能通过调用DoGet方法,获得相应的编码,title内容和message内容,然后通过request中的session中取出当前用户对象,建立留言表对应JavaBean对象,把数据封装进去。其次,在调用带参数方法AddInfo()传入数据,括号中的所有参数都是留言信息表contact中要保存的字段变量。通过已经写好的对象方法连接数据库的Dao类,在不抛出异常的情况下,找到数据库中的留言信息表contact,通过SQL语句insert into把在页面表单中输入的数据插入到留言信息表contact中,或者update语句更新留言信息表中已存在的数据。
当用户如果是第一次访问该Servlet,用户对象为空,如果登录成功,将获取的对象保存在Session中 ,通过FindMbInfo()获取留言板的内容,返回一个数组,最后将数组的内容保存起来,通过Url直接跳转到success.jsp页面上,反之跳转到error.jsp页面上。
5.查询信息管理功能实现
该功能主要通过strsql变量在数据库中查询的地址实现。先从课程表中定义多个course_id、course_name、type等字段,然后根据条件进行检索,对此代码抛出异常,在查询数据时需用分页控件PageModel分页多条记录。同时,为了减少页面的跳转执行效率,采用Ajax异步刷新来实现分页查询。
(二)网站数据库设计
通过对整个精品课程网站进行需求分析和功能设计,确定了网站需要哪些实体,再对网站的属性进行分析,最后得出了网站需要几个数据库表。以下为精品课程网站所需的四种数据库表的结构。
用户信息表:账号、姓名、手机号码、联系地址、角色id、是否可用、角色名称、创建时间、密码、是否管理员。
留言信息表:留言ID、用户、邮箱、手机号码、内容、发送时间、反馈时间、反馈内容、用户ID。
课程信息表:课程名称、创建时间、课程简介、类型、图片地址。
教师信息表:编号、教师用户名、教师密码、创建时间、备注、权限。
(三) 網站数据库连接
经过网站需求分析、整体功能实现、代码实现功能到数据库的初步设计,接下来就是网站设计中最关键的一步如何使用java语言与数据库进行整体的连接,使用户和管理员在操作过程中得到数据能够持久化的保存,具体连接步骤如下:
①导入JDBC类;
②装载/注册驱动程序;
③连接数据库;
④创建语句对象;
⑤执行SQL语句;
⑥处理结果;
⑦关闭连接。
六、结束语
本文通过调查与分析在校大学生和自学计算机编程课程的人群对课程网站的管理需求。设计了一种基于SSM框架的编译原理精品课程网站,以MVC分层思想为原则。采用了MySql5.0数据库、Tomcat6.0服务器和Java语言设计开发,基本实现了精品课程平台应具备的一些基础功能。通过对精品课程网站中不同板块的管理,进一步完善了精品网站建设,同时也提高了自学人群的学习效率,为教师与学生的互动交流提供了平台。
作者单位:施峰 张瑾 江苏开放大学
参 考 文 献
[1]周子淳.基于Java的校内社交网站设计与实现[J].电脑知识与技术,2020,16(36):89-91+94.
[2]张超,王亮,翟乃强.校园网网站LAMP配置及移植[J].青岛远洋船员职业学院学报,2012,33(02):64-67.
[3]李颖. 基于J2ME平台的移动应用系统的研究与实现[D].南昌大学,2007.
[4]窦立君,张金凤,吴尧.基于JSP的精品课程网站设计与实现[J].电脑知识与技术,2016,12(28):33-35.
[5]王雪,李宛盈.校园二手物品交易网站的设计与实现[J].科学技术创新,2021(26):102-103.
[6]陈露露. 融资租赁业务管理系统的设计与实现[D].曲阜师范大学,2020.