基于 JavaWeb 的学院党费缴费系统

第 1 章绪论

1.1 项目背景

当今互联网发展及其迅速,互联网的便利性已经遍及到各行各业,惠及到每一个人,传统的缴费方式都需要每个人前往缴费点陆续排队缴费,不仅浪费大量了个人时间,而且也浪费了大量的公共资源,运用缴费系统可以很好的方便缴费用户在任何时间任何地点缴上费用,非常的便捷,方便!而且管理员也可以很直观,方便的管理用户和缴费信息及统计数据。

1.2 项目开发意义

网络的发展惠及到每一个人,也改变了每个人生活节奏和方式。带来了大量的便捷,只需一个按键,就可以完成以前甚至需要排队一天才可以完成的事情,本项目开发的学院党费缴费系统,不仅可以方便用户及时的缴费,而且也使管理员可以及其方便的管理用户和直观的查看用户缴费信息和数据统计等。

1.3 开发技术及开发环境

本次系统所采用的服务器开发技术是 JSP 以及 MySQL,开发工具为 eclipse,在前端采用了 Bootstrap 前端框架和 jQuery 插件库。全局采用 AJAX 技术进行通讯修改。

1.3.1JSP

JSP(全称 JavaServerPages)是由 SunMicrosystems 公司主导创建的一种动态网页技术标准。JSP 部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成 HTML、XML 或其他格式文档的 Web 网页,然后返回给请求者。JSP 技术以 Java 语言作为脚本语言,为用户的 HTTP 请求提供服务,并能与服务器上的其它 Java 程序共同处理复杂的业务需求。

1.3.2MySQL

MySQL 是一个关系型数据库管理系统,由瑞典 MySQLAB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 Web 应用方面,MySQL 是最好的 RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。

1.3.3Eclipse

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(JavaDevelopmentKit,JDK)。

1.3.4Bootstrap

Bootstrap 是美国 Twitter 公司的设计师 MarkOtto 和 JacobThornton 合作基于 HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap 提供了优雅的 HTML 和 CSS 规范,它即是由动态 CSS 语言 Less 写成。Bootstrap 一经推出后颇受欢迎,一直是 GitHub 上的热门开源项目,包括 NASA 的 MSNBC(微软全国广播公司)的 Breaking News 都使用了该项目。[1]国内一些移动开发者较为熟悉的框架,如 WeX5 前端开源框架等,也是基于 Bootstrap 源码进行性能优化而来。

1.3.5jQuery

jQuery 是一个快速、简洁的 JavaScript 框架,是继 Prototype 之后又一个优秀的 JavaScript 代码库(或 JavaScript 框架)。jQuery 设计的宗旨是“writeLess,DoMore”,即倡导写更少的代码,做更多的事情。它封装 JavaScript 常用的功能代码,提供一种简便的 JavaScript 设计模式,优化 HTML 文档操作、事件处理、动画设计和 AJAX 交互。

第 2 章系统分析

2.1 系统可行性分析

开发一个系统前是需要进行系统可行性分析的,通过可行性分析我们可以知道该系统是否可以受益进而判断系统是否值得开发,还可以知道系统开发过程中可能存在的问题是否值得去解决进而得知原先设计的系统的模型和目标是否可以实现。

2.1.1 系统技术可行性

本次的学院党费缴费系统采用了比较实用的 Java 语言、JSP 开发框架和 MySQL 数据库进行开发。我们在选择数据库工具时,关系型数据库系统是相对成熟的,有很多的数据库系统,如 SQLServer,Access2003 等采用这种技术。我的设计根据实际情况来选择的,Eclipse 是 Java 语言常使用的一个集成开发工具,当然其他的也可以,但是我看中是其依赖 JSP 平台的稳定,安全,便携性的优点而成为首选的系统开发工具。因为我比较熟悉 MySQL,因此选择它作为数据库工具。

2.1.2 系统经济可行性

系统的开发成本之间的关系,以及新的系统可能是利益之间的权衡,只有在充分考虑了它们之间的关系,我们才能够考虑系统在经济上的可行性。本次的学院党费缴费系统开发基本不需要资金,系统开发只需要在个人笔记本上操作即可,开发软件都是免费的,只要拥有一台个人电脑就可以,因此在经济上是可行的。

2.1.3 系统操作可行性

本次的学院党费缴费系统用于方便用户及时、随时的缴党费,所以核心功能是缴费,还有就是要方便管理员管理普通用户和对数据有及时直观的缴费统计。

