摘要:近些年,随着传统国风文化的兴起,国学诗词也走进了普通民众的生活。国学诗词网站提供了一个便捷的平台,使用户能够随时随地地浏览和学习国学诗词。该网站不仅提供了传统诗词的文本解读和注释,还可以通过文字、图片、视频等多媒体形式分享国学诗词,让国学诗词以更加生动、直观的方式呈现给了用户,满足了用户多样化的学习需求。
关键词:古诗词;学习平台;JSP;Java;MySQL
中图分类号:TP311文献标识码:A
文章编号:1009-3044(2024)34-0054-03开放科学(资源服务)标识码(OSID):
0引言
国学诗词是中华民族精神文化的结晶,代表了中国传统文化的精髓。在被古诗词熏陶的同时,人们也在不断探索新的方式去弘扬和传承这些珍贵的文化遗产[1]。然而,在新媒体环境下,古典诗词文化的阅读推广中仍存在一些问题,如受众面窄、形式单一、缺乏互动性等[2]。国学诗词网站的设计与实现正是为了解决这些问题。
该网站提供了一个便捷的平台,让用户能够随时随地欣赏和学习国学诗词。相比于现有的古诗词学习软件,本网站不仅能提供全面的诗歌鉴赏与解析,还支持通过视频、图片等方式分享古诗词,在思维碰撞中激发新的灵感。此外,网站还设有在线测试与排名功能,帮助用户更好地掌握古诗词的内容和知识。
本网站采用Java编程语言和JSP框架进行实现,使用浏览器/服务器(Browser/Server,B/S)架构模式。其中JSP全称JavaServerPages,是一种基于Java的服务器端编程技术,用于构建动态网页和Web应用程序[3],B/S架构模式让用户可以随时随地通过浏览器访问该网站[4],非常便利。
1系统设计目的
本课题的研究目的是设计与实现一个国学诗词网站,让用户能够轻松搜索与品读古诗词。用户可以根据关键字搜索诗词信息,查看古诗词的注释、翻译以及赏析等相关信息。在交流模块,用户可以进行诗词的二次创作,并以文字、图片、视频等形式分享。此外,在线测试与排名模块可帮助用户学习和巩固古诗词相关知识,提高文学修养。
2系统模块设计
本网站分为普通用户和管理员用户,所以本网站分为两大模块:普通用户模块和管理员模块,两个模块又被细分为各个子模块,本网站的功能模块图如图1所示。
各模块具体设计如下:
1)普通用户模块。
①用户注册与登录模块。游客仅能查阅网页内容,进行下一步评论、收藏等操作须先注册登录。注册时须填写用户名、昵称、密码等信息,若用户名重复则提示“该用户已存在”,更改用户名,直至用户名与已注册用户名不重复,即可进行注册。
②用户后台信息管理模块。登录后,点击后台管理,用户可查看并修改个人信息,管理个人分享和收藏夹。其中对个人分享的查看、删除和收藏步骤如下:点击我的帖子,用户可以查看自己发布的个人分享,删除不满意的帖子,打开收藏夹可以查看收藏的古诗词,进行详情查看或者删除。
③古诗词查询与赏析模块。网站首页根据点击量推送热门古诗词和随机推荐两名诗人。用户可按古诗词分类或者根据关键词搜索古诗词(输入关键词进行模糊查询,如搜索“李”将显示诗人名/诗词名包括“李”的所有诗词),点击作者可查看作者详情,点击古诗词可查看古诗词详情,如原文、译文注释以及赏析,并进行收藏或评论。
④个人分享查看与发布模块。用户登录系统后,在首页点击个人分享,进入个人分享模块后,可发布自己录制的视频、查看网站上其他用户的分享。用户可查看个人分享并评价。
⑤在线测试与排名模块。用户登录系统后,在首页点击答题,可参与在线测试,系统自动评分并排名。
2)管理员模块。
管理员登录进入网站后台,对网站的信息进行管理。
①用户信息管理模块,对系统中的用户信息进行管理,包括查看、添加、修改、删除操作。
②古诗词类别管理模块,对古诗词的类别信息进行管理。
③诗人管理模块,对诗人的信息进行管理。
④古诗词信息管理模块,对古诗词作者、朝代、正文、赏析、点击量等信息进行管理。
⑤个人分享管理模块,对用户分享内容的合法性和合规性进行审核。
⑥在线测试题库管理,对测试题目信息,如题目、答案等,进行管理。
总的来说,国学诗词网站充分利用现代信息技术,为用户提供了一个集查阅、分享、学习于一体的国学诗词交流平台,旨在弘扬中华优秀传统文化。
3主要功能的实现
国学诗词网站的数据表包括用户信息表(users表)、管理员信息表(admin表)、个人分享信息表(bbs表)、个人分享详情信息表(bbsans表)、收藏信息表(collect表)、古诗词评论信息表(comment表)、在线测试随机抽取试题表(emore表)、在线测试试题信息表(question表)、诗人信息表(poet表)、古诗词信息表(po⁃etry表)、古诗词类别信息表(ptype表)、古诗词排序表(ptop表)、用户测试分数表(records表)。
3.1古诗词查询与赏析
古诗词查询模块的处理过程为:通过cn.query()方法执行SQL查询语句,查询出符合条件的诗歌记录。SQL查询语句是:select*frompoetryaleftjoinpoetpona.poid=p.poidwhere+where+orderbypiddesclimit+pageSize*(pageNow-1)+\",\"+pageSize。这里使用了左连接leftjoin来关联两个表poetry和poet,根据条件where进行筛选,并按照pid降序排列,然后使用limit关键字限制返回的记录数量。在一个while循环中遍历查询结果集rs,对每条记录生成一个card-li元素,包括诗歌的标题、内容、作者等信息。其中,使用lt;%=%gt;输出Java代码的结果到页面上,例如输出诗歌标题使用lt;%=rs.getString(\"ptitle\")%gt;。在生成的card-li元素中,诗歌标题被设置为超链接,点击后跳转到诗歌详情页面。
3.2古诗词收藏
在古诗词详情页面,可以对古诗词进行收藏,当点击古诗词时,通过lt;%=rs.getString(\"ptt\")%gt;动态获取数据库中的点击量数据,并显示在页面上。当点击收藏时,将生成一个包括了网站根路径和诗歌的ID的链接,以便在后台处理页面中能够准确执行收藏操作。其中lt;%=path%gt;是一个动态的服务器端变量,用于存储网站的根路径,collect_Add是添加收藏的页面接口,id参数是当前诗歌的ID。存入数据库后,访问时会查询出需要显示的评论记录,并根据分页显示在页面上。古诗词收藏成功后会提示:“收藏成功!”
3.3个人分享查看与发布
个人分享的内容包括图片、视频,界面如图2所示,该模块在页面中使用KindEditor富文本编辑器来实现图片、视频的上传,创建一个提交地址是lt;%=path%gt;/bbs_Add的表单,bbs是存放个人分享的数据库。这样用户上传个人分享时,就会自动更新至对应数据库。在输入框下方,引入了KindEditor富文本编辑器的相关样式和脚本,以及自定义的上传的地址和文件管理的地址。KindEditor提供了方便的文件上传和管理功能[6],用户可以通过编辑器上传图片、视频等文件,并且能够方便地管理已上传的文件。
3.4在线测试与排名
用户点击开始测试后,网站从数据库随机抽取10题,答题后自动计分。排名取平均分进行排名。在排名页面,将显示用户名、答题次数以及平均分。处理流程为:当用户点击开始测试时,将清空在线测试随机抽取试题表(emore表)中的数据,然后从在线测试试题信息表(question表)中随机选择了10条问题,并将结果存储在结果集rs中。通过循环遍历结果集rs中的每条记录,展示了问题的序号、内容,并为每个问题提供了4个单选按钮作为选项(A、B、C、D)。同时,将问题的id和正确答案插入到emore表中。用户提交后,与正确答案对比并判分。用户结束答题后,后台将从用户信息表(users表)和用户测试信息表(re⁃cords表)中联合查询数据,将结果按照平均成绩降序排列,并使用limit来限制每页显示的记录数量。
3.5管理员登录
管理员首先须进行身份验证,通过输入其专属的账号和密码来登录系统。成功登录后,管理员才能执行各项管理操作。处理过程为:根据输入的用户名和密码查询数据库,如果查询结果中有记录,表示管理员用户名和密码匹配成功,将管理员相关信息存储在session中,并重定向到管理员首页。如果没有匹配成功,则输出错误提示信息,并返回到登录页面。
3.6管理员管理
管理员管理是一个全面且细致的体系,它涵盖了多个核心管理模块,首先第一个小模块是网站首页,点击将跳转至设置好的首页(default.jsp),方便管理员对自己修改的信息进行查看。第二个小模块是用户管理,可以添加用户或对已存在用户进行管理,包括对用户信息的查看、修改以及删除。考虑到网站的后期使用,管理员可以通过用户名、用户昵称或者手机号对用户进行查询。
下面以用户信息添加、修改、删除为例,详细介绍管理员系统管理功能的实现:
1)管理员登录后,在功能栏中点击用户管理,点击添加用户跳转至添加用户界面。输入相关信息,添加用户成功后会提示:“操作成功!”,如图3所示。用户添加成功后,可以在用户列表进行查询,可以看见用户已通过后台成功添加。
2)点击编辑,修改用户信息。处理流程为:创建了一个数据库连接对象conncn=newconn(),用于与数据库进行交互。通过request.getParameter()方法获取了客户端请求中的参数值,包括id、lname、pass⁃word、username、photo、tel、email和f。执行用户信息修改的有管理员用户和普通用户。f=1,代表进行修改的是管理员用户,管理员用户权限可以修改普通用户的用户名。f≠1时,代表进行修改的是普通用户,普通用户无法对用户名进行修改,因为用户名是唯一标识码。在执行完更新操作后,弹出一个提示框显示“操作成功”,最后重定向到不同的页面。最后,通过out.flush()刷新缓冲区,确保所有内容被写入响应,然后通过out.close()关闭输出流,释放资源。
3)点击对应角色条目后方的删除键,确认操作无误后,前端会发送一个包含要删除条目标识符(用户名)的HTTP请求到后端服务器。确认删除后系统调用del方法删除。
4)通过SQL查询语句从名为users的表中选择特定字段的记录实现。在SQL中,进行模糊查询通常使用LIKE运算符。
管理员模块中的其他部分,如诗词类别管理、诗人管理、古诗词信息管理、个人分享管理、在线测试管理等,它们所实现的增加、删除、修改、查找等核心操作与用户管理在逻辑上是类似的,不再赘述。
3.7安全性设计
1)防SQL注入设计:防止SQL注入的关键在于对输入进行适当的验证、清理和参数化查询(或预编译语句)的使用,预编译语句是防止SQL注入的最佳实践。它通过将用户输入与SQL查询的其余部分分离,并将用户输入作为参数传递给查询,从而确保用户输入不会被解释为SQL代码。
2)使用拦截器进行访问拦截:在Web应用中,使用拦截器(Interceptor)是一种常见的方式来控制用户的访问权限和进行请求预处理/后处理。如果Session中不存在登录用户信息,即用户未登录,拦截器将重定向到登录页面,并在页面上显示提示信息“您还没有登录,请先登录”。如果Session中存在登录用户信息,即用户已登录,拦截器放行请求,用户可以正常访问系统主页。
4结束语与展望
国学诗词网站的设计意在让古诗词重新“跃然网上”,让随时随地学习品鉴古诗词成为可能,方便用户对古诗词信息进行查看、分享,提供了丰富的检索条件,并根据用户点击量进行古诗词推荐。古诗词不能再单纯地依靠纸媒传播,人们应借助科技的发展,让更多的人领略到古诗词的魅力。
目前,本国学诗词网站在个人分享内容(图片、文字、视频)的审核方面主要依赖人工审核,来确保分享内容的合规性。然而,随着用户数量的不断增长和上传内容的日益增加,现有审核机制将面临效率和规模的双重挑战。为了应对这些挑战,本网站将增加人工智能(AI)审核以提高审核效率、优化用户体验,AI审核包括文字识别、音频内容智能识别、图像识别等技术。但这些技术复杂度高,后续还需要进行深入研究和定制开发,将AI审核技术融入本网站,为广大用户带来更快的审核速度、更高的审核准确率以及更好的用户体验。
参考文献:
[1]陈夏.网络资源在初中古诗词教学中的应用研究[D].汉中:陕西理工大学,2023.
[2]夏莉,彭译玮,王鑫.古典诗词阅读推广的现状及发展:以“学习强国”和“哔哩哔哩”平台为例[J]三角洲,2023(15):188-192.
[3]刘超,江亮亮,邱广,等.基于JSP的数智化食材下单管理系统研究[J].信息与电脑(理论版),2024,36(3):56~59.
[4]黄飞,孙金泽.基于B/S结构的图像管理系统的设计与实现[J].中国高新科技,2022(4):139-140.
[5]袁琳琳.计算机软件Java编程特点及技术分析[J].数字通信世界,2023(12):87-89.
[6]吴代文.KindEditor在网站开发中的应用研究[J].计算机时代,2015(9):45-46,50.
【通联编辑:梁书】