目录

1、系统设计

2、数据库设计

3、系统管理

4、用户管理

5、名片管理


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

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

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

1、系统设计

1、系统功能需求

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

  • 非注册用户可以注册为注册用户;
  • 成功注册的用户,可以登录系统;
  • 成功登录的用户,可以添加、修改、删除以及浏览自己客户的名片信息;
  • 成功登录的用户,可以在个人中心查看自己的基本信息和修改密码。

2、系统模块划分

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

名片管理系统功能

2、数据库设计

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

1、数据库概念结构设计

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

  • 用户

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

  • 名片

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

数据库概念结构图

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

2、数据库逻辑结构设计

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

用户信息表

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

名片信息表

3、系统管理

1、导入相关的jar包

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

所需JAR包

2、JSP页面管理

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

  • 管理主页面

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

管理主页面
  • 程序报错页面

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

  • 无权限提示页面

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

  • 包文件和配置文件管理

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

包层次结构图

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

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,效果如下图所示:

注册页面

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

3、登录

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

登录界面

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

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

4、修改密码

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

密码修改页面

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

5、基本信息

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

基本信息页面

5、名片管理

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

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

1、Action的实现

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

2、添加名片

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

添加名片页面

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

3、查询名片

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

查询页面

单击主页面中“名片管理”菜单的“查询名片”菜单项,打开查询页面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。名片详细信息页面如下图所示:

名片详情

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页面的运行效果如下图所示。

updateSelect.jsp页面

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

updateCard.jsp页面

5、删除名片

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

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

deleteSelect.jsp页面

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

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

请关注微信公众号,回复关键字:名片管理系统,获取源码~


本文整理来源于:

1、《Java Web开发从入门到实战》陈恒 姜学 主编

2、清华计算机学堂

基于Struts2框架的名片管理系统相关推荐

  1. struts2通配符_基于Struts2框架的名片管理系统

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

  2. 基于Struts2框架的超市人事工资管理系统

    基于Struts2框架的超市人事工资管理系统 摘要: 由于计算机技术的飞速发展,网页与数据库技术作为数据管理的一个重要手段,在各行各业中得到了广泛的应用.本文基于Struts2框架技术,利用MyEcl ...

  3. 名片管理系统java_java毕业设计_springboot框架的名片管理系统

    这是一个基于java的毕业设计项目,毕设课题为springboot框架的名片管理系统, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jsp+spri ...

  4. 计算机毕业设计ssm基于SSM框架的众筹管理系统f5244系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM框架的众筹管理系统f5244系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM框架的众筹管理系统f5244系统+程序+源码+lw+远程部署 本源码技术栈: ...

  5. 基于ssm框架的汽车出租管理系统源码

    项目介绍: 基于ssm框架的汽车出租管理系统源码 高清视频演示: https://www.bilibili.com/video/BV1TY411u7X2/ 下载地址: https://download ...

  6. 基于ssm框架超市销售管理系统

    Java 基于ssm框架超市销售管理系统 1. 此系统是基于J2EE的会员管理系统 :根据实际需求,通过建立一些相关的接口,对相关功能进行实现,同时可采用框架技术进行合理的搭建设计,能简化代码的实现, ...

  7. 【原创】基于SSM框架的电子相册管理系统网站设计与实现

    随着社会的快速发展,人们的生活水平越来越丰富多彩,很多人,尤其是女生,喜欢拍照记录下没好的生活.但是随着照片越来越多,如何管理便成了一键烦心的事.于是我们想到了,设计一个电子相册网站,来管理分享生活中 ...

  8. 基于SSM框架的酒店管理系统

    基于SSM框架的酒店管理系统 开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 看每个等级模 ...

  9. 基于SSM框架的学籍管理系统

    下载地址:https://download.csdn.net/download/ouyangxiaobai123/20722172 项目介绍 基于SSM框架的学籍管理系统 系统说明 基于SSM框架的学 ...

最新文章

  1. 如何获得当前运行模块在进程地址空间的位置
  2. 用Emacs进行Java开发
  3. Kaggle Human Protein Atlas 比赛总结—如何闯入Top1%拿到金牌
  4. pandas 空字符串与na区别_关于python:Pandas用空白/空字符串替换NaN
  5. jQuery html表格排序插件:tablesorter
  6. 面试官:Object o = new Object() 占用了多少字节?
  7. c语言t0中断方式编程,PIC C语言编程_PICC中断函数的实现
  8. 使用 IntelliTrace 调试应用程序
  9. mysql导出_mysql数据库导入导出
  10. 卧槽,入职 3 天就“偷”代码,备份 6300 个 Python 脚本,不讲武德啊
  11. ZigBee(CC2530)(03)数据手册分享(英文+中文)
  12. 如何使用C#把数据写到EXCEL文档中
  13. Matlab读取二进制数据文件
  14. 第一次写正规论文的同学务必分享,排版自动排版,加注释。。。。。。等等!!!!!!!!(copy也得整出档次来啊,这就是门面啊)
  15. findIndex()
  16. 双区“网吧”,各得其乐
  17. tensorflow: bn层 的 decay参数项
  18. mysql返回指定时间格式_【MySQL】查询日期返回指定格式
  19. S5PV210 led.bin Makefile 浅析
  20. Python中用turtle库画旋涡

热门文章

  1. CSS 文字溢出显示省略号
  2. 计算机应用专业能评自动化工程师吗,报考自动化控制工程师中级职称需要哪些条件?...
  3. Android Studio 配置OpenCV4.4.0 不用安装OpenCV Manager (泪崩居然用了礼拜天2天的时间居然还没配置成功,今天又看了下配置成功了)
  4. TabLayout的指示器长度 的问题
  5. 设置子节点相对于父节点水平竖直都居中
  6. 第五次作业 何雅
  7. LOJ10074架设电话线
  8. Kubernetes 网络排错指南
  9. 不同级域名中的 Cookie 共享
  10. Linux IO实时监控iostat命令详解