绪论

摘要

当今社会发展迅速,互联网相关技术快速在各行各业普及,智能办公的需求日益增长。同时,随着企业发展不断推进,规模越做越大,传统的纸笔和文件系统记录人员信息已经无法满足大数据时代成千上万员工职业信息的管理和维护。因此,为企业定制一款基于数据库系统的OA管理系统成为了迫在眉睫的任务。

本项目开发了一款基于Struts、Spring和Hibernate(SSH)框架的办公人员管理系统,功能涵盖登录、权限管理、对人员信息进行增加、修改、删除和查询,也可以上传和下载员工的照片,充分体现了这三种框架在互联网信息系统中的功能应用。

项目前端以网页的形式呈现,可以在主流浏览器中流畅运行。后端采用Java语言编写,使用MySQL数据库存储系统相关的数据信息。采用了良好的设计模式,易于维护,可扩展性好,在不同操作系统和浏览器中适应性强,体现了软件工程的开发思想。

研究背景和研究意义

近年来经济的快速发展,促成了互联网应用的巨大规模和快速发展趋势。当今时代,办公与我们生活息息相关,涉及到工业生产和人民生活的方方面面。但是,在企业规模越来越大、员工信息越发复杂、企业日志越来越难以记录的情况下,如何更好地进行高效办公、搭建办公OA系统,成为了近年来国内外许多研究人员正在不断探究的一个新课题。

为了解决这一问题,新的办公OA系统,尤其是在Web端基于SSH的办公OA系统的发展极为迅速。通过不断完善办公OA相关系统,企业可以逐步实现越来越好的员工信息管理,减少了信息的不对称性,提升了资源的利用效率,人们也逐步开始解决这一困扰大家的难题。

21世纪以来,随着互联网技术的快速发展,计算机逐渐普及到企业中每个人的办公桌上。本项目针对办公OA管理的问题,设计并实现了基于SSH框架的办公OA系统,用户通过Web浏览器登录系统,将员工信息录入并保存在云端服务器中,并且可以与企业内其他人员共享和维护记录,减少人员流动成本。因此,开发一款基于SSH框架的办公OA系统对于各行各业企业员工管理相关领域实际生产生活的需要具有重要的意义,有广泛的应用前景。

技术介绍

Java 和Java Web

Java 是一门面向对象的编程语言,也是一门非常强大的语言。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

Java Web是用Java技术来解决相关Web互联网领域的技术栈。Web包括:Web服务端和Web客户端两部分。Java在服务器端的应用非常的丰富,如Servlet,JSP、第三方框架等等。Java技术对Web领域的发展注入了强大的动力。

Struts

Struts 由Apache基金会管理,是一个免费的开源 MVC 框架,用于创建优雅的现代 Java Web 应用程序。Struts最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。Struts支持约定而非配置,可使用插件架构进行扩展,并随附支持 REST、AJAX 和 JSON 的插件。

在Struts中,已经由一个名为ActionServlet的Servlet充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在MVC的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts里的ActionForm与Action两个需要继承实现超类。在这里,Struts可以与各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB),JDBC与JNDI。在Struts的视图(View)端,除了使用标准的JavaServer Pages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如Velocity Templates,XSLT等。通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与 映射关系的配置文件(struts-config.xml)中。

Spring

Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JavaEE架构中取代CMP,完成数据持久化的重任。

MySQL

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

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

Spring Security

Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。

在 Web 应用开发中,安全一直是非常重要的一个方面。从应用开发的第一天就应该把安全相关的因素考虑进来,并在整个应用的开发过程中。

开发配置

硬件

CPU:Intel Core i7 Gen 11显卡:NVIDIA RTX 3060内存:16GB

软件操作系统:Windows 10后端集成开发环境:Intellij IDEA Ultimate 2020.2前端集成开发环境:Visual Studio Code浏览器:Google Chrome数据库:MySQL 8.0.12

需求分析和系统设计

需求分析

