基于Struts2框架的名片管理系统

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 基于Struts2框架的名片管理系统

目录

1、系统设计


2、数据库设计


3、系统管理


4、用户管理


5、名片管理


本篇博文将分享一款基于Struts2框架的名片管理系统,JSP引擎为Tomcat9.0,数据库采用的是MySQL5.5,集成开发环境为Eclipse IDE for Java EE Developers。


名片管理系统主要包括用户管理和名片管理功能。用户功能主要包括:用户注册、用户登录、修改密码和修改基本信息功能;名片管理主要包括:添加名片、查询名片、修改名片、删除名片功能。


希望通过本篇的学习,朋友们不仅能掌握Struts 2应用开发的流程、方法和技术,还能够熟悉名片管理的业务需求、设计以及实现。


1、系统设计

1、系统功能需求


名片管理系统主要包含以下功能:


非注册用户可以注册为注册用户;

成功注册的用户,可以登录系统;

成功登录的用户,可以添加、修改、删除以及浏览自己客户的名片信息;

成功登录的用户,可以在个人中心查看自己的基本信息和修改密码。

2、系统模块划分


用户登录成功后,进入管理主页面(main.jsp)可以对自己的客户名片进行管理。系统模块划分,如下图所示。

image.png


名片管理系统功能

2、数据库设计

系统采用加载纯Java数据库驱动程序的方式连接MySQL5.5数据库。在MySQL5.5的数据库card中,共创建两张与系统相关的数据表:usertable和cardinfo。


1、数据库概念结构设计


根据系统设计与分析,可以设计出如下数据结构:


用户

包括用户名和密码,注册用户名唯一。


名片

包括ID、名称、电话、邮箱、单位、职务、地址、Logo以及所属用户。其中,ID唯一,“所属用户”与“1.用户”关联。根据以上的数据结构,结合数据库设计的特点,可画出如下图所示的数据库概念结构图。

image.png


数据库概念结构图

其中,ID为正整数,值是从1开始递增的序列。


2、数据库逻辑结构设计


将数据库概念结构图转换为MySQL数据库所支持的实际数据模型,即数据库的逻辑结构。用户信息表(usertable)的设计,如下表所示:

image.png


用户信息表

名片信息表(cardinfo)的设计,如下表所示:


image.png

名片信息表

3、系统管理

1、导入相关的jar包


新建一个Struts 2应用cardManage,在所有JSP页面中尽量使用EL表达式和JSTL标签,又因为系统采用纯Java数据库驱动程序连接MySQL5.5以及JSON数据转换。所以,需要将对应的JAR包复制到WebContent\WEB-INF\lib的目录下,JAR包如下图所示:

image.png


所需JAR包

2、JSP页面管理


由于篇幅受限,这里仅附上运行效果图,所有实现见源代码。


管理主页面


注册用户在浏览器地址栏中输入http://localhost:8080/struts2cardManage/login.jsp访问登录页面,登录成功后,进入管理主页面(main.jsp),main.jsp的运行效果如下图所示:

image.png


管理主页面

程序报错页面


当Java程序运行出现异常时,系统会执行全局页面error.jsp。


无权限提示页面

在没有成功登录的情况下,对名片进行增、删、改、查等操作时,系统执行无权限操作,提示页面nologin.jsp。


包文件和配置文件管理

本系统的包文件和配置文件层次结构如下图所示:

image.png


包层次结构图

所需包文件说明如下所示:


action包
该包是系统中所有Action类,包括名片管理的Action类和个人中心的Action类。
Conf文件夹
该文件夹的xml文件是本系统所有Action类的配置。“card.xml”是名片管理Action类的配置,“user.xml”是个人中心Action类的配置。这些xml文件需要在struts.xml文件中包含进来。
dao包
dao包中存放的Java程序是实现数据库的操作。其中BaseDao是一个父类,该类负责连接数据库;CardDao是BaseDao的一个子类,有关名片管理的数据访问在该类中;UserDao是BaseDao的另一个子类,有关用户的数据访问在该类中。另外,该包中还有一个名为“jdbc.properties”的文件,该文件是有关数据库的配置。包括驱动类名、数据库URL、用户名以及密码等。
entity包
该包中有1个实体类:Card,封装名片信息。
interceptor包
该包中有1个拦截器类:LoginValidateInterceptor,进行权限控制。
util包
该包中MyUtil类是获得一个时间字符串的工具类。
所需配置文件文件说明如下所示:
struts.xml
在软件系统开发中,模块化设计是最常用的一种方式。为了方便管理,本系统也不例外,将不同模块的配置分别放在不同的配置文件中。然后,在struts.xml文件中,通过include引入这些配置文件。
user.xml
该配置文件负责配置和用户有关的Action。
card.xml
该配置文件负责配置个人中心有关的Action,在此处使用了通配符“*”动态匹配Action的请求名称。

