🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示
摘 要
首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括软件架构模式、整体功能模块、数据库设计。本项目软件架构选择B/S模式和java技术,总体功能模块运用自顶向下的分层思想。再然后就是实现系统并进行代码编写实现功能。论文的最后章节总结一下自己完成本论文和开发本项目的心得和总结。通过漫画网站将会使漫画信息管理各个方面的工作效率带来实质性的提升。
关键词:java 漫画 软件架构
1 绪论
1.1 项目研究的背景
困扰管理层的许多问题当中,漫画信息管理一定是不敢忽视的一块。但是管理好漫画网站又面临很多麻烦需要解决,如何在工作琐碎,记录繁多的情况下将漫画网站的当前情况反应给相关部门决策等等。在此情况下开发一款漫画网站,于是乎变得非常合乎时宜。
经过网上调查和搜集数据,我们可以发现漫画信息管理方面的系统在人群中并不是相当普及,在漫画信息管理方面还有许多改进。实际上如今信息化成为一个未来的趋势或者可以说在当前现代化的城市典范中,信息化已经成为主流,开发一个漫画网站一方面的可能会更合乎时宜,另一方面来说也可以提高漫画信息管理方面的效率给相关部门人的工作带来一定的便利。
1.2 开发意义
人类的进步带动信息化的发展,使人们生活节奏越来越快,所以人们越来越重视信息的时效性。以往的管理方式已经满足不了人们对获得信息的方式、方便快捷的需求。即漫画网站慢慢的被人们关注。首先,网上获取信息十分的实时、便捷,只要系统在线状态,无论在哪里都能第一时间查找到理想的信息。
计算机技术在管理中成为人们的重要工具。可以有效快捷的解决想要获取的信息,提高工作效率。
1.3 项目研究内容
漫画信息管理方面的任务繁琐,以至于每年都在漫画信息管理这方面投入较多的精力却效果甚微,漫画网站的目标就是为了能够缓解漫画信息管理工作方面面临的压力,让漫画信息管理方面的工作变得更加高效准确。
本项目在开发和设计过程中涉及到原理和技术有: B/S、java技术和MySQL数据库等等。开发步骤如下:
第一章绪论;剖析项目背景,说明研究的内容。
第二章开发技术;系统主要使用了java技术, b/s模式和myspl数据库,并对此做了介绍。
第三章系统分析;包罗了系统总体结构、对系统的性能、功能、流程图进行了分析。
第四章系统设计;对软件功能模块和数据库进行详细设计。
第五章系统总体设计;对系统管理员和用户的功能进行描述。
第六章对系统进行测试。
第七章总结心得;在论文最后结束章节总结了开发这个系统和撰写论文时候自己的总结、感想,包括致谢。
2 开发技术介绍
2.1 B/S架构
B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。

图2-1 B/S模式三层结构图
2.2 Java技术
Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。
Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:
1. 面向对象
面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。
2. 平台无关性、
Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。
3. 可靠性和安全性
Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。
4. 多线程
Java提供了多线程功能,利用编程实现同一时间同时工作的功能。
2.3 MySQL 介绍
在软件项目,通过经营性数据的数据库,可以保证其安全,独立和数据一致,访问数据的系统来提供,所以有效减少时间程序员开发应用程序。
MySQL可以支持多线程,可以方便使用系统的资源,提高运行的速度。并提供odbc、jdbc和tcp/ ip,以各种形式连接到MySQL; 功能方面表现欠缺,规模小,但对于这个系统就足够了。
因为MySQL是源代码对外开放的,所以任何人都可以通过相应的方法下载,并根据个性化需求进行修改。 由于MySQL的速度,可靠性和适应性,MySQL受到重视。
MySQL虽然功能可能不是很强大,但由于其开源,广泛传播,导致很多人都意识到这个数据库。
2.4 MySQL环境配置
本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\\Program Files\\MySQL\\bin\\winMySQLadmin.exe这个文件其中C:\\Program Files\\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\\Program Files\\MySQL\\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.5 SpringBoot技术
本技术是Java平台的开源应用框架,其目的地简单化Spring的初始搭建和开发的过程。默认配置了很多框架的使用方式,自动加载Jar包,为了让用户尽可能快的跑起来spring应用程序。
SpringBoot的主要优点有:1.为所有Spring开发提供了一个更快、更广泛的入门体验;2.零配置;3.集成了大量常用的第三方库的配置;4.提供准备好的特性。当今,Java领域开发者几乎都在使用SpringBoot,在开发领域逐渐成为领导者。
3 系统分析
3.1 可行性分析
在开发系统之前要进行系统可行性分析,目的是在用最简单的方法去解决最大的问题,程序一旦开发出来满足了用户的需要,所带来的利益也很多。下面我们将从技术、操作、经济等方面来选择这个系统最终是否开发。
3.1.1 技术可行性
本系统开发选择java技术,java技术是一个完全面向对象的语言,为开发者提供了丰富的类库,大大减少了使用windows编程的难度,减少开发人员在设计算法上的难度,作为java技术开发 Visual Studio更是一个必不可少的角色,它友好的界面,以及强大的功能,给程序开发人员带来了很多方便,加上环境简单,转移方便,无疑使此系统最佳的选择。所以后台设计选择使用MySQL数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
依据上述目标来分析本系统的硬件如下:
奔腾3的处理器;
内存是 2G;
硬盘是50G;
操作系统是Window 10;
在软件方面的话,安装了Visul Studio和MySQL数据库开发工具。根据以上的软件与硬件要求,得到这个系统的技术是可行的。
3.1.2 经济可行性
漫画网站,该系统软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的漫画,同时还能实现对人力资源和管理资源的有效节约,该漫画网站在经济上完全可行。
3.1.3 操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.2 网站性能需求分析
对网站性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析。
系统反应度:同时上万人在线时反应时间应该在两三秒以内。
界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。
储存性能高:漫画网站中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储。
易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
稳定性:要求漫画网站运行要稳定,界面清楚、字体清晰等。
3.3 网站现状分析
系统使用用户的数量直接决定了用户信息管理者的工作量,毫无疑问,管理者的工作量较大较繁琐。通过总结出系统当前对用户管理的工作状态得以下分析:
统筹规划,如果系统在信息化管理中不够全面,缺少综合性、系统性、整体性,那不可避免的需要投入大量人力物力来规划整理信息。引入信息化管理方式无疑可以达到节省信息管理成本的目的不仅减少资源浪费还可以使漫画信息变得井井有条,成为市场竞争中的一大优势。
要循序渐进,做事不能心急,一步一个脚印,都不可能一步到位,就算信息管理系统也一样,要让系统发挥最大效率还是应该多调研,多听取用户和管理者的意见,并进行必要的统筹规划,有组织有目的地设计系统功能,团结各个部门发挥主观能动性。
(3) 信息安全措施不到位
隐私权神圣不可侵犯,这是中华人民共和国宪法赋予我们的权利,人和人都不能侵犯我们的正当权益,而网络用户信息管理存在极大安全隐患,信息泄露的案列不在少数,加强信息安全措施是完善网络信息管理过程中不可避免的一环。
(4) 资源不能充分共享
资源共享是网络的一大特点,没有共享就没有社交,网络也就失去了他应有的魅力,如果能够实现用户信息共享,无疑对于用户的发展存在不可或缺的帮助。
(5) 现有系统可扩展性不高。
如今科学技术发展飞速,随着而来的就是技术更新,那势必会给软件更新带来挑战,因此,系统必须具备良好的开放性和可扩充性,为了不落后于时代,这是必备特色之一。
基于上述分析,漫画管理系统应该切合实际,做到确实有效,集体表现为:一是系统能够整理并集合归类用户信息,防止用户信息混乱,难以整理;二是系统要安全稳定,不能泄露用户信息,造成隐私泄露,不仅伤害用户利益更是对经营者名誉的损毁;三是系统要具有良好的开放性,不仅要方便定期的维护维修,更要方便及时增加新功能,保证先进的时代契合性。经过详细的讨论论证,确定系统的总体要求。
3.4 网站功能分析
考虑到实际生活中在漫画网站方面的需要以及对该系统认真的分析,将系统权限按管理员和用户这两类涉及用户划分。
(a) 管理员;管理员使用本系统涉到的功能主要有:首页、个人中心、用户管理、漫画分类管理、漫画投稿管理、分类管理、排行榜管理、交流论坛、系统管理等功能。管理员用例图如图3-1所示。