为了确定办公OA系统开发方向,需要对系统进行需求分析,确定办公OA系统需要开发的功能。好的需求分析可以减少返工时间和代码修改时间。因此,系统需求分析应谨慎进行。

在系统需求分析阶段,开发人员通过对办公人员进行走访和资料采集,了解到人员之间的沟通交流仅通过语言、短信传输的方式进行,沟通起来比较麻烦,并且不同的人员之间掌握的资料都不相同,资料的整合变得相当困难。开发者通过对各个人员之间掌握的数据和调查结果进行归纳和收集,为本系统得到了构建一个办公OA系统的基本要求。

本次课题设计和实现的办公OA系统,其主要思想是将员工管理的日常工作流程化,展示办公OA系统的人机界面,让用户操作界面上的员工信息与后台程序进行数据交互,后台程序将进行修改的记录上传至服务器,并实时返回和显示操作结果。本系统的实现,使得办公人员工作成本大大减少,实现了远程办公。

用例分析

表4-1 登录用例分析

项目 描述 用例名称 登录 前置条件 无 基本流

操作人员输入用户名操作人员输入密码操作人员点击登录按钮用例终止 其他事件流 无 分支与异常 若系统读取用户名或密码错误,则报告异常 若用户被禁用,则报告异常 后置条件 无

     表4-2 权限管理用例分析

项目 描述 用例名称 权限管理 前置条件 登录 基本流

操作人员单击选择权限按钮操作人员选择权限提交选择的权限用例终止 其他事件流 操作人员可以禁用或启用用户 分支与异常 无 后置条件 无

表4-3 员工管理用例分析

项目 描述 用例名称 员工管理 前置条件 登录 基本流

操作人员添加一个员工操作人员删除一个员工操作人员查找一个员工 其他事件流 无 分支与异常 输入的数据不符合规范,报告异常 输入的信息包括空值,报告异常

功能实现

登录

用户打开界面后,可以看到一个登录框,系统提示用户输入其账号和密码,单击“登录”按钮进入系统。系统前端收到登录请求后,通过HTTP向后端服务器请求验证账号是否存在、密码是否正确。如果用户已被禁用,则无法登录系统。

后端使用了Spring提供的Spring Security安全框架以保证用户不可以不经过登录而直接通过其他技术方式(如直接输入URL)访问和使用系统的某些功能。Spring Security是一个高度自定义的安全框架。利用Spring IoC/DI和AOP功能,为系统提供了声明式安全访问控制功能,减少了为系统安全而编写大量重复代码的工作。

权限管理

用户登录系统后,系统根据数据库中存储的用户权限为不同用户展现不同的功能选项。系统界面左侧陈列了一系列用户可以进入的权限菜单组,每个菜单组下显示了用户可以访问若干子模块。分配权限的权利属于拥有“权限分配”这项权限的用户。

用户也可以在这个模块禁用一名用户,使其不能登录系统。

权限管理的页面每个员工作为一行显示,显示账号和当前状态,有禁用和开启权限的功能。

修改权限后,用户重新登录即可看到自己修改后可访问的权限。

信息管理

系统信息管理模块为用户提供了部门信息管理和员工信息管理两个子模块。其中,部门信息管理提供了添加、修改和删除部门的功能。如果用户试图删除有员工的部门,系统会在前端再次提示用户是否确定删除这个部门。

员工信息管理为用户提供了按照员工工号、员工姓名、性别、部门、生日、备注、状态和薪资数据搜索员工的功能。其中,部门和状态数据按照数据库标准设计模式以数值而不是名称记录在数据库中,并以下拉框的形式在前端供用户选择,以便后期修改。由于薪资和生日很难精确选择,系统为这两项属性提供以区间为条件查找的功能。

用户可以添加和删除一名员工的信息,也可以修改员工的一项或多项信息。系统允许用户为每名员工上传一张照片。