2.2 系统需求分析

本次的学院党费缴费系统需要满足普通用户和管理员两种用户,对于普通用户,需要提供注册、登录、修改个人信息和缴费等信息;对于管理员,需要满足对于个人信息的修改、对缴费项目的管理、对普通用户的管理、对学院的管理等功能。

2.3 系统功能组成

通过对学院党费缴费系统的需求分析可知道,在开发学院党费缴费系统的时候应该将系统分为前台系统和后台管理系统。

1)学院党费缴费系统的前台

对于系统的前台开发要考虑到一些不太懂电脑操作的游客,所以前台系统的设计要易于操作。前台系统的主要功能要实用,应该包括自助注册、自助登录、自助修改信息和缴费等功能。

前台系统模块如图 1。

图 1 前台系统模块图

2)学院党费缴费系统后台

学院党费缴费系统是为管理员提供的管理后台,需要和普通用户进行分辨,提供基础的登录和信息修改功能,除此之外,还需要添加管理系统,包括但不限于用户管理、缴费管理、学院管理、信息统计等。

后台系统管理模块如图 2。

图 2 后台管理模块

2.3 系统功能模块分析

2.3.1 前台系统功能分析

1)登录模块

用户访问该站点,默认是未登录状态,所以此时需要为用户提供登录功能,登录进系统,然后使用其余功能,是一切功能的前提。

2)注册模块

对于注册模块,可能会出现新用户需要访问,但是没有自己账号的,此时就需要提供注册功能为这些用户提供注册账号的功能。

3)用户信息修改

对于用户个人中心,需要为用户提供自助修改姓名、密码等个人信息功能方便对用户的安全性和个性化提高保证。

4)缴费模块

对于缴费模块,用户可以查看当前需要缴费的订单和历史已经缴费过的订单,并可以直接点击进行缴费。

2.3.2 后台系统功能分析

1)登录

管理员与普通用户共同使用同一个登录页面,根据用户名来判断是管理员还是普通用户,借此跳转到不同的页面。

2)个人信息模块

对于个人信息模块,用于管理员修改自己的基本信息,例如姓名和密码等,可以有效的保证后台系统的安全性。

3)缴费管理模块

对于缴费管理模块,用于提供给管理员发起缴费订单,和查看缴费统计等功能,管理员可以自主选择订单的标题、金额、按学院筛选等

4)用户管理模块

对于用户管理模块,用于管理员对普通用户进行管理,包括对用户的增加、删除、按指定规则搜索和修改用户信息等功能。

5)学院管理模块

对于学院管理模块,用于管理员对学院信息进行管理,因为学院不止一个且学生分属不同的学院,包括对学院的增加、删除、修改学院名称和搜索等。

第 3 章系统设计

3.1 系统结构设计

学院党费缴费系统包括前台系统和后台管理系统。前端功能包括用户信息修改、缴费管理等;后台包括管理员信息修改、学院信息修改、订单管理、用户管理等功能。角色分为普通用户与管理员。

本系统的系统总体功能结构设计如图 3。

图 3 系统总体功能结构

3.2 系统数据库设计

3.2.1 系统实体图

在设计数据库的时候,首先应该知道系统要存储那些事物的信息,然后再确定这些事物间的相互关系,这些事物就是实体——表示数据库中描述的现实世界中的对象或概念[6]。

学院党费缴费系统的实体图,如图 4、图 5、图 6 和图 7。

图 4 用户图

图 5 缴费列表

图 6 学院信息

图 7 订单信息

3.2.2 系统 E-R 图

E-R 图是用来描述现实世界的概念模型,也称为实体-联系图,提供了表示实体类型、属性和联系的方法[6]。各实体关系联系图,如图 8

图 8 各实体关系联系图

3.2.2 系统数据表设计

本系统创建的 SQL 数据库名称为 DataManage。通过对系统功能分析可知,本系统主要包括以下表 1、表 2、表 3 和表 4。

表 1 用户(user)表

列名称

类型

长度

主键

说明

允许空

Id

int

11

yes

编号

no

Username

varchar

255

用户名

yes

Userid

varchar

255

用户 ID

no

userpwd

varchar

255

用户密码

no

usertype

varchar

255

用户类型

yes

regtime

Datetime

0

注册时间

no

userphone

varchar

255

用户手机号

no

balance

int

11

用户余额

no

classid

int

11

归属学院

no

表 2 学院信息(class)表

字节名称

类型

长度

主键

说明

允许空

ID

int

11

yes

学院编号

no

Classid

int

11

学院 ID

no

Classname

int

255

学院名称

no

表 3 缴费信息(works)表

字段名称

类型

长度

主键

说明

允许空

ID

int

11

yes

缴费编号

no

title

varchar

100

缴费标题

yes

content

text

0

缴费详细信息

yes

toclassid

int

11

归属学院 ID

no

price

Decimal

10.2

缴费金额

no

ctime

Datetime

0

创建时间

no

表 4 缴费订单(detail)表

字段名称

类型

长度

主键

说明

允许空

ID

int

11

yes

订单编号

no

userid

int

11

用户 ID

no

createtime

datetime

0

创建时间

no

status

Int

1

状态

no

workid

Int

11

缴费编号

no

第 4 章系统实现

4.1 系统实现的技术

学院党费缴费系统采用的是 JSP+ajax 技术,整体逻辑架构如图 9

图 8 系统架构

网站访问时默认访问 JSP 页面,经过 JSP 和 HTML 渲染后输出到浏览器端,再与用户交互后由 js 通过 AJAX 技术与 JSP 中的 servlet 交互,并实时反馈给浏览器端。前端采用和 Bootstrap 框架和 jQuery 插件库。

4.2 用户系统的实现

学院党费缴费系统的前台主要有主页面(index.jsp)、个人用户中心页面(user.jsp)、订单详情页面(detail.jsp)等。

index.jsp 是默认页面,用于给访问用户提供注册和登录的功能,之后经过正确验证后跳转到个人中心页面,见图 9。

图 9 首页

个人用户中心页面是展示当前登录用户的信息等的一个页面,可以用于用户查看和修改个人信息,见图 10。

图 10 个人信息页面

订单信息页面用于展示当前用户需要缴纳的缴费订单和历史已经完成缴费的订单,见图 11。

图 11 用户订单

4.3 管理员后台系统的实施

系统后台是从管理者的角度设计的。对于首页模块,系统根据数据库表中的 usertype 字段来判断当前用户是管理员还是普通用户,如果是管理员则跳转到管理员的后台页面。此时也会添加标识至 session 存储。

管理员后台可以修改当前管理员的个人信息,例如姓名、密码等,可以有效的保证系统的安全,见图。

图 12 管理员个人信息

对于用户,管理员可以自定义添加用户(图 13),搜索指定用户(图 14)和修改用户的信息(图 15)及删除指定用户。

图 13 管理员新增用户

图 14 筛选用户

图 15 修改用户信息

对于学院信息,管理员可以自定义的添加学院(图 16)、修改学院姓名(图 17)和删除指定学院。

图 16 新增学院

图 17 修改学院名称

对于缴费信息,管理员可以发起指定的一次缴费任务(图 19),自定义的添加任务的标题,详细介绍和任务需要缴纳的金额及要发送给的学院名称。

图 18 缴费任务列表

图 19 新增缴费

4.4 代码设计

数据库设计

本次系统对应数据库进行设计了 4 个基本模型,分别为:user、works、detail、class,其中字段与数据库一一对应。

Servlet 设计

表 5servlet 表

名称

用处

AddClass

管理员添加学院

Adddetail

管理员发起新缴费

ChangeUserInfo

修改用户信息

DeleteClass

删除学院

DetailU

用户发起缴费

GetUserInfo

获取用户信息

Login

登录

Logout

登出

Register

注册

Upclass

修改学院信息

UpUserInfo

管理员修改用户信息

页面设计

页面文件名称

页面介绍

index.jsp

首页,同时也是登录页

admin.jsp

管理员信息页

Adduser.jsp

管理员添加用户的页面

Admin_class.jsp

管理员管理学院的页面

Admin_pay.jsp

管理员管理缴费信息的页面

Admin_user.jsp

管理员管理用户的页面

Detail.jsp

用户的缴费详情页

Foot.jsp

公共脚部

Head.jsp

公共头部

Register.jsp

注册页面

User.jsp

用户个人中心

第 5 章系统测试

系统完成后并不可以直接拿来使用,需要经过测试成功才可以。测试软件的方法有很多种,但基本可分为黑盒测试和白盒测试两类。黑盒测试又叫功能测试,用户是不可见的,对程序员可见。白盒测试又叫性能测试,对所有人都可见。

因用户所见只是系统的功能,所以本系统采用的测试方法为黑盒测试[11]。此次测试的目的是为了发现系统的功能模块存在的缺陷。主要测试该系统的功能是否存在不确定的地方或是系统功能是否存在遗漏;数据库具体操作是否存在错误;系统界面是否符合要求等。以下用用户登录为例进行登录功能测试。

测试用例 1:

用户名输入 123456,密码输入 123456,结果登录成功,跳转到用户页

测试用例 2:

用户名输入 123456,密码输入 321,结果登录失败。

测试用例 3:

用户名输入 10001,密码输入 123456,结果登录成功,并且跳转到管理员后台页面。

通过实践中的测试,虽然该系统的功能不是很完善,但是该系统的基本功能存在错误,测试的基本结果显示良好。

第 6 章总结

本次开发的学院党费缴费系统是一个动态网页,本次开发的学院党费缴费系统是一个动态网页,采用了 JSP 作为开发语言。学院党费缴费系统在设计完成之后进行了一系列的测试,测试结果显示良好。通过本系统,普通用户可以自助注册、登录、查询缴费信息并自主发起缴费。管理员可以在管理员专属页面查看注册用户信息,并且可以自己添加用户和修改用户信息,对于缴费信息,管理员也可以自助发起缴费任务。非常的方便且简洁。

当然,本次的系统并不算非常完善,虽然已经实现了基本的需求,并且运行过程中并无致命缺陷,但是还有许多需要完善和需要改进的地方,比如可以给管理员添加数据统计的图表数据和导出数据的功能,这次的课程设计是本人首次自己使用 JSP 开发一个完整的系统,由于能力的不足和经验的缺乏,导致系统功能简单还有一些不足。不过,我相信,只要平时认真踏实学习编程知识,再通过做项目不断的积累经验,将来在开发系统方面我一定会越做越好。

参考文献

[1]明日科技.JavaWeb 从入门到精通[M].北京:清华大学主板社,2012.

[2]秦琦.便利店库存管理系统的设计与实现[D].长春:吉林大学,2019.

[3]张国权.JavaWeb 程序设计实战[M].上海;上海交通大学出版社,2019.

[4]晚空.系统构建[EB/OL].https://www.mmifx.com/?post=73,2020.

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LCGL基本使用

LVGC简介 light video Graphics Library (1)纯c与语言编程,将面向对象的思想植入c语言。 (2)轻量化图形库资源,人机交互效果好,在(ios Android QT)移植性较好,但是这些平台对硬件要求较高 lcgc工程搭建 工程源码的获取 获取工程结构 https://github.com/lvgl/lv_po…

嵌入式第十六课!!!结构体与共用体

一、结构体结构体是一种数据类型,它的形式是这样的:struct 结构体名{ 结构体成员语句1;结构体成员语句2;结构体成员语句3;};举个例子:struct Student {int id;char name[20];float score…

java web 实现简单下载功能

java web 实现简单下载功能 项目结构├── src\ │ ├── a.txt │ └── com\ │ └── demo\ │ └── web\ │ ├── Cookie\ │ ├── download\ │ ├── homework\ │ ├── serv…

虚幻基础:模型穿模

能帮到你的话,就给个赞吧 😘 文章目录模型穿模模型之间的阻挡是否正确设置模型是角色的组件:角色的组件不会与场景中其他的物体发生阻挡但可以发生重叠模型穿模 模型之间的阻挡是否正确设置 模型是角色的组件:角色的组件不会与场…

【Linux】linux基础开发工具(二) 编译器gcc/g++、动静态库感性认识、自动化构建-make/Makefile

文章目录一、gcc/g介绍二、gcc编译选项预处理编译汇编链接三个细节三、动静态库感性认识动静态库的优缺点四、自动化构建-make/Makefile背景知识初步上手Makefilemakefile的推导过程makefile语法一、gcc/g介绍 我们之前介绍了编辑器vim,可以让我们在linux上linux系统…

CentOS 7 上使用 Docker 安装 Jenkins 完整教程

目录 前言 准备工作 系统要求 检查系统信息 更新系统 安装Docker 第一步:卸载旧版本Docker(如果存在) 第二步:安装必要的软件包 第三步:添加Docker官方仓库 第四步:安装Docker CE 第五步:启动Docker服务 第六步:验证Docker安装 第七步:配置Docker用户权限…

30.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--公共代码--用户上下文会话

在前面的文章中,我们会看到使用ContextSession来获取当前用户的UserId和UserName。这篇文章我们就一起来看看如何实现ContextSession。 一、ContextSession的实现 我们在公共类库SP.Common中创建一个名为ContextSession的类,用于获取当前请求的用户信息。…

BaseDao

#### 10.1 DAO概念> DAO:Data Access Object,数据访问对象。 > > Java是面向对象语言,数据在Java中通常以对象的形式存在。一张表对应一个实体类,一张表的操作对应一个DAO对象!>> 在Java操作数据库时&a…

USRP捕获手机/路由器数据传输信号波形(中)

目录: USRP捕获手机/路由器数据传输信号波形(上) USRP捕获手机/路由器数据传输信号波形(中) USRP捕获手机/路由器数据传输信号波形(下) 三、双工通信信号捕获 3.1 信号接收系统 5805e6Hz&a…

使用 Kiro AI IDE 3小时实现全栈应用Admin系统

Hello, 大家好,我是程序员海军, 全栈开发 |AI爱好者 | 独立开发。 之前我是采用Node生态开发的大模型以及MCP Server,大模型开发的生态主要是Python语言,为了更好的学习大模型开发,于是开了新坑。开始学习Python, 以及…

浏览器pdf、image显示

浏览器地址栏 pdf data:application/pdf;base64, data:application/pdf;base64,JVBERi0xLjcKJeLjz9MKMjMgMCBvYmoKPDwv image data:image/jpeg;base64, data:image/jpeg;base64,/9j/4Q3fRXhpZgAATU0AKgAAAAgABwE

《Linux运维总结:银河麒麟V10 SP3启动docker容器报错permission denied》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:Linux运维实战总结 一、环境信息 二、背景 1、使用docker启动一个nginx容器,报错信息如下: docker: Error response from…

PDF源码解析

PDF源码解析打开PDF解析PDF​0. 文件头关键信息解析技术原理图解文件头的重要性实际文件结构示例开发者注意事项历史背景1. 根目录整体结构关键字段解析核心概念解释实际应用场景完整对象关系图技术总结2. 页面树对象结构关键字段解析页面树工作原理技术要点总结实际应用3. 图像…

java开闭原则 open-closed principle

基本知识 1.核心思想:面向抽象编程 2.基本内涵:对修改关闭,对扩展开放 3.要求:尽可能不修改源码而是增加新功能 例子 以spring5核心原理与30个类手写实战中的为例 package com.gupaoedu.vip.design.principle.openclose;/*** Crea…

拥抱智慧物流时代:数字孪生技术的应用与前景

概述 在数字经济全面推进的当下,物流行业正经历着前所未有的智能化升级。作为新一代信息技术的重要代表,数字孪生技术正悄然改变着物流的运作方式和决策模式。所谓数字孪生,是指在虚拟空间中创建与现实物流系统高度一致的数字模型&#xff0…

libnest2d-头文件分析-libnest2d.hpp-几何类型-策略类型-参数配置

libnest2d 库的主头文件,定义了一个用于 二维不规则形状自动排样(Nesting) 的C接口。以下是详细解析:1. 头文件结构 (1) 防止重复包含 #ifndef LIBNEST2D_HPP #define LIBNEST2D_HPP // ... #endif // LIBNEST2D_HPP确保头文件只被…

【Docker】部署Docker可视化管理面板Dpanel

一、DPanel 介绍 1.1 DPanel 简介 DPanel 是一款专为 Docker 设计的可视化管理面板,旨在降低容器、镜像及相关资源的管理门槛。通过简洁直观的图形化界面,即使是对 Docker 不熟悉的用户,也能轻松上手,实现容器化应用的高效部署与管…

GCC/G++ + Makefile/make 使用

一、gcc\g编译器 什么是gcc和g,它们的区别又是什么? gcc编译器是专门用来编译C语言的,而g编译器既可以编译C语言又可以用来编译C,但是主要还是用来编译C。 我们都知道代码形成可执行程序都是需要经过预处理、编译、汇编和链接这四…

重复文件查找工具:DataSecurity Plus 全面提升企业文件管理效率

企业日常运营经常会出现这样的场景:员工在文件传输、共享与备份过程中,因操作不当或系统设置问题,出现文件重复存储;跨部门协作时,相同的项目资料可能被多次保存;随着数据迁移与系统升级,重复文…

【软件架构】资源池架构设计中的三种主流模式

在资源池架构设计中,三种主流模式——集中式、分布式和混合式资源池——各有其独特的优势、劣势和适用场景。理解它们的区别对于设计高效、可靠和可扩展的系统至关重要。 下面是对这三种模式的详细分析和比较:集中式资源池 核心概念: 将所有计…