图3-1 管理员用例图
(b) 用户;用户使用本系统涉到的功能主要有:首页、个人中心、,漫画投稿管理等功能。用户用例图如图3-2所示。

图3-2用户用例图
3.5 系统流程的分析
由于不同的系统实际使用用户角色的不同,他们的业务分析也会变得有所不一样,为了论述方便接下来都将以用户功能权限下的系统业务流程来分析,如下图所展示:
3.5.1 用户管理的流程

图3-3 用户管理流程
3.5.2 个人中心管理流程

图3-4 个人中心管理流程
3.5.3 登录流程

图3-5 登录流程
4 系统设计
4.1 软件功能模块设计
网站整体功能如下图所示:

图 4-1网站总体功能模块图
4.2 数据库设计
4.2.1 概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
漫画投稿实体图如图4-2所示:

图4-2漫画投稿实体图
排行榜实体图如图4-3所示:

图4-3排行榜实体图
4.2.2 物理模型设计
根据上诉的逻辑模型设计,下面给出物理模型的设计,如下表:
表4-1:收藏表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
userid |
bigint |
|
用户id |
|
|
|
refid |
bigint |
|
收藏id |
|
|
|
tablename |
varchar |
200 |
表名 |
|
|
|
name |
varchar |
200 |
收藏名称 |
|
|
|
picture |
varchar |
200 |
收藏图片 |
|
|
|
type |
varchar |
200 |
类型(1:收藏,21:赞,22:踩) |
|
1 |
|
inteltype |
varchar |
200 |
推荐类型 |
|
|
表4-2:排行榜
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
biaoti |
varchar |
200 |
标题 |
|
|
|
manhuamingcheng |
varchar |
200 |
漫画名称 |
|
|
|
manhuafenlei |
varchar |
200 |
漫画分类 |
|
|
|
manhuabiaoqian |
varchar |
200 |
漫画标签 |
|
|
|
fenlei |
varchar |
200 |
分类 |
|
|
|
paixing |
int |
|
排行 |
|
|
|
fengmian |
varchar |
200 |
封面 |
|
|
|
gengxinshijian |
date |
|
更新时间 |
|
|
|
beizhu |
longtext |
4294967295 |
备注 |
|
|
|
clicktime |
datetime |
|
最近点击时间 |
|
|
|
clicknum |
int |
|
点击次数 |
|
0 |
表4-3:公告信息
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
title |
varchar |
200 |
标题 |
|
|
|
introduction |
longtext |
4294967295 |
简介 |
|
|
|
picture |
varchar |
200 |
图片 |
|
|
|
content |
longtext |
4294967295 |
内容 |
|
|
表4-4:漫画资源
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
tougaobianhao |
varchar |
200 |
投稿编号 |
|
|
|
manhuamingcheng |
varchar |
200 |
漫画名称 |
|
|
|
manhuafenlei |
varchar |
200 |
漫画分类 |
|
|
|
manhuabiaoqian |
varchar |
200 |
漫画标签 |
|
|
|
manhuatupian |
varchar |
200 |
漫画图片 |
|
|
|
manhualianjie |
varchar |
200 |
漫画链接 |
|
|
|
manhuawenjian |
varchar |
200 |
漫画文件 |
|
|
|
tougaoriqi |
date |
|
投稿日期 |
|
|
|
dongmanjianjie |
longtext |
4294967295 |
动漫简介 |
|
|
|
yonghuzhanghao |
varchar |
200 |
用户账号 |
|
|
|
yonghuxingming |
varchar |
200 |
用户姓名 |
|
|
|
sfsh |
varchar |
200 |
是否审核 |
|
否 |
|
shhf |
longtext |
4294967295 |
审核回复 |
|
|
|
thumbsupnum |
int |
|
赞 |
|
0 |
|
crazilynum |
int |
|
踩 |
|
0 |
|
clicktime |
datetime |
|
最近点击时间 |
|
|
|
clicknum |
int |
|
点击次数 |
|
0 |
表4-5:漫画分类
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
manhuafenlei |
varchar |
200 |
漫画分类 |
|
|
|
manhuabiaoqian |
varchar |
200 |
漫画标签 |
|
|
表4-6:交流论坛
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
title |
varchar |
200 |
帖子标题 |
|
|
|
content |
longtext |
4294967295 |
帖子内容 |
|
|
|
parentid |
bigint |
|
父节点id |
|
|
|
userid |
bigint |
|
用户id |
|
|
|
username |
varchar |
200 |
用户名 |
|
|
|
isdone |
varchar |
200 |
状态 |
|
|
表4-7:分类
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
fenlei |
varchar |
200 |
分类 |
|
|
表4-8:漫画资源评论表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
refid |
bigint |
|
关联表id |
|
|
|
userid |
bigint |
|
用户id |
|
|
|
nickname |
varchar |
200 |
用户名 |
|
|
|
content |
longtext |
4294967295 |
评论内容 |
|
|
|
reply |
longtext |
4294967295 |
回复内容 |
|
|
表4-9:用户
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
yonghuzhanghao |
varchar |
200 |
用户账号 |
|
|
|
mima |
varchar |
200 |
密码 |
|
|
|
yonghuxingming |
varchar |
200 |
用户姓名 |
|
|
|
xingbie |
varchar |
200 |
性别 |
|
|
|
lianxifangshi |
varchar |
200 |
联系方式 |
|
|
|
touxiang |
varchar |
200 |
头像 |
|
|
表4-10:配置文件
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
name |
varchar |
100 |
配置参数名称 |
|
|
|
value |
varchar |
100 |
配置参数值 |
|
|
表4-11:用户表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
username |
varchar |
100 |
用户名 |
|
|
|
password |
varchar |
100 |
密码 |
|
|
|
role |
varchar |
100 |
角色 |
|
管理员 |
|
addtime |
timestamp |
|
新增时间 |
|
CURRENT_TIMESTAMP |
表4-12:token表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
userid |
bigint |
|
用户id |
|
|
|
username |
varchar |
100 |
用户名 |
|
|
|
tablename |
varchar |
100 |
表名 |
|
|
|
role |
varchar |
100 |
角色 |
|
|
|
token |
varchar |
200 |
密码 |
|
|
|
addtime |
timestamp |
|
新增时间 |
|
CURRENT_TIMESTAMP |
|
expiratedtime |
timestamp |
|
过期时间 |
|
CURRENT_TIMESTAMP |
5 系统详细设计
5.1 系统功能模块
漫画网站,在系统首页可以查看首页、漫画投稿、排行榜、交流论坛、公告信息、个人中心、后台管理等内容,并进行详细操作,如图5-1所示。

图5-1系统首页界面图
用户注册,在用户注册页面通过填写用户账号、密码、确认密码、用户姓名、联系方式等信息进行注册操作,如图5-2所示。

图5-2用户注册界面图
漫画投稿,在漫画投稿页面可以查看漫画名称、投稿编号、漫画分类、漫画标签、投稿日期、用户账号、用户姓名、点击次数等内容,还可以根据投稿稿件点击下载,对我的收藏进行详细操作如图5-3所示。

图5-3漫画投稿界面图
个人中心,在个人中心页面通过填写用户账号、密码、用户姓名、性别、联系方式、上传图片等内容进行更新信息,还可以根据需要对我的收藏或我的发布进行详细操作,如图5-4所示。

图5-4个人中心界面图
5.2 管理员功能模块
管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图5-5所示。

图5-5管理员登录界面图
管理员登录系统后,可以对首页、个人中心、用户管理、漫画分类管理、漫画投稿管理、分类管理、排行榜管理、交流论坛、系统管理等进行相应的操作管理,如图5-6所示。

图5-6管理员功能界面图
用户管理,在用户管理页面可以对索引、用户账号、用户姓名、性别、联系方式、头像等内容进行详情,修改和删除等操作,如图5-7所示。

图5-7用户管理界面图
漫画分类管理,在漫画分类管理页面可以对索引、漫画分类、漫画标签等内容进行详情,修改和删除等操作,如图5-8所示。

图5-8漫画分类管理界面图
漫画投稿管理,在漫画投稿管理页面可以对索引、投稿编号、漫画名称、漫画分类、漫画标签、漫画图片、投稿稿件、投稿日期、用户账号、用户姓名、审核回复、审核状态、审核等内容进行详情,修改,查看评论和删除等操作,如图5-9所示。

