基于JSP的动漫论坛

news2024/9/23 9:25:38

摘 要

作为文化产业的一部分,动漫影响了我国一代又一代青少年,据钱江晚报调查显示,有超过七成的95后愿意从事与动漫相关的行业,可见其对青少年影响力之大。
动漫论坛作为最先开始热爱动漫人士进行交流的方式之一,是爱好者们共享信息,寻找同伴的重要渠道之一。在这次毕业设计中,使用MVC模式,采用MySQL5.0数据库和JSP技术,开发了界面友好、操作简单易懂的动漫论坛。
在设计过程中,在以下论文里说明了九重天动漫论坛系统的设计方案,主要包括系统运用的关键技术,数据库设计,对各个功能模块的详细设计以及实现,本次设计主要实现论坛系统中以下几个功能:注册会员,会员登录,管理员登录,浏览帖子,发帖回帖,管理员具有删除用户,管理板块,能够增加、删除、修改板块信息的功能。

1. 绪论

1.1 课题背景

动漫产业作为文化产业的一部分,对我国青少年有着深远的影响。作为拥有完整产业链的动漫强国日本,仅动画与漫画占GDP的0.4%,其衍生了电视、电影、音像出版、传统出版、游戏软件开发、游戏机硬件制造、服装、小商品、餐饮等等行业。现如今,我国动漫产业发展迅速,由《秦时明月》《镇魂街》等优质动画为首掀起了国漫热潮,2015的《大圣归来》、2016的《大鱼海棠》收益颇丰。十二五期间国家明确要支持和壮大国有动漫企业,使其在发展产业和繁荣市场方面发挥主导作用。同时支持各类所有制动漫企业的健康发展。
动漫论坛作为动漫爱好者最早开始交流的平台之一,由于该产业的独特性,线上交流是爱好者们进行交互的主要方式。现在国内外著名的ACG论坛,如天使动漫论坛、精灵动漫论坛等注册人数均已过万。
为了是广大动漫爱好者更好的进行交流,本次课题设计了九重天动漫论坛。该论坛系统的设计方案包括论坛的设计与实现的相关技术、开发环境,数据库设计,对各个功能模块的详细设计,包括注册会员,会员登录,管理员登录,浏览帖子,发帖回帖,管理员具有删除用户,管理板块,能够增加、删除、修改板块信息的功能。

1.2 动漫论坛系统特点

动漫论坛系统有以下几个特点:
(1)人性化的界面
一个动漫论坛能否吸引人,其界面的美观是必不可少的,对于爱好者来讲,毫不夸张的说,一个是否让人感觉舒适、友好界面是决定其是否使用该论坛的要素之一。人性化的界面,让用户在使用时更加舒适。其界面风格也会由热门作品、节日等因素影响定期更换,保证了新鲜度,是用户不易产生审美疲劳。
(2)完整的管理功能
论坛系统一般有明确的制度,为此需要一套合理完整的管理功能,由于我们无法左右他人的思想和发言,会不可避免的出现过激的言论和不健康的内容,因此,一套完整的管理功能显得尤为重要。它约束用户的行为,定期清理不良信息。对于论坛的主题,帖子有着编辑增加修改的功能,对于用户也删除封号等功能,通过这些管理功能的实现来保证广大用户使用论坛的感受。
(3)覆盖 范围广
论坛的成员可以来自各个地方,大家因为同一个兴趣爱好聚集起来,由于是线上活动,所以对于成员的地域约束不是很大,因此论坛中成员的覆盖范围较广
(4)话题性明确
作为动漫论坛,其主题相当明确,用户也是针对爱好者这一群体。可以在论坛中讨论关于ACG相关的话题。

2. 可行性分析及需求分析

2.1 可行性分析

可行性研究的目的就是用最小的代价在尽可能短的时间里确定问题是否能够解决。但是这个阶段的目的不是解决用户提出的问题,而是确定这个问题是否值得去解决。其主要任务是,首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,必须分析几种可能的利弊,从而判定原系统的目标和规模是否现实,系统完成后带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实际上就是一次大大的简化了的系统分析和系统设计的过程,即以抽象的方式进行分析和研究。
首先需要进一步分析和澄清之前一部的问题定义。一般都要从经济、技术、操作和法律四个方面来体验每种解法的可行性,做出明确结论来供用户参考。
可行性分析通过对项目的前期投入、带来的收益、技术、环境影响、后续的影响等多方面的研究分析,对项目是否值得投资、是否建设等提出意见。为项目的决策提供了综合性的系统分析方法。
2.1.1 经济可行性
首先要进行成本——效益分析。从开发所需的成本和资源,潜在的时长和前景等方面进行估算,确定要开发的项目是否值得投资开发,即要分析在整个软件生存周期中所花费的代价与得到的效益之间的度量。
本动漫论坛系统是一个实现爱好者相互交流的系统,采用MVC结构体系;本系统使用的开发工具为MyEclipse8.5,均可以在网上免费下载并安装使用;MY SQL是本系统的后台数据库,同样也可以在网上免费下载使用。因此,基本无需支付任何费用就可以使用这些开发工具。另外,本系统完全由个人开发,除了个人的时间和精力的消耗之外,基本上没有什么经济方面的开发成本。
本系统的设计与开发是非商业性的,虽然没有经济方面的收益,但对于本人而言,既加深了本人对JSP技术的了解和掌握,也为以后的软件系统的设计和开发积累了一定的实践经验。
2.1.2 技术可行性
对要开发项目的功能、性能和限制条件进行分析,评价系统所采用的技术是否先进,使用现在的技术是否能实现系统打到的目标。技术可行性是从该项目实施的技术角度来探讨该项目是否可一实施。要从软硬件、环境以及技术人员等方面来做综合的考虑。
动漫论坛系统的开发主要包括前台和后台两个方面,不管是用户还是系统管理员都是通过浏览器(如火狐,IE等)进入该系统。对于系统前台,要求系统的界面友好、美观大方、操作方便等要求,实现注册会员,会员登录,浏览帖子,发表帖子,回复帖子的功能;对于系统后台则要求信息更新及时、数据存储安全可靠、数据一致性高及易维护等要求,要实现管理员登录,删除用户,管理板块,能够增加、删除、修改板块信息的功能。

本系统采用JSP技术,开发调试相对简单,灵活使用css可以使界面更加简洁美观友好, MyEclipse8.5集成开发环境是一套完整的开发工具集,可以用于生成基于JSP的应用程序,还提供MySQL数据库各种操作,这些大大提高了编程的效率和代码质量,而现在开发所需语言技术都是在大学期间学过的,从而在技术上为本系统的设计和开发提供了可能。
2.1.3 运行可行性
本系统操作简单,功能齐全。各个模块的操作都简单易懂,没有复杂的实现方式,再加上现如今互联网飞速发展,当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行的。

2.2 需求分析

软件需求分析是软件开发期的第一个阶段,是软件生存周期最重要的一步,是关系到软件开发成败的关键步骤。他在问题定义和可行性研究阶段之后进行。它的基本任务是准确地回答“系统必须做什么?”这个问题。虽然在可行性研究阶段粗略了解了用户的需求,甚至还提出了一些可行的方案,但是可行性研究的基本目的是最小的代价在尽可能短的时间内确定问题是否存在可行的解法,因此许多细节都被忽略了,一个微笑的错漏都可能导致误解或铸成系统的大错,在纠正时付出巨大的代价。因而可行性研究不能代替需求分析,他实际上并没有准确地回答“系统必须做什么?”这个关键问题。
软件需求分析是整个系统开发的基础。在此阶段结束前,系统分析员应该写出软件需求规格说明书,以书面的形式准确地描述软件需求。在此过程中,分析员和用户都是起着关键的、必不可少的作用。
双方确认对软件系统有下述几方面的综合要求:
功能、性能、可靠、可用、出错、接口、约束、逆向以及将来可能发生的。
所谓需求分析,就是要弄清楚问题的要求,我们要清楚地知道对于用户来讲,他要实现什么功能,他希望我们做到什么。在这个阶段与客户的交流十分重要,只有明确了客户的需求,才能制定出正确的计划,才能做出完整的、另其满意的项目,若一开始没有明确客户需求,那我们所追求的目标就是不正确的,制定的计划和努力的方向也随之发生了偏转,最后可能与客户需要的想去甚远,需要重头再来,这样就造成了大量资源、人力、财力的浪费。需求分析完成的好,对今后项目的开发百益而无一害,可以加快设计开发的效率,避免返工,节省时间,避免造成不必要的浪费。
2.2.1 功能需求
指所开发软件系统必须提供的服务,划分出系统必须完成的所有功能。在本动漫论坛系统中,存在下列功能需求:
A.面向普通用户的功能需求
1、注册用户
如果用户为非会员用户,通过注册,经审核通过之后成为会员,获得一个登陆身份。
2、登录
如果用户已经是注册会员,可以进行登录,登陆后实现别的功能。
3、浏览帖子
用户查看系统中的帖子,了解最新的资讯和各种动态等信息。
4、发布新帖
用户可以发表一些帖子,来与其他论坛用户共享信息。
5、回复帖子
对于自己或者别的会员发表的帖子,可以进行回复。
B.面向管理员的功能需求
1、管理员登录
对于已经登录的用户,若权限为管理员,可以进行管理员的登录,登陆之后才能有权限进行下一步操作。
2、帖子管理
管理员可以对发表的帖子进行查询、修改、删除等操作,对好的帖子进行标识,删除或转移不适合的帖子。
3、模块管理
论坛中的模块,管理员可对其进行添加、修改、删除等操作。
4、用户管理
用户注册成功后,管理员可以对用户进行添加、删除操作。
C.面向游客的功能需求:
游客可以对论坛进行访问,浏览帖子的功能,但不能参与回复操作,也没有发布帖子的权限。
2.2.2 非功能需求
动漫论坛系统比较重要的一点莫过于界面的设计,一个动漫论坛是否能吸引用户的第一印象取决于该界面是否友好,因此友好的界面也是该系统必不可少的。与其他论坛系统风格不同的是,动漫论坛要有自己独特的二次元风格,让爱好者有亲切、熟悉的感觉。

3. 系统开发环境及技术介绍

3.1 开发环境

本动漫论坛系统的运行平台设置分为硬件环境和软件环境。

(1) 硬件环境:系统的硬件环境配置为处理器Intel COREi5-3230M,内存4G,硬盘500G。
(2) 软件环境:系统的软件环境配置为:操作系统:Windows 7,数据库:MySql,JDK1.8、MyEclipse8.5开发工具包和MyEclipse自带的Tomcat服务器。

3.2 开发工具

3.2.1 MyEclipse8.5
MyEclipse是一个非常好的集成开发环境,旨在简化多操作系统软件工具的开发过程,可用于管理各种开发任务,包括测试,性能调优和程序调试,还可以从 针对多个供应商的第三方应用开发工具。 通过集成大量插件,Eclipse的功能可以扩展到支持各种不同的应用程序。主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错。
3.2.2 MySql
MySQL是一个关联的数据库管理系统,由瑞典MySQL AB 公司开发,它将数据与不同表中的数据进行关联,而不是将所有数据放在大型存储库中。 这提高了速度并提高了灵活性。 MySQL的SQL结构化查询语言是用于访问数据库的最常用的标准化语言。MySQL是开源的,所以不需要支付其他的费用,可以到官方的网站进行下载。MySQL不仅支持中小型的数据库,也支持拥有上万条数据记录的大型数据库。而且MySQL是适合于多个系统上的,它支持很多语言。也正是由于其体积小,速度快,总体拥有成本低,特别是开源这一功能,许多中小型网站为了降低网站的总体拥有成本,并选择MySQL作为网站数据库。

3.3 使用技术

本系统中使用了JSP技术、JDBC技术、MVC模式与struts框架技术

4. 总体设计

总体设计阶段的基本目标就是回答“概括的说,系统应该如何实现?”这个问题,因此总体设计又称为概要设计或初步设计。通过这个阶段的工作,开发人员将划分出组成系统的物理元素,如程序、文件、数据等。但这些物理元素还处于黑盒子的形式,具体的内部细节在详细设计考虑。总特设计的另一项任务是设计软件的总体结构,即确定系统中的每个程序有哪些模块组成,每个模块的功能及模块和模块之间的接口、调用关系等,但所有这些都不要求涉及模块内部过程的细节。

4.1 系统模块总体设计

九重天动漫论坛系统在设计时应满足以下几个目标:
1.使用人机交互的操作,查询信息快捷,方便后台管理,确保数据库的稳定性,其次是尽可能使界面美观。
2.为用户提供一个方便、快捷的专业特色信息查看功能。
3.实现在线添加专业特色。
4. 操作简单,易于理解,便于使用。
5. 屏幕设计简洁明快,屏幕元素布局合理。
6.用户随时都可以查看自己发表的建议。
7.系统要尽可能的设计成便于管理员维护和方便操作。
8.系统运行稳定安全可靠。

九重天动漫论坛的总体设计包括两大部分:一是前台的总体设计,也就是对于普通用户模块的设计,包括注册会员,会员登录,浏览帖子,发表帖子,回复帖子的功能;二是后台的设计,也就是对于管理员的模块设计,包括管理员对版块进行增加修改删除的操作,对用户进行删除操作,对帖子进行删除操作等基本功能。
功能结构如图4.1.1
在这里插入图片描述

4.1.1 普通用户模块设计

1、会员注册与登录
访问到论坛主页时,所有用户都默认为游客,只能执行浏览、搜索帖子的功能,希望进行下一步操作需要进行会员登陆。
如果用户为非会员用户,通过注册,经审核通过之后成为会员,获得一个登陆身份;登陆之后可以进行发帖,评论等功能。
2、会员登录
如果用户为会员,可以直接登陆。登陆之后才能进行发帖、评论等功能。
3、浏览帖子
访问到论坛时,页面会显示版块、分区和发表的帖子,用户可以直接浏览帖子的内容,也可以选择感兴趣的版块或者分区,从里面浏览该分区内的帖子的内容。该模块没有权限设置,无论是会员还是管理员都可以进行操作。
4、发表帖子
用户登陆后可以发表一些帖子来与他人共享最新资讯。
5、回复帖子
用户登陆后可以在自己或别人发表的帖子下发表评论或者回复,发表自己的想法。

会员在登录后可进行的操作如图4.1.2所示:

在这里插入图片描述

4.1.2 管理员模块设计

1、 管理员登录
对于已经登录的用户,若权限为管理员,可以进行管理员的登录,登陆之后才能有权限进行下一步操作。
2、帖子管理
管理员可以对发表的帖子进行查询、删除等操作。
3、分区管理
论坛中的分区,管理员可对其进行添加、修改、删除等操作。
4、版块管理(子版块管理)
论坛中的分区下有不同的版块,可以对指定分区下的版块进行添加、修改、删除等操作。
子版块位于版块之内,可以对指定版块进行添加子版块,编辑和删除子版块的操作。
5、用户管理
用户注册成功后,管理员可以对用户进行删除操作。

管理员模块设计结构如图4.2.1
在这里插入图片描述

4.2 数据库设计

良好的数据库设计,可以大大方便在开发过程中的编程。一个合理、有限的数据库设计可降低程序的复杂性,使程序开发的过程更为容易。
本系统是一个中小型的动漫论坛系统,考虑到开发成本、用户信息量客户需求等问题,决定采用MYSQL作为项目中的数据库。

4.2.1 数据库分析

通过对系统的需求和功能的分析将系统的数据结构主要划分为四个部分:用户、管理员、帖子、模块这四个。
用户执行的主要是注册会员,会员登录,浏览帖子,发表帖子,回复帖子的功能。
管理员则主要进行后台管理,包括对分区、版块以及子版块进行增加修改删除的操作,对用户进行删除操作,对帖子进行删除操作等基本功能。
帖子是用户之间进行交流的直接手段,其中包括帖子的题目,内容,发帖人,发帖时间,所属板块信息。
模块是最先展示给用户的,包括具体的分区、板块和子版块。模块间的关系,如:同级、上下层的关系要把握好。
从这上面的信息,我们可以将数据库这样设计:
设计四个表,信息如下:
t_user用于存放用户注册信息。
t_topic用于存放版面信息。
t_threads用于存放贴子信息。
t_forums用于存放论坛类别介绍。
这四个表的详细的逻辑设计详见4.2.3.

4.2.2 数据库结构设计

E-R模型的基本概念
ER图即实体关系图,是描述实体和关系的图。ER图构建实体间的关系模型。ER图的思想是:项目所有参与者能理解ER图。ER图的构成要素是:实体,关系类型,属性。实体是现实事物的形象或者抽象描述,必须有业务意义。特性是用来描绘实体,关系存在于实体之间
(1)实体:现实世界中的各种事物;
(2)属性:事物的特性;
(3)联系:事物之间的关系。实体的关系有一对一、一对多、多对多联系。
根据系统的总体设计,我们可以看出看系统的主要实体有用户、管理员、帖子、模块这四个。
大体的概念模型设计如下图4.2.2所示
在这里插入图片描述

4.2.3 数据库逻辑设计

表1 t_user(用户信息表)
序号 名称 别名 类型 长度
1 id 编号 int 11
2 userName 用户名 varchar 50
3 userPW 用户密码 varchar 50
4 realName 真实姓名 varchar 50
5 email 邮箱 varchar 100
6 userType 用户权限 int 11
7 isDel 删除标记 int 11
该表用于存放用户注册信息
id是t_user表的主键,是表示用户的编号。
userName是用户名,是用户登录所需要的信息之一。
userPW是用户密码,和用户名一起作用于用户登录。
userPW是用户真实姓名,用于用户注册,对管理员可见。
Email是邮箱,用于注册,对管理员可见。
Usertype 是用户类型,用来表示用户的权限,我们设置usertype为0的是管理员,具有更高的权限,usertype为1的是普通用户,只能实现前端的功能。
isDel是删除标记,表示该用户是否被删除,被删除用户发表帖子依旧能显示在论坛中,所以删除用户不是讲用户从数据库中移除,而是将其删除标记置为1。
表2 t_forums(论坛类别介绍表)
序号 名称 别名 类型 长度
1 fid 模块编号 int 11
2 type 类型 varchar 10
3 name 名字 varchar 100
4 fup 上级编号 int 11
5 status 状态 smallint 6
该表用于存放论坛类别介绍
fid是编号,用来表示管理员最近添加或者修改删除的分区、版块、子版块。是该介绍表的主键
Type表示的是类型,用来表示管理员实施操作是对分区、版块还是子版块进行的,通过type表示区分三者。
Name是名称,表示管理员实施操作时的分区、版块及子版块的名称。
Fup表示的上级模块,默认最顶层的为0,即每个分区的上层为0,每个版块的上层对应的编号是每个分区的编号(fid),每个子版块对应的上层编号是每个模块对应的编号(fid)。
Status表示状态,即这些模块存在与否,对于存在的记为“1”不存在的记为“0”.

表3 t_topic(版面信息表)
序号 名称 别名 类型 长度
1 pid 新帖编号 int 11
2 fid 模块编号 int 11
3 author 作者 varchar 100
4 authorid 作者id int 11
5 subject 标题 varchar 100
6 view 观看 int 11
7 replies 回复 int 11
8 addtime 发表时间 datetime 0
该表用于存放版面信息。
Pid即新帖编号,也就是发布的新的帖子的编号,是该表的主键。
fid是编号,用来表示新帖所属的模块(子版块)。
Author表示发帖的作者名字。
Authorid 表示发帖的作者编号。
Subject 表示发表的新帖子的内容。
View 表示有多少观看量(浏览量)。
Replies 表示回复帖子的数量。
Addtime 表示帖子发布的时间。

表4 t_threads(贴子信息表)
序号 名称 别名 类型 长度
1 tid 帖子编号 int 11
2 pid 新帖编号 int 11
3 fid 题目编号 int 11
4 ftype 类型 int 11
5 author 作者 varchar 50
6 authorid 作者id int 11
7 subject 标题 varchar 100
8 Content 内容 varchar 10000
9 addtime 发表时间 datetime 0
10 tnum 帖子数量 int 11
该表用于存放贴子信息。
Tid 即帖子的编号,这个帖子可以表示新发布的新帖,也可以表示是回复的帖子,是该表的主键。
Pid 即新帖编号,也就是发布的新的帖子的编号,如果帖子是回复帖子的话,该编号反应的是回复帖子所属于的帖子的编号。
Fid 是编号,用来表示新帖所属的模块(子版块)。
Ftype 表示帖子的类型,如果帖子的类型标志为“0”啧表示该帖是新发布的帖子,如果帖子的类型标识为“1”,则表示该帖子是回复别的帖子的帖子。
Author表示发帖的作者。
Authorid 表示发帖作者的编号。
Subject 表示帖子的题目。
Content 存放帖子的内容。
Addtime 表示帖子发布的时间。
tnum 表示帖子的数量。

论坛中所有的操作所产生的数据如:注册,登录,浏览帖子,发表帖子,回复贴子所产生的数据都需要放到数据库中存储。数据库中以数据表来存放各个功能模块相关的数据,数据库的设计对系统非常重要
数据库设计的合理与否,安全性,稳定性这些方面都直接影响着计算机论坛的运作。一个好的数据库设计方案,能够使网站的效率事半功倍。在对数据库的设计要格外的认真的分析,考虑的要周全细致。
要确定数据库的物理结构,在关系数据库MYSQL中主要是指存取和存储结构。若物理设计满足设计要求,即可实施,否则,需要重新设计或者修改物理结构,严重时甚至需要返回逻辑设计阶段对数据模型进行修改。
数据库是众多用户共享的系统,很多时候对同一关系需要建立多条存取路径才能满足多用户的多种需求。现代技术的飞速发展使得数据库存储变更简单、方便、易行。索引法和聚簌法都可以使物理设计顺利实现。

5. 功能模块的设计与实现

功能模块是指数据说明、可执行语句等程序元素的集合,它是指单独命名的可通过名字来访问的过程、函数、子程序或宏调用。功能模块化是将程序划分成若干个功能模块,每个功能模块完成了一个子功能,再软件结构图示把这些功能模块总起来组成一个整体。以满足所要求的整个系统的功能。功能模块化的根据是,如果一个问题有多个问题组合而成,那么这个组合问题的复杂程度将大于分别考虑这个问题时的复杂程度之和.
在本动漫论坛系统中,有以下几个模块:登录模块、注册模块、发表新帖模块、回复帖子模块、用户管理模块、分区管理模块、版块管理模块、子版块管理模块这几大模块,在本章中我们来对这些模块的设计与实现进行讨论。

5.1 主界面

主界面是论坛的门户,是给用户留下第一印象的重要界面,九重天动漫论坛的主界面包括用户登录注册、管理员登录、退出,分区,各个分区下的版块,各版块最后发表的帖子内容等信息。
主界面如下图5.1所示
在这里插入图片描述

5.2 前端

5.2.1 用户登录

用户进入主页面,若想浏览具体的帖子或者执行发帖、回复帖子等功能必须先登录。点击工具栏上“登录”按钮则进入登录页面(如图5.2所示)。该模块在用户登录要进行用户名和密码的有效性检验,查询用户表,如果该用户存在则进入主页面,如果用户表内没有用户相关信息,或者密码不正确,则不能登录成功,并弹出窗口提示用户名不存在或者密码错误,回到登录页面以便用户再次输入用户名及密码登录。

登录界面如下图5.2.1所示
在这里插入图片描述
主要代码:

public String login(String userName,String userPw)
	{
		String result="no";
		try
		{
			String sql="from TUser where userName=? and userPw=? and isDel=0 ";
			Object[] con={userName,userPw};
			
			List userList=userDAO.getHibernateTemplate().find(sql,con);
			if(userList.size()==0)
			{
				 result="no";
			}
			else
			{
				 WebContext ctx = WebContextFactory.get(); 
				 HttpSession session=ctx.getSession(); 
				 TUser user=(TUser)userList.get(0);
	             session.setAttribute("user", user);
	             result="yes";
			}	
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		return result;
	}



5.2.2 用户注册

若用户是第一次使用该动漫论坛,需要进行注册,点击工具栏中的“注册”按钮进入注册界面。注册成功后跳转至主界面,获得一个登陆身份,可以执行浏览帖子、发表新帖子和回复帖子等功能用户注册信息必须完善,如果两次密码不正确或者信息没有填完整,则不能完成注册并且提示错误,如“两次密码不一致”“请输入邮箱”“请输入真实姓名”,回到注册界面使用户继续完成注册。
注册界面如下图5.2.2所示
在这里插入图片描述

主要代码:

 public String userReg(){
		TUser user = new TUser();
		user.setUserName(userName);
		user.setUserPw(userPw);
user.setEmail(email);
user.setRealName(realName);
		user.setUserType(1);
		user.setIsDel(0);
		
		userDAO.save(user);
		
		Map session= ActionContext.getContext().getSession();
		session.put("user", user);
		this.setMessage("注册成功");
		this.setPath("bbs/jump.jsp");
		return "succeed";
	}



5.2.3 浏览帖子

一个论坛,帖子是用户之间交流最直接的手段,完成注册或者登陆后,用户可以通过选择感兴趣的分区、版块、子版块来浏览帖子。
浏览帖子如下图5.2.3所示

在这里插入图片描述

5.2.4 发表新帖

当用户完成登录之后,若要发布新帖,点击“新帖”发表新帖子,依次写入标题与正文内容,之后点击“发新话题”即完成新帖的发表。
发表新帖如下图5.2.4所示
在这里插入图片描述

5.2.5 回复帖子

对于已经发表的帖子,不论是自己发表的帖子还是别人发表的帖子都可以进行回复帖子的操作,在原贴内容最下方的“快速回复主题”中输入自己要回复的内容,点击“发表回复”即可完成回复帖子的功能。
回复新帖如下图5…2.5所示
在这里插入图片描述

5.3 后台管理

为了论坛能够更好的工作,后台的设计必不可少,后台是为了前台更加良好的运作而服务的。后台管理的功能只有管理员才能实现,要进入后台首先要进行管理员的登录,在后台管理中,我们有以下几个功能:分区管理:包括添加分区、编辑分区和删除分区;版块管理:包括添加版块,编辑版块和删除版块;子版块管理:包括在指定的版块下添加子版块、编辑子版块和删除子版块;帖子管理:可以查询和删除帖子;用户管理:可以查询和删除用户。
后台主界面如下图5.3.1所示:
在这里插入图片描述

5.3.1 管理员登录

为了进入后台进行操作,管理员首先要进行登录,管理员一开始的登录入口与普通用户相同,在进入到主界面后,管理员有“管理员登录”的选项。点击“管理员登录”即可进行到后台管理的登录操作。
管理员登录如下图5.3.2所示
在这里插入图片描述

5.3.2 分区管理

分区管理是将论坛的几个大的分区进行添加、修改、删除的功能。
A、添加分区:
点击“分区管理”框内的“分区添加”,管理员在“添加分区”的框内写入要新增的分区,点击“提交”即可完成分区的添加,对应数据库内新增一条信息。
添加分区如下图5.3.3所示:
在这里插入图片描述

主要代码:

public String toEdit(){
		TForums forums = forumsDAO.findById(fid);
		String txt = "";
		String td = "";
		List forumsList = new ArrayList();
		if(typeForum.equals(forums.getType())){
			//添加版块
			forumsList = getForumsByType(typeGroup);//获取分区
			txt = "编辑版块";
			td = "上级分区";
		}else if(typeSub.equals(forums.getType())){
			forumsList = getForumsByType(typeForum);//获取版块
			txt = "编辑子版块";
			td = "上级版块";
		}else{
			txt = "编辑分区";
		}
		
		Map request=(Map)ServletActionContext.getContext().get("request");
		request.put("forumInfo", forums);
		request.put("forumsList", forumsList);
		request.put("txt", txt);
		request.put("td", td);
		return "toEdit";
	}




B、编辑分区:
若想对现存的分区进行重命名等重新编辑的操作,单击“分区管理”,在右侧显示框内,点击“编辑”跳转至编辑分区,管理员在“编辑分区”内填入重新编辑好的分区名称,点击“提交”即完成编辑分区的功能操作,相应数据库内修改该分区的名称。
编辑分区如下图5.3.4所示:
在这里插入图片描述

C、删除分区:
想要删除现有的分区,单击“分区管理”在右侧显示框内,点击“删除”,弹出窗口询问“确认删除”点击“确定”即完成删除操作,相应数据库内的信息也会删除。
删除分区如下图5.3.5所示
在这里插入图片描述

5.3.3 版块管理

版块管理是将论坛的几大分区下的版块进行添加、修改、删除的功能。
A、添加版块:
点击“版块管理”框内的“版块添加”,管理员在“添加版块”的框内写入要新增的版块,在“上级分区”内选择该板块所属的分区,完成之后点击“提交”即可完成在指定分区下版块的添加,对应数据库内新增一条信息。
添加版块如下图5.3.6所示:
在这里插入图片描述

B、编辑版块:
若想对现存的分区进行重命名等重新编辑的操作,单击“版块管理”,在右侧显示框内,点击“编辑”跳转至编辑版块,管理员在“编辑版块”内填入重新编辑好的版块名称,并选择其上级分区,上级分区默认是未修改版块前所属的分区,点击“提交”即完成编辑版块的功能操作,相应数据库内修改该版块的名称。
编辑版块如下图5.3.7所示:
在这里插入图片描述

C、删除版块:
想要删除现有的版块,单击“版块管理”在右侧显示框内,选定需要删除的版块,点击“删除”,弹出窗口询问“确认删除”点击“确定”即完成删除操作,相应数据库内的信息也会删除。
删除版块如下图5.3.8所示
在这里插入图片描述

5.3.4 子版块管理

子版块管理是版块管理的更加细化的功能,将论坛的几大分区下的版块所拥有的子版块进行添加、修改、删除的功能。
A、添加子版块:
点击“子版块管理”框内的“子版块添加”,管理员在“添加子版块”的框内写入要新增的版块,在“上级版块”内选择该子板块所属的版块,完成之后点击“提交”即可完成在指定版块下子版块的添加,对应数据库内新增一条信息。
添加子版块如下图5.3.9所示:
在这里插入图片描述

B、编辑子版块:
若想对现存的分区进行重命名等重新编辑的操作,单击“子版块管理”,在右侧显示框内,点击“编辑”跳转至编辑子版块,管理员在“编辑子版块”内填入重新编辑好的子版块名称,并选择其上级版块,上级版块默认是未修改子版块前所属的分区,点击“提交”即完成编辑子版块的功能操作,相应数据库内修改该子版块的名称。
编辑子版块如下图5.3.10所示:
在这里插入图片描述

C、删除子版块:
想要删除现有的版块,单击“子版块管理”在右侧显示框内,选定需要删除的子版块,点击“删除”,弹出窗口询问“确认删除”点击“确定”即完成删除操作,相应数据库内的信息也会删除。
删除子版块如下图5.3.11所示
在这里插入图片描述

5.3.5 帖子管理

后台帖子管理的功能主要包括帖子的查询和删除,在前台发布过的帖子,这里都有显示其具体内容,为了论坛的内容健康和谐,需要对不良信息的帖子进行删除操作,单击“主题管理”在右侧显示框内选定需要删除的主题,点击“删除”即可完成删除帖子的操作,与此同时对应数据库内也相应删除该信息。
帖子管理如下图5.3.12所示
在这里插入图片描述

5.3.6 用户管理

后台用户管理的功能主要包括查询系统用户的相关信息和删除用户,在前台注册成功的用户,在这里都有显示出来,为了论坛的秩序井井有条,对于散布不良信息或者蓄意发布无用帖子等不良行为的用户,管理员可以对用户进行删除操作。点击“用户管理”在右侧显示框内找到所删除用户的信息,点击“删除”即可删除该用户的信息,在对应的数据库中也相应的删除该记录。
用户管理如下图5.3.13所示

在这里插入图片描述

6. 交流与联系

q:969060742 完整文档、代码、程序资源、sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1075362.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Reactor网络模式

文章目录 1. 关于Reactor模式的了解2. 基于Reactor模式实现epoll ET服务器2.1 EventItem类的实现2.2 Reactor类的实现Dispatcher函数AddEvent函数DelEvent函数EnableReadWrite函数 2.3 四个回调函数的实现acceptor回调函数recver回调函数sender回调函数errorer回调函数 3. epol…

TensorFlow入门(十五、数据读取机制(2))

使用Dataset创建和读取数据集,作为TensorFlow模型创建输入管道的新方式,使用性能比使用feed_dict或队列式管道的性能高很多,使用也更加简洁容易。也是google强烈推荐的数据读取方式,对于TensorFlow而言,十分重要。 Dataset是什么? Dataset的定义 : 它是一个含有相同类型元素且…

C++局部变量 成员变量 全局变量(及文件内外全局变量)

在C中,类的局部变量、成员变量、全局变量、静态全局变量: 局部变量:局部变量是在函数内部定义的变量,它只能在该函数的范围内被访问和修改。当函数执行结束后,局部变量的内存空间会被释放。局部变量主体是函数。局部变…

如何成为一名云计算构架师,看这里!

都说,每个程序员心中都有一个成为架构师的梦想! 因为不管是对于自身专业技能的认可,还是立足于现实的薪资,都是令人向往的! 1.云计算架构师介绍 云计算架构师负责管理企业中的云计算架构,尤其是在云技术…

P1867 【Mc生存】经验值

#include <stdio.h>int main(void) {int n; //n项操作double HP 10; //总生命值&#xff0c;初始化为10&#xff0c;上限是10int LV 0; //等级&#xff0c;初始化为1int EXP 0; //总经验值&#xff0c;初始化为0double de_HP; //减少的生命值int in_EXP; //增加…

react学习(三——实战项目)

创建 npm init vite小知识 "scripts": {"dev": "vite --host --port 3002 --open", //--host会在终端显示IP&#xff0c;--port 3002把显示端口改为3002&#xff0c;--open会在启动后打开链接"build": "tsc && vite bui…

如何自学(黑客)网络安全技术————(详细分析学习思路)

前言 前几天发布了一篇 网络安全&#xff08;黑客&#xff09;自学 没想到收到了许多人的私信想要学习网安黑客技术&#xff01;却不知道从哪里开始学起&#xff01;怎么学&#xff1f;如何学&#xff1f; 今天给大家分享一下&#xff0c;很多人上来就说想学习黑客&#xff0…

IIC总线

IIC总线原理 时序图作业 MPU6050 MPU6050是一个运动处理传感器&#xff0c;其内部集成了3轴加速度传感器 和3轴陀螺仪&#xff08;角速度传感器&#xff09;,以及一个可扩展数字运动处理器

php伪协议 [ACTF2020 新生赛]Include1

打开题目 点击后 期间bp抓包也一无所获 那我们回到题目上来 我们可知这是文件包含漏洞&#xff0c;但是我们直接读取的是flag.php文件&#xff0c;而非flag.php文件源码&#xff0c;那我们想要获取文件源码&#xff0c;这里就涉及到php伪协议 php://filter可以获取指定文件源码…

typename、typedef、using对比

在c的标准库中&#xff0c;因为类继承关系比较复杂和模板使用比较多的原因&#xff0c;源代码中充斥着typename、typedef和using这三个关键字 一、typename关键字 1.1、typename的第一个作用是用作模板里面&#xff0c;来声明某种类型 template<typename _Tp, typename _…

根据二叉树创建字符串--力扣

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

stm32 hal库 st7789 1.54寸lcd

文章目录 前言一、软件spi1.cubemx配置2.源码文件 二、硬件spi1.cubemx配置2.源码文件3.小小修改 总结 前言 1.54寸lcd 240*240 一、软件spi 1.cubemx配置 一定要注意把这几个东西上拉。 使用c8 2.源码文件 我使用的是中景园的源码&#xff0c;他本来是是标准库的稍微修改…

死灰复燃!QakBot 恶意软件仍在运行中

2023 年 8 月&#xff0c;美国联邦调查局宣布&#xff0c;在名为“猎鸭行动”的国际执法活动中&#xff0c;成功拆除 Qakbot 僵尸网络&#xff08;Qakbot 也称 QBot、QuackBot 和 Pinkslipbot&#xff0c;自 2008 年以来一直非常活跃&#xff09;。然而 Security A ffairs 网站…

好用的便签软件如何实现定时提醒?支持设定定时提醒的便签

不论你是职场白领&#xff1f;还是销售精英&#xff1f;亦或者是家庭主妇&#xff0c;每天都会面临着大量的事务需要处理&#xff0c;怎么才能高效规划管理自己每日事务&#xff0c;以及进行时间管理成为一项比较重大的挑战&#xff0c;便签类软件可以辅助大家按时完成各项任务…

Django REST framework API版本管理【通过GET参数传递】

API版本 在开发过程中可能会有多版本的API&#xff0c;因此需要对API进行管理。django drf中对于版本的管理也很方便。 http://www.example.com/api/v1/info http://www.example.com/api/v2/info 上面这种形式就是很常见的版本管理 在restful规范中&#xff0c;后端的API需…

基于安卓android微信小程序宠物交易小程序

运行环境 开发语言&#xff1a;Java 框架&#xff1a;ssm JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 小程序框架&…

七、全屏粒子特效

简介 给页面添加粒子光影特效。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件&#xff1a;main.ts、App.vue、utils 一、安装插件 安装 vue3-particles tsparticles插件 详细文档查看 tsParticles 官网 npm i vue3-particlesnpm i tsparticles创建配置文件 o…

封装axios的post请求踩坑记录

今天自己封装axios请求时遇到了两个坑&#xff0c;所以记录一下。 第一个坑是我在代码的逻辑是只会发一次请求&#xff0c;但是在控制台却发现发了两次&#xff0c;第一次为不带参数的请求方式为options的预检请求&#xff0c;第二次的请求才是我真正需要发的post请求。在经过上…

基于Java+SpringBoot+Vue企业OA管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

点此获取更多相关资料 简介 自动化测试脚本可以模拟用户与应用程序的交互&#xff0c;例如点击按钮、输入数据、导航到不同的页面等等&#xff0c;以验证应用程序的正确性、性能和稳定性。 自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作…