4、用户管理

用户功能主要包括:用户注册、用户登录、修改密码和修改基本信息功能。


1、Action的实现


UserAction类负责处理“会员注册”、“会员登录”、“安全退出”以及“个人中心”的功能。


2、注册


在系统默认主页index.jsp,单击“注册”链接,打开注册页面register.jsp,效果如下图所示:

image.png


注册页面

在deleteSelect.jsp页面所示的注册页面中,输入“姓名”后,系统会根据Ajax异步请求路径“jsontest/isUse.action”检测“姓名”是否可用。输入合法的用户信息后,单击“注册”按钮,实现注册功能。


3、登录


在系统默认主页index.jsp,单击“登录”链接,打开登录页面login.jsp,效果如下图所示:

image.png


登录界面

用户输入姓名和密码后,系统将对姓名和密码进行验证。如果姓名和密码同时正确,则成功登录,将用户信息保存到session对象,并进入系统管理主页面(main.jsp);如果姓名或密码有误,则提示错误。


单击登录界面中“确定”按钮,通过请求路径“user/login.action”,将登录请求提交给Action。配置文件user.xml根据请求路径找到对应Action类UserAction(6.1节)的login方法处理登录请求。


4、修改密码


单击主页面中“个人中心”菜单的“修改密码”菜单项,打开密码修改页面updatePWD.jsp。页面效果如下图所示:


image.png

密码修改页面

在密码修改页面中输入“新密码”和“确认新密码”后,单击“修改密码”按钮,将请求通过“user/updatePwd.action”提交给Action。配置文件user.xml根据请求路径找到对应Action类UserAction(6.1节)的updatePwd方法处理密码修改请求。


5、基本信息


单击主页面中“个人中心”菜单的“基本信息”菜单项,打开基本信息页面userInfo.jsp。页面效果如下图所示:

image.png


基本信息页面

5、名片管理

与系统相关的JSP页面、CSS和图片位于WebRoot目录下。在第3节中,已经介绍了系统的数据库操作,所以本节只是介绍JSP页面和Action的实现。


名片管理主要包括:添加名片、查询名片、修改名片、删除名片功能。


1、Action的实现


CardAction类负责处理“名片管理”的功能,包括添加、修改、删除、查询等。


2、添加名片


用户输入客户名片的姓名、电话、E-Mail、单位、职务、地址、Logo后,单击“提交”按钮实现添加。如果成功,则跳转到查询页面;如果失败,则回到添加页面。addCard.jsp页面实现添加名片信息的输入界面,如下图所示:

image.png


添加名片页面

单击上图中“提交”按钮,将添加请求通过“card/addCard.action”提交给Action处理。配置文件card.xml根据请求路径找到对应Action类CardAction(5.1节)的add方法处理添加功能。添加成功跳转到查询Action;添加失败回到添加页面。


3、查询名片


管理员登录成功后,进入名片管理系统的主页面,在主页面中初始显示查询页面queryCards.jsp,查询页面运行效果如下图所示:

image.png


查询页面

单击主页面中“名片管理”菜单的“查询名片”菜单项,打开查询页面queryCards.jsp。“查询名片”菜单项超链接的目标地址是个Action。该Action的请求路径为“card/queryCard.action”,配置文件card.xml根据请求路径找到对应Action类的query方法处理查询功能。在该方法中,根据动作类型(“修改查询”、“查询”以及“删除查询”),将查询结果转发到不同页面。


在queryCards.jsp页面中单击“详情”超链接,打开名片详细信息页面detail.jsp。“详情”超链接的目标地址是个Action。该Action的请求路径为“card/selectACard.action”。配置文件card.xml根据请求路径找到对应Action类的selectA方法处理查询一个名片功能。将查询结果转发给详细信息页面detail.jsp。名片详细信息页面如下图所示:


image.png

名片详情

4、修改名片


单击主页面中“管理名片”菜单的“修改名片”菜单项,打开修改查询页面updateSelect.jsp。“修改名片”菜单项超链接的目标地址是个Action。找到对应Action类CardAction的方法query,在该方法中,根据动作类型,将查询结果转发给修改查询页面。


单击updateSelect.jsp页面中的“修改”超链接打开修改名片信息页面updateCard.jsp。“修改”超链接的目标地址是个Action。找到对应Action类CardAction的方法selectA,在该方法中,根据动作类型,将查询结果转发给updateCard.jsp页面显示。


输入要修改的信息后,单击“提交”按钮,将名片信息提交给Action,找到对应Action类CardAction的方法update,在方法中执行修改的业务处理。修改成功,进入查询名片。修改失败,回到updateCard.jsp页面。updateSelect.jsp页面的运行效果如下图所示。


image.png

updateSelect.jsp页面

updateCard.jsp页面的运行效果如下图所示:

image.png


updateCard.jsp页面


5、删除名片


单击主页面中“管理名片”菜单的“删除名片”菜单项,打开删除查询页面deleteSelect.jsp。


“删除名片”菜单项超链接的目标地址是个Action。找到对应Action类CardAction的方法query,在该方法中,根据动作类型,将查询结果转发给deleteSelect.jsp页面,页面效果如下图所示:

image.png


deleteSelect.jsp页面

在上图的复选框中选择要删除的名片,单击“删除”按钮,将要删除名片的ID提交给控制器Action。找到对应Action类CardAction的方法delete,在该方法中,根据动作类型执行批量删除的业务处理。


单击上图中的“删除”超链接,将当前行的名片ID提交给控制器Action,找到对应Action类CardAction的方法delete,在该方法中,根据动作类型执行单个删除的业务处理。删除成功后,进入删除查询页面。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
Java 关系型数据库 MySQL
基于Web的影院信息管理系统设计与实现(论文+源码)_kaic
基于Web的影院信息管理系统设计与实现(论文+源码)_kaic
|
4月前
|
Java 关系型数据库 MySQL
基于JSP技术的社区生活超市管理系统
基于JSP技术的社区生活超市管理系统
|
4月前
|
存储 Java 关系型数据库
基于JSP的二手交易平台网站
基于JSP的二手交易平台网站
|
5月前
|
SQL 开发框架 .NET
基于Web的养老院管理系统的设计与实现(论文+源码)_kaic
基于Web的养老院管理系统的设计与实现(论文+源码)_kaic
|
11月前
|
Java 关系型数据库 MySQL
基于SSM的花店商城系统(有报告)。Javaee项目。
基于SSM的花店商城系统(有报告)。Javaee项目。
|
11月前
|
Java 关系型数据库 MySQL
基于SSM的新生报到管理系统(有报告)。Javaee项目。
基于SSM的新生报到管理系统(有报告)。Javaee项目。
|
12月前
|
SQL 存储 Java
JSP商家餐饮管理系统myeclipse开发sql数据库web结构java编程
JSP 商家餐饮管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 商场餐饮管理系统就是专门为商场和餐饮店主量身打造的一款电子商务系统,商场可以通过它来管理商场的美食广场,商场餐饮管理能能够使居民享受到餐厅美食,既方便了顾客,也节约了时间,提高了效率,也解决了普通商场美食广场出现的问题
39 0
|
12月前
|
Java 关系型数据库 MySQL
JSP二手车销售网站系统myeclipse开发mysql数据库web结构java编程
JSP二手车销售网站系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
37 0
|
12月前
|
Java 关系型数据库 MySQL
JSP药店积分管理系统myeclipse开发mysql数据库web结构java编程
JSP 药店积分管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
67 0
|
12月前
|
Java 关系型数据库 MySQL
JSP酒店点餐管理系统myeclipse开发mysql数据库web结构计算机java编程
JSP 酒店点餐管理系统 是一套完善的web设计系统(serlvet+dao+bean),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库 ,系统主要采用B/S模式开发。 技术介绍: 应用技术:java|jsp+mysql 开发工具:Myeclipse、jdk、tomcat。
46 0