用户完成添加、修改、删除或查询后,系统通过HTTP协议向后端对应REST接口发起请求。添加员工时,系统会自动按照现有的工号最大值来生成一个新的工号,以保证格式相同且不重复。添加和修改员工时,系统都会判定输入数据是否合法。例如:薪资必须是数值类型数据,而不是字符串;姓名、性别数据不能为空值。

当查询的结果超过前端指定的每页条数(默认为10条)时,系统会通过后台实现对数据的自动分页,在SQL语句中添加limit关键字以查找对应页码的信息记录。

系统通过Hibernate将请求转化为对应的SQL语句完成对数据库的操作,使得开发过程不需要直接调用MySQL的jar包中的函数操作数据库,方便快捷,易于管理。

软件质量要求

功能测试

本章节聚焦于对系统的测试工作。在编码的过程中或者编码完成后,通常需要对系统进行测试,以验证预期的功能是否正确实现。本次测试采用黑盒测试的方法进行。测试分为验证功能是否实现和性能是否满足条件两个部分。

测试的目的在于查找到隐藏在系统中的潜在问题,原则上是找出越多的问题,说明测试得越成功。因此,想要尽量减少代码返工的问题,最好在写完代码后进行单元测试,提前把能解决的问题先解决好。这样不仅可以减少测试工作量,也可以避免系统集成后问题定位困难,导致开发成本高的问题。

表6-1 用户登录测试用例

测试需求 输入/动作 输出/响应 登录功能 未被禁用的用户输入正确账号,输入正确密码,点击登录按钮 登录成功 被禁用的用户输入正确账号,输入正确密码,点击登录按钮 登录失败 用户输入错误账号,输入正确密码,点击登录按钮 登录失败 用户输入正确账号,输入错误密码,点击登录按钮 登录失败

表6-2 权限管理测试用例

测试需求 输入/动作 输出/响应 启用和禁用用户 用户已被禁用的时候打开权限管理页面 显示启用按钮 用户未被禁用的时候打开权限管理页面 显示禁用按钮 修改权限 打开权限修改界面 在已授权的模块和功能处打勾,未授权的模块和功能不打勾 选择要修改权限并提交 刷新界面,完成修改

表6-3 用户登录测试用例

测试需求 输入/动作 输出/响应 查询功能 输入或选择属性进行查询 输出查询结果 生日选择区间不对 查询失败 输入的月薪不是数字 查询失败

系统运行性能

在软件质量保证与测试中,性能测试通常通过一些软件(如集成开发环境或操作系统自带的性能监测可视化工具)检查或模拟一个软件正常运行时或发生异常的情况下,软件在操作系统中体现的各项性能上的数据指标。性能测试的结果通常是软件占用的内存、CPU百分比、网络上传或下载占用的带宽等等。软件开发过后进行专业的性能测试,可以帮助开发者更好地了解软件运行的表现,避免交付后可能出现的崩溃等问题,防止返工以增加开发时间和经济上的成本。

Google Chrome浏览器的开发者工具为开发者提供了测试网页性能的工具,可以看到网页在运行时对硬件和网速等关键指标的占用情况。

总结与展望

1. 总结

本文以基于SSH框架的服务器系统和基于Chrome浏览器的网页作为研究对象,通过对当前OA办公领域所体现的突出问题进行了分析,并完成了SSH框架服务器以及前端网页设计、编码实现和测试。本项目通过HTTP协议与后台服务器通讯,进行数据和照片相关信息的收发。

2. 展望

基于SSH框架的办公OA系统涉及H5和Java开发的多方面理论、技巧和技术。本系统还有很多没有涉及到的问题需要解决,需要在实际应用中不断发现、查找,获得经验的积累和完善。

系统没有对员工权限管理和增删改查以外的功能进行实现。由于程序的可扩展性较好,今后可以以较方便的手段扩充该系统的功能。

随着计算机开发环境和编程语言的版本迭代,诞生了不少更新更快捷的开发框架,如Spring MVC、Spring Boot等,今后也可以使用其他框架进行编程尝试,为今后工作和科研活动做好基础。

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: