网站制作公司站建设/怎么在百度上发广告
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
摘要
随着互联网的高速发展,线上管理成为当代人们管理事物的重要手段之一;戒烟网站的开发也迫在眉睫。所以采用B/S模式, MySQL数据库以及通过java技术来开发此网站的目的是建立一个戒烟网站,这样可以有效地解决戒烟管理混乱的局面。本网站设计了2种角色:管理员,用户。通过此网站,用户可以对首页,用户分享,论坛交流,公告文章,个人中心,后台管理等功能进行操作;管理员可以对网站所有功能进行管理,包括管理用户的基本信息。该网站大大提高戒烟效率,节约了大量的时间和精力。
关键字:戒烟网站;java技术;
1 绪论
1.1项目背景
随着社会的不断进步,生活水平的不断提高,计算机和网络技术的发展以及戒烟管理质量的提高,利用计算机网站管理的普及,戒烟信息的管理发生了革命性的变化,在此情况下开发一款戒烟网站,于是乎变得非常合乎时宜。
1.2项目意义
戒烟网站,是为了管理者方便管理而设计的。它是戒烟的一个重要组成部分。
在互联网技术广泛普及社会生活中各个领域的今天,使用传统的管理方式也将成为过去时,而网络管理则是人们向往的一个重要领域。基于网络的戒烟管理是传统管理过程的延伸,加上数据库技术的利用,大大简化了传统管理的过程。基于java技术的戒烟可以借助于互联网进行,因此在线戒烟的管理将不受地方限制,只要在有网络的地方就可以进行,使在线戒烟管理的灵活性得到了大大拓展。
此网站可以完成对首页,个人中心,用户管理,用户分享管理,论坛交流,系统管理等功能,以适应管理者提高管理工作效率的需要。
1.3项目研究的目的和方法
1.3.1项目的研究目的
为了加强用户与管理者之间的交流,提高大家的及时性和有效性,增加大家交流的方便性,所以开发出管理员,用户为主要角色的戒烟网站。
1.3.2开发方法及步骤
1、可行性分析
可行性分析的目地在于用最短的时间、最小的代价去最大化的确定问题并解决问题。
2、技术可行性
由于现代网络的飞速发展,开发一个戒烟网站用以方便大众是十分可行的。本网站使用java语言、Visual Studio设计开发用户界面,并使用MySQL进行数据存储。
3、经济可行性
戒烟网站是本人自行开发的,参考文献、JAVA都是通过学校图书馆图书查阅,本人本身就有一台电脑,所以在经济完全没有问题。
4、操作可行性
现如今,计算机网络已经十分普及,而本网站可以在Windows XP/VISTA/7/8/10操作网站上运行,而且本网站操作界面美观、简洁、大方,操作简单,容易上手。
5、需求分析
通过深入了解现有的戒烟设计开发、运行和设计模式,收集多方面切实可行的资料,对利用网络学习需求进行深入调研,确定出该戒烟网站具备的目标、功能、性能。
6、数据库设计与实现
根据业务需求、信息需求、和处理需求,确定信息网站的数据结构、数据操作。建立E—R 图,进行数据库设计,建立完备的数据库网站。
7、测试与维护
对网站每一个功能模块程序进行测试。
2.1平台开发环境
2.1.1硬件平台
硬件设备设计是根据网站的设计需求,确定网站物理设备方案,所设计的硬件设备方案在能够充分满足网站前提下,还应满足网站的效率、可靠性、安全性和适应性等性能要求,并具有较高的性价比,实际操作中硬件平台如下:
硬件环境(访问者):建议用户采用较高配置硬件资源。
硬件环境(开发者):Intel(R) Core(TM) i3处理器,2G内存,100G磁盘空间。
2.1.2软件平台
软件平台是网站开发和运行所必需的环境。设计和选择高效、实用、方便、功能齐全的软件平台,对网站的开发具有十分重要的意义。在结合了实际开发的需求并且充分考虑各种软件平台的性能以及适用范围和对软件平台的运用能力,本网站的软件平台选择如下:
操作网站:本网站在Windows 7以及JAVA语言、Visual Studio设计开发用户界面,并使用MySQL进行数据存储,操作网站下进行开发,在目前市面上使用的操作网站上能够成功运行。
浏览器:由于浏览器很多,故先满足主流浏览器的兼容问题,如IE ,Firefox ,Chrome的兼容问题。IE浏览器是Window网站自带的浏览器,使用量高。目前IE7,8,9,10下兼容但在IE6下部分采用div+css布局的HTML页面不兼容。
2.2相关技术
2.2.1 B/S结构
随着软件网站的不断改进和升级,B/S结构产品更为方便的特征体现地十分明显。对于一个中等偏大的公司来说,如果网站管理员每天要在很多台电脑之间来回查看,不断奔走,那么效率和工作量就会变得很低,但是如果使用了B/S结构,那么管理员只要对服务器进行管理就够了。
B/S结构最大的优点它不需要安装任何的软件,它所有的客户端就只是浏览器,所以只要有一台电脑并且可以上网就可以解决所有问题,客户端可以完全地不用管理员维护。无论使用网站的使用者是什么样的规模,也不管分支有多么的庞大,都不会对维护和升级的工作量造成影响,所有的维护和升级只需要操作服务器。随着B/S结构的不断发展,使用的人也不断增加,从而带动了AJAX技术的发展,和B/S结构一样,它也能在客户端上处理程序,这便缓解了服务器的负担,提高了交互性,而且实现了局部实时刷新。
2.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.2.3 Vue.js介绍
采用JavaScript框架进行构建Vue用户界面。这个框架和其他的框架最大不同就是,Vue采取自下而上的应用。Vue比较容易上手,可以很好的进行现有的项目结合。另外一个方面是,和当前的先进的各种工具结合起来时,可以很好的为比较复杂的应用页面进行控制。
Vue.js用来构建用户界面的框架。和其他的框架不同的地方是,该框架主要是使用一种从下而上的开发设计方式。其主要的作用是关注核心图层,学习起来非常方便,可以和现有的各种网站进行融合。另外,Vue有着强大的驱动能力,可以完全采用单文件整合。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
2.2.4 MySql数据库
MySQL数据库使用的语言是SQL语言。MySQL在保存数据时是根据数据的类型和特征分开保存在不同的表中,这样当用户在需要调用的数据时,就不再需要花费大量时间去寻找数据了,只要找到对应的表,就可以找到需要的数据了。MySQL可以完美的实现对于数据库的基本操作。因为 MySQL 数据库的占用的内存少,运行快,成本低,源代码开放,可移植性强,所以越来越多的数据来源简单的项目的开发都会选择 MySQL作为数据库,而MySQL也变得越来越流行。
MySQL 有很多特性,如可移植性,多线程,灵活性等,在很多操作网站中都可以运行。它可以实现在多个线程并发执行的技术;支持MyISAM、innoDB、MEMORY、ARCHIVE四种存储引擎,而且可以使用大型数据库,为用户提供许多使用数据库的工具,比如建模工具,管理工具等。在 WEB方面的应用MySQL是最好的。
2.2.5 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.2.6 Ssm框架
开发信息管理网站的主流框架是SSM(Spring + Spring MVC + MyBatis),SSM框架web层使用Spring MVC框架,使传输前后端数据变得简单;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框架;对于相关SQL操作,采用Mybatis作为持久层框架,对JDBC进行封装,使得数据库的底层面向开发者操作处于一种透明状态。
3需求分析
软件需求分析是软件生命周期中的关键步骤。通过软件需求分析,把软件功能和性能总体概念描述为具体的软件需求规格说明书,进而建立软件开发的基础。软件需求分析同时也是一个不断认识和逐步细化的过程。通过软件需求分析,准确地回答了“网站必须做什么”。
在本次网站分析过程中采用结构化分析方法,结构化分析方法是面向数据流进行需求分析的方法,其核心思想是分解、简化问题,将物理与逻辑表示分开,对网站进行数据与逻辑的抽象,其描述工具是数据库表和(ER)表,以表格的方式来描述数据。
3.1对功能上的需求
用户要通过本网站查询和处理信息,必须先输入用户名和密码进行登陆。为了避免其他不相关人员都可以获得登陆权限,登陆网站注册过程,所有用户的登陆信息将事先由管理人员直接对数据库进行录入。
用户可以对首页,用户分享,论坛交流,公告文章,个人中心,后台管理等功能进行操作;
管理员可以对网站所有功能进行管理,包括管理用户的基本信息。
3.2对性能的规定
1.设计规范要求:
- 项目开发规范统一:模块划分,代码编写均遵照命名规范文档;
- 程序安全并要有良好的可扩展性;
- 用户界面简洁明了、操作简单实用。
2.精度及灵活性要求:
该管理网站要能在较高精度下完成操作者发出的命令,并且在操作员发出错误的指令时给予警告或提示,而非陷入不响应状态。
3.时间特性要求:
- 响应时间:所有查询操作均在0.2s内完成;
- 更新处理时间:所以更新操作均在0.2s内完成。
3.3网站现状分析
网站使用用户的数量直接决定了用户信息管理者的工作量,毫无疑问,管理者的工作量较大较繁琐。通过总结出网站当前对用户管理的工作状态得以下分析:
(1)统筹规划,如果网站在信息化管理中不够全面,缺少综合性、网站性、整体性,那不可避免的需要投入大量人力物力来规划整理信息。引入信息化管理方式无疑可以达到节省信息管理成本的目的不仅减少资源浪费还可以使戒烟信息变得井井有条,成为市场竞争中的一大优势。
(2)要循序渐进,做事不能心急,一步一个脚印,都不可能一步到位,就算信息管理网站也一样,要让网站发挥最大效率还是应该多调研,多听取用户和管理者的意见,并进行必要的统筹规划,有组织有目的地设计网站功能,团结各个部门发挥主观能动性。
(3)信息安全措施不到位
隐私权神圣不可侵犯,这是中华人民共和国宪法赋予我们的权利,人和人都不能侵犯我们的正当权益,而网络用户信息管理存在极大安全隐患,信息泄露的案列不在少数,加强信息安全措施是完善网络信息管理过程中不可避免的一环。
(4)资源不能充分共享
资源共享是网络的一大特点,没有共享就没有社交,网络也就失去了他应有的魅力,如果能够实现用户信息共享,无疑对于用户的发展存在不可或缺的帮助。
(5)现有网站可扩展性不高。
如今科学技术发展飞速,随着而来的就是技术更新,那势必会给软件更新带来挑战,因此,网站必须具备良好的开放性和可扩充性,为了不落后于时代,这是必备特色之一。
基于上述分析,戒烟网站应该切合实际,做到确实有效,集体表现为:一是网站能够整理并集合归类用户信息,防止用户信息混乱,难以整理;二是网站要安全稳定,不能泄露用户信息,造成隐私泄露,不仅伤害用户利益更是对经营者名誉的损毁;三是网站要具有良好的开放性,不仅要方便定期的维护维修,更要方便及时增加新功能,保证先进的时代契合性。经过详细的讨论论证,确定网站的总体要求。
3.4网站设计规则与运行环境
软件网站的优劣很大程度上是由网站设计的完善与否决定的。世间万物都必须遵循生老病死的法则,这是大自然的规则不能违反,软件设计也一样需要遵循网站设计规则。因此,在设计过程中必须遵循网站设计规则。
规则如下:
简单性:为了扩大网站使用者的受众面,网站设计应该本着操作越简单约好的原则,这样不仅能提高网站的使用率更能够扩大网站使用面。
针对性:一个网站针对性越强,所能提供的功能必然越完善,用户体验肯定更好,所以应该明确指定网站针对性。
实用性:实用永远是检验一个网站是否成功的唯一标准,使用的语言再高端,使用的结构再新颖但不能满足用户的要求那就是失败。
运行环境:
本网站是利用B/S结构来开发的,数据库在服务器上进行部署 Mysql即可,其他包括My Eclipse等常规开发程序。
4网站设计
4.1总体设计
根据戒烟管理功能需求,进行网站设计。
CSS+DIV进行页面布局。CSS+DIV 是一种网页的布局方法,这一种网页布局方法有别于传统的HTML网页设计语言中的表格(Table)定位方式,真正地达到了w3c内容与表现相分离,但是不是很兼容老版本的浏览器。
使用 JAVA 母版页可以为应用程序中的页创建一致的布局,各个模块继承母版页。
系统主要功能包括首页,个人中心,用户管理,用户分享管理,论坛交流,系统管理等;
网站对这些功能进行整合,产生的功能结构图如下:
图4-1 网站总体结构图
4.2数据库设计
4.2.1概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述网站涉及到的实体之间的相互关系。
用户管理实体图如图4-2所示:
图4-2用户管理实体图
用户分享管理实体图如图4-3所示:
图4-3用户分享管理实体图
论坛交流实体图如图4-4所示:
图4-4论坛交流实体图
4.2.2数据库表结构
数据库的逻辑结构设计是把上面的设计用逻辑表格的形式加以表示,并对数据的类型进行定义,在整个过程中必须严格定义每一个具体的数据,形成数据字典,如下表所示:
表4-1:用户分享
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
fenxiangbiaoti | varchar | 200 | 分享标题 | ||
fenxiangleixing | varchar | 200 | 分享类型 | ||
fenxiangtupian | varchar | 200 | 分享图片 | ||
fenxiangshipin | varchar | 200 | 分享视频 | ||
fenxiangriqi | date | 分享日期 | |||
fenxiangneirong | longtext | 4294967295 | 分享内容 | ||
yonghuming | varchar | 200 | 用户名 | ||
sfsh | varchar | 200 | 是否审核 | 否 | |
shhf | longtext | 4294967295 | 审核回复 |
表4-2:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-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 | ||
title | varchar | 200 | 帖子标题 | ||
content | longtext | 4294967295 | 帖子内容 | ||
parentid | bigint | 父节点id | |||
userid | bigint | 用户id | |||
username | varchar | 200 | 用户名 | ||
isdone | varchar | 200 | 状态 |
表4-5:用户分享评论表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表4-6:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-7:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuming | varchar | 200 | 用户名 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
xingbie | varchar | 200 | 性别 | ||
touxiang | varchar | 200 | 头像 | ||
shouji | varchar | 200 | 手机 |
表4-8:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-9: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.3用户功能模块
用户登陆网站,可以查看首页,个人中心,用户分享管理,我的收藏管理等功能,还能对每个功能逐一进行相应操作,如图5-11所示。
图5-11用户功能界面图
用户分享管理,在用户分享管理页面可以对索引,分享标题,分享类型,分享图片,分享视频,分享日期,用户名,审核回复,审核状态等内容进行详情,修改,查看评论和删除等操作,如图5-12所示。
图5-12用户分享管理界面图
网站的调试和测试
调试其实也是一个相当重要的过程,对于编程完成的功能,并不一定很完善,很多时候不像程序员想象中那么顺利,有很多漏洞都是在调试过程中发现的。测试前,我们首先要清空数据库中的所有数据,然后输入少量的数据进行测试。测试过程中有些功能并不是像构思好的那样顺序执行,并且有时网站会很不稳定,所以测试帮助我们发现错误并对程序做一些修改和完善。
本网站的测试应从用户注册测试开始,然后再进行用户登录测试,对网站的各个模块的功能进行测试,查看是否与需求说明上要求的功能一致。有时候少写一条语句、session未执行或者数据库的某些字段名字改掉了而造成引用不成功这样的小错误是常有的,有时删掉了一些方法但是忘记在前台页面上删除会引发一些错误或者Mysql语句不正确之类的错误都也是比较常见的。
在本网站的测试中我遇到了几个比较“纠结”的问题,最开始是SQL语句部分总是提示user附近有语法错误,怎么都不能做数据库的查询,就是在user表创建时,软件会在表名外加上一个“[]”,导致我的表名总是错误无法查询;MysqlL还有一个我自己造成的问题,就是我无意中把Mysql的登录名给删掉了,导致我没有办法链接到数据库,后来在老师的帮助下我才意识到问题出在这个地方,最后还是重新装的SQL这写问题也就都没有了。最后在做信息推送的查询/修改功能时也遇到了很大的问题,后台语句的逻辑和SQL语句都没有错误,网站也按照逻辑顺序提示修改成功,可是就是数据库中的内容没有修改,后来发现每做一个操作页面会刷新,就刷新成了数据库中原来的值,Mysql语句确实update成功了,只是修改的是原来的数据,所以看起来没有任何修改,我通过在页面加载方法中添加if (!IsPostBack){ }方法,这样就解决了页面刷新的问题。还有一个比较麻烦的问题就是模糊查询和类型查询的综合查询,一开始只定义了全局变量,总是查询失败,后来通过打断点测试,发现全局变量的值不易保存,后来改成了session变量,查询就成功了。当然遇到的问题不止这三个,还有很多的小问题,不过在模块测试时一一解决了。
调试是一个需要耐心和细心的工作,所以只是大体上执行一下是不会发现漏洞的,应该把每个功能都多调试几次,把可能的顺序或方法都试验一遍,往数据库中多添加一些东西,多次重复调用,尽可能地找出问题,这样才能够使网站更加完善。并且我认为当发现问题并解决问题的时候会体会到很大的成就感和快乐!这种感觉更鼓励我继续努力!
顺利如期的完成本次毕业设计给了我很大的信心,让我了解专业知识的同时也对本专业的发展前景充满信心。
本次设计采用的是JAVA技术,实现了基于B\S模式下的戒烟网站。该网站由管理员,用户;两个角色组成,主要实现的功能有首页,个人中心,用户管理,用户分享管理,论坛交流,系统管理;
不足及尚待解决的问题:
(1)由于采用的是B/S架构造成网站的代码冗余较多。
(2)网站界面不够美观,可以适当多使用jQuery、AJAX等技术。
在此网站的开发过程中我深深的体会到开发流程的重要性,尤其是框架的选择,因为一旦开发过程中需求发生变化,对代码的修改会变的十分复杂困难,很可能就要推到重来,更对以后的维护带来相当不便,所以说一个好的设计对项目是十分重要的。在此网站的开发过程中一些技术上的困难,需要花费大量时间去问去学去找,也大大的提高了自学的能力,同时也发现了IT这行需要不停的学习,毕竟技术在不断的进步。
参考文献
[1]孙卫琴,李洪成.《Tomcat 与 Java Web 开发技术详解》.电子工业出版社,2017年6月
[2]BruceEckel.《Java编程思想》. 机械工业出版社,2016年10月
[3]FLANAGAN.《Java技术手册》. 中国电力出版社,2018年6月
[4]孙一林,彭波.《Java数据库编程实例》. 清华大学出版社,2018年8月
[5]LEE ANNE PHILLIPS.《巧学活用HTML4》.电子工业出版社,2017年8月
[6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2017年9月
[7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2016年5月
[8]孙涌.《现代软件工程》.北京希望电子出版社,2015年8月
[9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2018年2月
[10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社 ,2018年3月
[11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2017年5月
[12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2015年9月
[13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2017年8月
[1] 柏亚军.JSP编程基础及应用实例集锦.人民邮电出版社,2016
[2] 武延军 黄飞跃.精通JSP编程技术.人民邮电出版社,2017
[3] 薛东.我国电子商务的现状与问题探析.内江科技,2018
[4] 于海霞.电子商务网站的设计与实现.科技资讯,2019
[5] Karl Moss.Java Servlet开发人员指南.清华大学出版社,2016
[6] 陈海山.深入Java Servlet网络编程.清华大学出版社,2018
[7] 蔡剑 景楠.Java Web应用开发.清华大学出版社,2018
[8] 王国辉 牛强.JSP信息系统开发实例精选.机械工业出版社,2017
[9] 赵森.中文SQL Server 2005程序设计教程.冶金工业出版社,2016
[10] liuguoyan. Design and implementation of family financial management. [J/OL]]. Shandong: shandong university. 2018.
[11] zhongliwei.Web version traffic movie violation inquiry system.[J/OL] modern technology manufacturing and equipment.
[12]Dai ma. Web application of SSH2 composite framework based on J2EE architecture. [D] soochow university. 2017.10.01.
核心代码展示
/*** 公告通知* 后端接口* @author * @email * @date 2021-03-09 11:33:59*/
@RestController
@RequestMapping("/news")
public class NewsController {@Autowiredprivate NewsService newsService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NewsEntity news){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); return R.ok().put("data", newsService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(NewsEntity news){EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); NewsView newsView = newsService.selectView(ew);return R.ok("查询公告通知成功").put("data", newsView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){newsService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);return R.ok().put("count", count);}}
相关文章:

【网站项目】戒烟网站
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...

慢性软组织疼痛如何使用DMS深层肌肉刺激仪进行治疗?
使用DMS深层肌肉刺激仪治疗慢性软组织疼痛,可以遵循以下步骤: 准备工作:首先,确保DMS设备已经充电或插上电源,并根据需要调整振动强度和频率。DMS深层肌肉刺激仪是通过快速连续的振动和打击来刺激深层肌肉的设备&#…...

自动化测试常用工具
自动化测试工具是非常重要的。自动化测试工具可以帮助程序员提高工作效率,减少重复劳动和人为错误,提高产品质量。下面我将介绍几个常用的自动化测试工具。 Selenium:Selenium是一个开源的自动化测试框架,用于Web应用程序的自动化…...

【Osek网络管理测试】[TG4_TC4]tWaitBusSleep
🙋♂️ 【Osek网络管理测试】系列💁♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果1.环境搭建 硬件:VN1630 软件:CANoe 2.测试目的 验证DUT的tWBS时间参数是否符合NM标准 本处规定tWBS在[1350ms,1650ms]范围内符合要求 3.测试步骤…...

java08基础(值传递和引用传递 类和对象)
目录 一. 值传递和引用传递 1. 值传递 2. 引用传递 二. 面向对象思想 三. 类和对象 1. 类 2. 对象 2.1 使用 2.2 成员变量和局部变量区别 2.3 操作成员方法 2.4 this关键字(初识) 2.5 构造方法 (见java09) 一. 值传递和引用传递 1. 值传递 值传递是指在调用函数时将…...
高级数据结构与算法习题(9)
一、判断题 1、Let S be the set of activities in Activity Selection Problem. Then the earliest finish activity am must be included in all the maximum-size subset of mutually compatible activities of S. T F 解析:F。设S是活动选择问题中的一…...

Linux的vim下制作进度条
目录 前言: 回车和换行有区别吗? 回车和换行的区别展示(这个我在Linux下演示) 为什么会消失呢? 回车和换行的区别 为什么\r和\n产生的效果不同? 打印进度条: (1)打印字符串 …...

C++学习笔记2
T1 奇怪的教室 题目背景 LSU 的老师有个奇怪的教室,同学们会从左到右坐成一个横排,并且同一个位置可以坐多个同学。这天,入学考试的成绩下来了。同学们想根据入学考试的成绩,找出班里学霸扎堆的区域“学霸区”。 题目描述 共有…...

细数:智能物流装备界的并购案~
导语 大家好,我是智能仓储物流技术研习社的社长,老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 近年来,随着智能仓储物流行业的快速发展,全球范围内的并购活动日益频繁,各大企…...

微信小程序播放编码为 video/mp4;codecs=vp8 opus 的视频没有声音
最近在做浏览器录屏功能,主要是录屏加上麦克风生成mp4视频,最终生成的是编码为 video/mp4;codecsvp8 opus 的视频,音频编码因为是 opus 是无法在小程序正常播放的,这样就导致了视频没有声音。后来就在服务端做了一层转换ÿ…...

Linux 指令lsblk 作用,以及查看cpu使用情况和磁盘IO iostat指令详解
lsblk 指令 在Linux系统中,lsblk(列表块设备)命令是一个非常实用的工具,用于显示所有可用的块设备信息,如硬盘、USB驱动器、SD卡以及它们的分区。这个命令以易于理解的树状结构展示这些信息,清晰地表明了设…...

Mybatis之Sqlsession、Connection和Transaction三者间的关系
前言 最近在看Mybatis的源码,搜到这篇文章Sqlsession、Connection和Transaction原理与三者间的关系,debug之后发现有不少疑惑,于是按照原文整理了一下,记录下debug中的一些困惑点。 对于我们开发来讲,不管跟任何关系…...

WRT1900ACS搭建openwrt服务器小记
参考链接 wrt1900acs openwrt wrt1900acs openwrt 刷机 wrt1900acs原生固件刷openwrt-23.05.3-mvebu-cortexa9-linksys_wrt1900acs-squashfs-factory.img wrt1900acs openwrt更新刷openwrt-23.05.3-mvebu-cortexa9-linksys_wrt1900acs-squashfs-sysupgrade.bin 通过WEB UI来…...

Spring AOP(3)
目录 Spring AOP原理 代理模式 代理模式中的主要角色 静态代理 动态代理 总结:面试题 什么是AOP? Spring AOP实现的方式有哪些? Spring AOP实现原理 Spring使用的是哪种代理方式? JDK和CGLIB动态代理的区别? Spring AOP原理 代理模式 代理模式, 也叫委托模式. …...

推荐5个免费的国内平替版GPT
提起AI,大家第一个想到的就是GPT。 虽然它确实很厉害,但奈何于我们水土不服,使用门槛有些高。 不过随着GPT的爆火,现在AI智能工具已经遍布到各行各业了,随着时间的推移,国内的AI工具也已经“百花盛放”了…...

弹性云服务器是什么,为何如此受欢迎
云计算作为当下炙手可热的技术领域,已然成为现代企业不可或缺的核心能力。云服务器作为云计算的基石之一,在这个数字化时代发挥着至关重要的作用。而弹性云服务器,作为云服务器的一种演进形式,更是备受瞩目。 弹性云服务器&#…...

Docker部署RabbitMQ与简单使用
官网地址: Messaging that just works — RabbitMQ 我的Docker博客:Docker-CSDN博客 1.结构 其中包含几个概念: **publisher**:生产者,也就是发送消息的一方 **consumer**:消费者,也就是消费消息的一方 …...

2024年黄石市建设优质工程评价认定申报条件、流程及材料合集
2024年黄石市建设优质工程评价认定申报条件、流程及材料合集如下,黄石市的企业单位可以了解一下,有疑问名字找我哦。 第一章总则 第一条为贯彻落实《中华人民共和国建筑法》、《安全生产法》、《建设工程质量管理条例》、《建设工程安全生产管理条例》…...
偏微分方程算法之混合边界条件下的差分法
目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 我们在前几节中介绍了Poisson方程的边值问题,接下来对椭圆型偏微分方程的混合边值问题进行探讨,研究对象为: 其中,为矩形区域,为上的连续函数…...

apollo资料整理
Application X: Application X Apollo: Apollo 自动驾驶开放平台 Cyber RT API tutorial — Cyber RT Documents documentation Cyber RT API tutorial — Cyber RT Documents documentation GitHub - daohu527/dig-into-apollo: Apollo notes (Apollo学习笔记) - Apollo l…...

森林消防新利器:高扬程水泵的革新与应用/恒峰智慧科技
随着全球气候变化的加剧,森林火灾的频发已成为威胁生态安全的重要问题。在森林消防工作中,高效、快速的水源供给设备显得尤为重要。近年来,高扬程水泵的广泛应用,为森林消防工作带来了新的希望与突破。 一、高扬程水泵的技术优势 …...

Microsoft Universal Print 与 SAP 集成教程
引言 从 SAP 环境打印是许多客户的要求。例如数据列表打印、批量打印或标签打印。此类生产和批量打印方案通常使用专用硬件、驱动程序和打印解决方案来解决。 Microsoft Universal Print 是一种基于云的打印解决方案,它允许组织以集中化的方式管理打印机和打印机驱…...

VBA在Excel中字母、数字的相互转化
VBA在Excel中字母、数字的相互转化 字母转数字的方法 数字转字母的方法 众所周知,Excel表中的行以数字展示,列用字母展示,如下图: 编程时,很多时候需要将列的字母转变为数字使用,如cells(num1,num2).value等,不知大家是怎么将字母转化为数字的,Excel是否有其他方式…...

【C语言】——联合体与枚举
【C语言】——联合体与枚举 一、联合体1.1、联合体类型的声明1.2、联合体的特点1.3、相同成员的结构体和联合体对比1.4、联合体的大小计算1.5、联合体的应用举例 二、枚举2.1、枚举类型的声明2.2、枚举类型的优点 一、联合体 1.1、联合体类型的声明 联合体也叫做共用体 与…...

java线上问题排查之内存分析(三)
java线上问题排查之内存分析 使用top命令 top命令显示的结果列表中,会看到%MEM这一列,这里可以看到你的进程可能对内存的使用率特别高。以查看正在运行的进程和系统负载信息,包括cpu负载、内存使用、各个进程所占系统资源等。 2.用jstat命令…...

中电金信:金Gien乐道 | 4月要闻速览,精彩再回顾
中国电子党组副书记、总经理李立功一行调研中电金信 4月10日,中国电子党组副书记、总经理李立功一行赴中电金信进行调研,深入听取了中电金信经营发展情况、研发工作及“源启”行业数字底座平台的汇报,并参观了公司展厅和科技研发场所…...

Java将文件目录转成树结构
在实际开发中经常会遇到返回树形结构的场景,特别是在处理文件系统或者是文件管理系统中。下面就介绍一下怎么将文件路径转成需要的树形结构。 在Java中,将List<String>转换成树状结构,需要定义一个树节点类(TreeNode&#…...

硬件工程师必读:10条职业发展黄金法则!
在快速发展的科技时代,硬件工程师作为推动技术创新和产业升级的重要力量,其职业发展之路既充满挑战也蕴含无限机遇。为了在这条道路上稳步前行,我们首先需要了解硬件产品的研发流程。 在这个过程中,公司内的每个岗位都发挥着不可或…...

Redis是什么? 日常运维 Redis 需要注意什么 ? 怎么降低Redis 内存使用 节省内存?
你的项目或许已经使用 Redis 很长时间了,但在使用过程中,你可能还会或多或少地遇到以下问题: 我的 Redis 内存为什么增长这么快?为什么我的 Redis 操作延迟变大了?如何降低 Redis 故障发生的频率?日常运维…...

【Android项目】“追茶到底”项目介绍
没有多的介绍,这里只是展示我的项目效果,后面会给出具体的代码实现。 一、用户模块 1、注册(第一次登陆的话需要先注册账号) 2、登陆(具有记住最近登录用户功能) 二、点单模块 1、展示饮品列表 2、双向联动…...