图5-9漫画投稿管理界面图
分类管理,在分类管理页面可以对索引、分类等内容进行详情,修改和删除等操作,如图5-10所示。

图5-10分类管理界面图
排行榜管理,在排行榜管理页面可以对索引、标题、漫画名称、漫画分类、漫画标签、分类、排行、封面、更新时间等内容进行详情,修改和删除等操作,如图5-11所示。

图5-11排行榜管理界面图
交流论坛,在交流论坛页面可以对索引、帖子标题、用户名、状态等内容进行详情,修改,查看评论和删除等操作,如图5-12所示。

图5-12交流论坛界面图
系统管理,在公告信息页面可以对索引、标题、图片等内容进行详情,修改和删除等操作,还可对轮播图管理进行详细操作,如图5-13所示。

图5-13系统管理界面图
5.3 用户功能模块
用户登录进入漫画网站可以对首页、个人中心、漫画投稿管理等进行相应操作,如图5-14所示。

图5-14用户功能界面图
个人中心,在个人信息页面通过填写用户账号、用户姓名、性别、头像等内容对个人信息进行修改操作,如图5-15所示。

图5-15个人中心界面图
漫画投稿管理,在漫画投稿管理页面可以对索引、投稿编号、漫画名称、漫画分类、漫画标签、漫画图片、投稿稿件、投稿日期、用户账号、用户姓名、审核回复、审核状态等内容进行查看评论、详情修改和删除等操作,如图5-16所示。

图5-16漫画投稿管理界面图
6 系统测试
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码和选择权限,点击登录按钮,会出现两种情况:登录成功进入用户具有权限的功能界面和提示登录失败。
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码和选择权限,点击登录按钮,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。
7 总结与心得体会
7.1 总结
通过完成该漫画网站和本论文的撰写让我更加明白了软件开发过程中软件工程思想的重要性。在项目的前期由于对需求分析做的不够谨慎和明确,导致了后面在设计甚至编码时候造成了许多不必要的麻烦。由此在今后的学习和工作开发之中必须要牢牢把握住软件工程的设计思想和方法,这样可以进一步保证项目开发的健壮性和准确性。
本网站所实现的是一个漫画网站,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能改善。
本系统具有以下优点:
该系统具有较高的适用性,选用B/S结构,可以在绝大部分个人平台上使用该系统。
系统将用户权限进行划分,管理员和用户能看到及操作的信息不一样,两者具备不同的操作权限。
该系统操作界面简单明了,大部分人都可以正常使用。
但也存在以下问题需要改进:
运行时窗口不能被刷新,可以改进。
系统过于简单,显示的信息有限。
不能添加多个管理员账号,如果可以则将利于发展漫画网站规模,便于漫画网站信息集中管理。
不能实时预约接待消息和漫画网站反馈建议,容易被忽视,不利于管理员服务客户。
7.2 心得体会
由于经验和能力不足,导致在开发、设计该系统的时候,出现了比较多的问题,例如需要用到的技术不熟悉、程序报错等,后来我积极地向同学询问自己出现的问题同时也会找一些相关的书进行学习,慢慢的一点点将自己遇到的问题逐渐解决。所以不管以后在任何时候合作都会让自己事半功倍。通过本系统的完整的开发,可以遇到自己平时写一些简单的小程序遇不到的问题,不仅仅局限与技术与业务方面的,同时也使得自己更加深入的了解软件过程的开发设计思想,对于即将踏入社会工作而言,这些心得都十分重要。在以后的研究生学习生涯也必须加深这方面的理解,将最好的开发技术和最新的科学原理运用到自己以后的开发工作和学习研究中去。
参考文献
[1] 李兴华. JavaWeb开发实战经典基础篇(第1版)[M].北京:清华大学出版社,2010.8
[2] 程志艳, 张亮. JSP实用简明教程[M].北京:清华大学出版社,2005.12
[3] 陈刚. Eclipse从入门到精通[M].北京:清华大学出版社,2005.6
[4] 李勇平.JSP应用开发详解[M].电子工业出版社,2005.10
[5] 郑自国,邹丰义.Java案例开发集锦[M].北京:电子工业出版社,2005.2
[6] 张孝祥. 深入Java Web开发内幕——核心基础[M]. 北京:电子工业出版社. 2006
[7] 李安渝. Web Services技术与实现[M]. 北京:国防工业出版社,2003
[8] 孙卫琴,李洪成.Tomcat 与 Java Web 开发技术详解[M].电子工业出版社,2003.6:1-205
[9] 曹广鑫 编著.JSP数据库项目开发宝典[M].北京:电子工业出版社,2006
[10] 王剑,邓武.基于Web服务面向服务的动态电子商务应用框架研究[J].科学技术与工程,2008,2(3):65-90
[11] 周旌恒.JSP应用开发详解(第三版)[M].北京:电子工业出版社,2004
[12] Shanliang Xue;Qing Yan Wei;Guang Ming Jiao;Dun Wen Zuo. Research Code Management System Based on J2EE[J]. Key Engineering Material.2010,Vol.431-432(188-191)
[13] Yan Ming Li;Li Feng Wan. Design On Framework Structure of College English Learning Management System Based on Struts2[J].Advanced Materials Research.2013,Vol.846-847(1558-1561)
[14] Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: Prentice Hall, 2006
[15] Joshua Bloch. Effective Java[M]. Piscataway, N.J: IEEE Press, 2009
[16] Juan Lipson Vuong.A semantics-based routing scheme for grid resource discovery[M].E-Science: FirstInternational Conference on E-Science and GridComputing,2005:58-70,90
致 谢
过程永远比结果重要。毕业设计是大学生活中最为浓墨重彩的一笔,在这个过程中不仅学到更为全面的书本和实践知识,更让我感受到了浓浓的同窗之情及师生情。虽然大学四年间做过不少实验作业,但是独立完成这样一个操作系统还是第一次,遇到困难是理所当然,我也有所心理准备,但是超出自身能力的部分还是需要寻求教师及同学的帮助。在此,我衷心地感谢我的指导教师,可以说,没有教师我就不能顺利完成这次设计。他总是在一筹莫展的时候为我指引方向。比如在开题报告,我的指导教师就细致地指导我该怎么有逻辑地将自己的想法和做法表达清楚,在此由衷感谢他。在设计的过程中,教师百忙之中也乐于给予我指导,不管多晚给教师发消息,不管是不是上班时间去教师办公室寻求帮助,他总能在第一时间对我施以援手,由于我在设计期间需要离校实习,不能及时到教师办公室检查设计进度,当时已经是晚上6点多,我匆匆赶到办公室时,教师依然在伏案办公,桌上是同学们的中期检查报告,检查完毕业设计后,他又继续查看同学们的中期报告,并督促我及时上交报告。教师给的意见总是一针见血地指出我设计及论文中的不足,并举例详细说明我的改进方法,不得不佩服他的学术水平及教学水平。在我开始着手实现这个设计的时候,通过需求分析及可行性分析对该系统有了较为浅显的认识;但是在我真正开始实现时发现事情并没有这么简单。任何成功都不是一蹴而就的,就算是一个简单的毕业设计也需要日积月累的知识和经验。于是,我便去寻求老师和同学的帮助,这也使得我得以从不同的角度重新考虑我的设计。终于,这个系统在我内心有了雏形。在真正实现这个设计的过程中,学习新知识是必定的,同时那些由于时间关系或者本来就没有掌握牢固的知识也有了进一步巩固的机会。然而最重要的是了解到如何作为一个开发人员,以开发人员的思维来看待软件开发的步骤和方法策略。
本次毕业设计的完成预示着大学时代的句号,在这个设计过程中,我收获到的绝不仅仅是做项目过程中要到的知识,更多的是同窗情谊和师生情谊,最重要的是做任何事情都要具备的认真态度,以及真正职业的思考方式方法。
最后真心祝愿师生们前程似锦!工作顺利,祝母校越办越好!
核心代码展示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
项目推荐
【计算机毕业设计】各项技术选题汇总
【计算机毕业设计】基于Springboot的网上购物商城销售系统
【计算机毕业设计】开题报告模板2
【计算机毕业设计】任务书案例2
【网站项目】基于springboot的在线考试系统
【网站项目】基于springboot的4S店车辆管理系统
【软件设计】基于python的高校资产管理系统
【网站项目】python009基于推荐算法的电影推荐系统
【网站项目】基于Springcloud的分布式架构网上商城
⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡



