




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 基于基于 StrutsStruts 架构的办公自动化系统的架构的办公自动化系统的 研究与开发毕业论文研究与开发毕业论文 目目 录录 1 绪论 1 1 1 办公自动化软件开发的现状 1 1 2 本文要做的工作 2 2 运用技术及开发工具介绍 3 2 1 STRUTS技术简介 4 2 2 B S 模式介绍及应用 4 2 2 1 什么是 B S 模式 4 2 2 2 B S 模式的优缺点 5 2 3 开发工具的选择 6 2 3 1 Eclipse 介绍与应用 6 2 3 2 Tomcat 介绍 6 3 需求分析与系统设计 7 3 1 问题域的一般描述 7 3 2 待开发软件的功能模块需求 7 3 2 1 系统模块功能图 7 3 2 2 系统模块功能描述 8 3 2 3 系统其他需求 9 3 3 系统用例模型 10 3 3 1 系统边界 10 3 3 2 主要参与者及其目标 10 II 3 3 3 用例图 11 3 3 4 系统主要类图 12 3 4 系统数据库设计 18 3 4 1 数据表概要说明 18 3 4 2 数据表的结构 18 4 系统详细设计 23 4 1 前期准备 23 4 1 1 配置应用 Struts 结构文件及数据库连接文件 23 4 1 2类的分布架构设计 23 4 2 公共类的编写 24 4 2 1 数据库的连接及操作方法类 DB 25 4 2 2 数据表信息类 Content 26 4 2 3 分页类 Page 27 4 2 4 检查用户权限类 CheckUserAble 29 4 2 5 检查用户是否在线类 CheckUser 类 30 4 3 登录模块的设计 31 4 3 1 表现层设计 31 4 3 2 业务控制层设计 31 4 4 文件共享模块的设计 34 4 4 1 文件上传子模块表现层设计 34 4 4 2 业务控制层设计 35 4 5 其他模块的设计 37 5 系统测试 38 5 1 系统测试 38 5 1 1 系统运行概貌 38 5 1 2 收发文管理模块测试 40 5 1 3 会议管理模块测试 42 5 1 4 公告管理模块测试 43 III 5 1 5 日程管理模块测试 45 5 1 6 新闻管理模块测试 45 5 1 7 人力资源管理模块测试 46 5 1 8 资产管理模块测试 48 5 1 9 文档管理模块测试 50 5 1 10 意见箱模块测试 50 5 2 测试分析 52 结论 53 参考文献 54 致谢 55 附录 A 办公自动化 OFFICE 部署手册 56 1 1 绪论绪论 1 1 办公自动化软件开发的现状办公自动化软件开发的现状 当今社会是一个信息飞速发展的社会 因此 针对各行业来说 计算机的应用实 为重要 求质量 求速度 尽可能的脱离手工操作 是现代人追求的目标 分析人士 指出 在一个企业的运作过程中 交流成本成为了总成本的一个重大构成部分 因此 如何实现快速 有效的交流以降低交流成本成为每个企业所关心的问题 在现代社会中 任何一个行业 任何一个企业 高效准确的办公都是至关重要的 快捷的信息交流 畅通的公文传递 迅速的文档查询 自动的工作流转等等都能提高 一个企业的办公效率 进而提高其市场竞争力 图 1 1 传统办公模式 传统的办公模式主要以纸介质为主 在信息革命的浪潮中 显然已经远远不能满 足高效率 快节奏的现代工作和生活的需要 Internet Intranet 的迅猛发展 为信息的交 流和共享 团队的协同运作提供了技术的保证 同时也预示着网络化办公时代来临 图 1 2 网络化办公模式 现有办公自动化系统中 企业文件流转功能都是核心功能 可以认为 企业办公 主 2 要是一个文件流转的过程 所有的办公事务都可以抽象成一个数据库表单 传统办公 自动化系统和大型 MIS 系统在处理企业管理流程中大多采用企业业务流程重组 BKR 其核心思想就是要先优化企业业务管理流程 再根据优化后的流程建设企业 信息统 这样不仅在系统建设中工作量巨大 同时面临来自企业内部重重的阻碍 要想实现办公自动化 就需要实施计算机管理 所以 开发了这个办公自动化系 统 OFFICE 此系统是基于网络的 部署方便 易于维护 1 2 本文要做的工作本文要做的工作 本文的最终目标是要描述建立一个办公自动化系统的过程 本文重点描述了个人 办公 企业信息管理模块 系统选用 Struts 框架 以 MVC 设计模式作为软件工程方法 并用 JAVA 语言实现 本文主要做的工作是描述了此办公自动化系统从分析 设计 到实现的主要工作流程 并在最后阐述系统的使用方法 本系统实现的主要功能模块有 1 个人办公模块包括收发文管理 会议管理 邮件管理 日程管理 意见箱等五 个子模块 提供公文流传 会议记录 邮件收发 日程安排 提出意见建议等功能 给企业员工在日常办公的过程中提供了方便 2 企业信息管理模块包括公告管理 新闻管理 人力资源管理 资产管理 资料 共享等五个子模块 提供公告 新闻信息的发布 员工信息的管理 记录企业资产状 态 企业内部电子资料的共享等功能 3 2 运用技术及开发工具介绍运用技术及开发工具介绍 该办公自动化系统是在 Eclipse 3 2 的环境下开发的 以 MS SQL Server2000 作为 后台数据库 Action 作为系统的业务逻辑层 JSP 页面作为系统的表现层 通过使用 Struts 实现的 MVC 机制 来控制整个办公自动化的业务数据流程 本系统是基于 WEB 的 所以 Internet 必须成为浏览器和服务器之间的通信媒介 UML 架构模型如图 2 1 所示 图 2 1 架构设计图 本系统的具体架构是 MVC 模式 并用 DAO 封装所有的数据库访问 具体的物理 架构如图 2 2 所示 4 Browser Client Action Jsp Action Jsp Business Object Data Access Object Database HTTP JDBC 图 2 2 物理架构图 2 1 Struts 技术简介技术简介 Struts 最早是作为 Apache Jakarta 项目的组成部分问世运作 项目的创立者希望通 过对该项目的研究 改进和提高 Java Server Pages Servlet 标签库以及面向对象的技 术水准 Struts 这个名字来源于在建筑和旧式飞机中使用的支持金属架 1 它的目的是为了 减少在运用 MVC 设计模型来开发 Web 应用的时间 虽然仍然需要学习和应用该架构 但它将可以完成其中一些繁重的工作 Struts 跟 Tomcat Turbine 等诸多 Apache 项目一样 是开源软件 这是它的一大 优点 使开发者能更深入的了解其内部实现机制 除此之外 Struts 的优点主要集中体现在两个方面 Taglib 和页面导航 Taglib 是 Struts 的标记库 灵活动用 能大大提高开发效率 另外 就目前国内的 JSP 开发者而 言 除了使用 JSP 自带的常用标记外 很少开发自己的标记 或许 Struts 是一个很好 的起点 2 2 B S 模式介绍及应用模式介绍及应用 2 2 1 什么是 B S 模式 浏览器 服务器 B S 模式又称 B S 结构 它是一种以 Web 技术为基础的新型的 MIS 系统平台模式 把传统 C S 模式中的服务器部分分解为一个数据服务器与一个或 多个应用服务器 Web 服务器 从而构成一个三层结构的客户服务器体系 2 5 第一层客户机是用户与整个系统的接口 客户的应用程序精简到一个通用的浏览 器软件 如 Netscape Navigator 微软公司的 IE 等 浏览器将 HTML 代码转化成图文 并茂的网页 网页还具备一定的交互功能 允许用户在网页提供的申请表上输入信息 提交给后台 并提出处理请求 这个后台就是第二层的 Web 服务器 第二层 Web 服务器将启动相应的进程来响应这一请求 并动态生成一串 HTML 代 码 其中嵌入处理的结果 返回给客户机的浏览器 如果客户机提交的请求包括数据 的存取 Web 服务器还需与数据库服务器协同完成这一处理工作 第三层数据库服务器的任务类似于 C S 模式 负责协调不同的 Web 服务器发出的 SQ 请求 管理数据库 2 2 2 B S 模式的优缺点 B S 模式简化了客户端 它无需象 C S 模式那样在不同的客户机上安装不同的客户 应用程序 而只需安装通用的浏览器软件 3 这样不但可以节省客户机的硬盘空间与内 存 而且使安装过程更加简便 网络结构更加灵活 假设一个企业的决策层要开一个 讨论库存问题的会议 他们只需从会议室的计算机上直接通过浏览器查询数据 然后 显示给大家看就可以了 甚至与会者还可以把笔记本电脑联上会议室的网络插口 自 己来查询相关的数据 其次 它简化了系统的开发和维护 系统的开发者无须再为不 同级别的用户设计开发不同的客户应用程序了 只需把所有的功能都实现在 Web 服务 器上 并就不同的功能为各个组别的用户设置权限就可以了 各个用户通过 HTTP 请 求在权限范围内调用 Web 服务器上不同处理程序 从而完成对数据的查询或修改 现 代企业面临着日新月异的竞争环境 对企业内部运作机制的更新与调整也变得逐渐频 繁 相对于 C S B S 的维护具有更大的灵活性 当形势变化时 它无须再为每一个现 有的客户应用程序升级 而只需对 Web 服务器上的服务处理程序进行修订 这样不但 可以提高公司的运作效率 还省去了维护时协调工作的不少麻烦 如果一个公司有上 千台客户机 并且分布在不同的地点 那么便于维护将会显得更加重要 再次 它使用户的操作变得更简单 对于 C S 模式 客户应用程序有自己特定的 规格 使用者需要接受专门培训 而采用 B S 模式时 客户端只是一个简单易用的浏 览器软件 无论是决策层还是操作层的人员都无需培训 就可以直接使用 B S 模式的 这种特性 还使 MIS 系统维护的限制因素更少 6 最后 B S 特别适用于网上信息发布 使得传统的 MIS 的功能有所扩展 这是 C S 所无法实现的 而这种新增的网上信息发布功能恰是现代企业所需的 这使得企业的 大部分书面文件可以被电子文件取代 从而提高了企业的工作效率 使企业行政手续 简化 节省人力物力 鉴于 B S 相对于 C S 的先进性 B S 逐渐成为一种流行的 MIS 系统平台 各软件 公司纷纷推出自己的 Internet 方案 基于 Web 的财务系统 基于 Web 的 ERP 一些企 业已经领先一步开始使用它 并且收到了一定的成效 B S 模式的新颖与流行 和在某些方面相对于 C S 的巨大改进 使 B S 成了 MIS 系统平台的首选 但是它也有不成熟的一面 目前基于 B S 模式的应用软件也很缺乏 其最大的缺点是对企业外网环境依赖性太强 由于各种原因引起企业外网中断都会造 成系统瘫痪 2 3 开发工具的选择开发工具的选择 2 3 1 Eclipse 介绍与应用 Eclipse 是一个非常优秀的集成开发环境 IDE Eclipse 是一个用于构建集成 Web 和应用程序开发工具的平台 4 根据需求在 Eclipse 插入各种功能插件 能使 Eclipse 拥 有不同的功能 Eclipse 的核心是动态发现插件的体系结构 平台负责处理基本环境的后台工作 并提供标准的用户导航模型 于是每个插件可以专注于执行少量的任务 Eclipse 的出 现 不仅为 Java 开发者提供了免费使用强大的 Java IDE 的机会 而且也为 C 的开发 者提供了 CDT C 语言开发工具 5 本系统的开发过程中使用了 MyEclipse 插件 该插件主要用于开发 java 程序 集 成了大量的实用类库 2 3 2 Tomcat 介绍 Jakarta Tomcat 服务器是一种 Servlet JSP 容器 Servlet 是一种运行在支持 Java 语 言的服务器上的组件 6 当客户请求访问某个 Servlet 时 Servlet 容器将创建一个 ServletRequrst 对象和 7 ServletResponse 对象 在 ServletRequest 对象中封装了客户请求信息 然后 Servlet 容 器把 ServletRequest 对象和 ServletResponse 对象传给客户所请求的 Servlet Servlet 把 响应结果写到 ServletResponse 中 然后由 Servlet 容器把响应结果传给客户 Servlet 容 器响应客户请求过程如图 2 3 所示 图 2 3 Servlet 容器响应客户请求过程图 3 需求分析与系统设计需求分析与系统设计 本章描述了此办公自动化系统的需求分析和系统设计 主要对待开发软件进行一 般描述和对该软件各功能模块需求进行分析和设计 3 1 问题域的一般描述问题域的一般描述 系统将用户分为 3 个权限级别 系统管理员 可对系统中的所有功能进行操作 普通管理员 可对系统中的部分功能进行操作 游客 在本系统中只能进行收发 邮件和浏览信息的操作 3 2 待开发软件的功能模块需求待开发软件的功能模块需求 3 2 1 系统模块功能图 开发本软件的目的是为公司办公室提供一个方便快捷的办公平台 经调查分析 本系统应具备的功能模块有 用户登录 收发文管理 会议管理 公告管理 新闻管 理 人力资源管理 资产管理 日程管理 资料共享 内部邮件管理 和意见箱等模 块 因此 本软件的各个功能划分如图 3 1 所示 8 图 3 1 系统功能模块图 3 2 2 系统模块功能描述 1 收发文管理 提供公文服务 如员工请假 领导审批等需要公文传递的都可以通过收发文管理 模块实现 9 2 会议管理 记录企业开会的会议记录 全体员工可以查看会议记录 3 公告管理 拥有管理员权限的人员可以添加新公告 删除旧公告等 全体员工可以查看公告 4 新闻管理 拥有管理员权限的人员可以添加新闻 删除新闻等 全体员工可以查看新闻 5 邮件管理 在部门之间 各部门不同员工之间可以用邮件方式进行及时通信 收发邮件 管 理邮件等 6 人力资源管理 供全体员工查看个人信息 修改个人信息等 管理员可以浏览全体员工信息 按 条件模糊查询员工 创建员工 修改员工信息 评定优秀员工等 实现整个公司人力 资源的管理 7 资产管理 对公司固定资产和耗材进行管理 主要包括车辆管理和办公用品管理两类 方便 员工掌握公司各种资产的情况 8 资料共享 提供上传资料和下载资料的功能 给员工提供了共享资料的平台 只有拥有管理 员权限的人员才可以对文件进行删除操作 9 日程管理 由管理员 领导 安排部门的日程安排 给出一个工作任务的截至日期 其他员 工每天注意查看日程 务必按时完成任务 10 意见箱 一个公司员工提出意见的平台 员工有什么意见或者建议均可以在此处提出 管 理员权限的人员可以查看意见箱 以做出及时反应 3 2 3 系统其他需求 1 错误处理 10 系统要有一定的容错能力 出现错误及时提醒 2 安全 任何对系统的使用都必须先登录 而且要防止绕过登录 登录 30 分钟无任何操作 会自动退出 以防被不法分子盗用 3 性能需求 系统对于用户做出的任何请求都要在 10 秒之内做出响应 做到尽快响应 4 适用性 用 Struts 作为框架 用 JAVA 语言实现 服务器可以允许于不同的操作系统之上 5 可靠性 系统要能够持续工作比较长的时间 而且不发生严重错误 6 接口需求 硬件接口 键盘 鼠标 显示器 软件接口 基于网络的办公平台 7 扩展需求 将来要把公司的子公司联入系统 可以实现异地办公 3 3 系统用例模型系统用例模型 3 3 1 系统边界 此办公自动化系统 Office 数据库服务器和有关操作的人员都在系统边界之内 3 3 2 主要参与者及其目标 参与者是通过使用系统提供的服务来实现自己目的的人或者系统 表表 3 13 1 参与者目标参与者目标 参与者使用目标 游客查看公司公告 新闻 查看 修改个人信息 查看日程 收发邮件 等 普通管理员 除拥有游客的所有权限外 还具有添加 删除公司公告 新闻 日 11 程 收发邮件 管理资产 收发公文 提出建议等的权限 系统管理员 除拥有普通管理员的权限外还具有添加员工 修改员工信息 查看 意见箱的权限 3 3 3 用例图 用例图是 UML 中的一种对用例建模的图 用于简要描述系统功能 7 1 系统管理员身份的的用例图 如图 3 2 所示为本系统系统管理员身份的用例图 图 3 2 系统管理员用例图 2 普通员工的用例图 如图 3 3 所示为普通员工身份的用例图 12 图 3 3 普通员工用例图 3 3 4 系统主要类图 1 后台数据库操作类 DB 系统将用于数据库连接 操作的类封装成一个类 DB 类图如图 3 4 所示 图 3 4 后台数据库操作类 DB 13 其中 getCon 方法用于连接数据库 getStm 用于保存需要执行的 Sql 语句 getRs sql String 用于保存执行 sql 语句后的结果 2 分页类 page 由于在系统中浏览信息的页面都需要分页功能 系统将分页功能独立封装成分页 类 page page 的类图如图 3 5 所示 图 3 5 分页类 page 3 树形菜单类 OfficeMenu 系统采用了树形菜单 树形菜单功能用类 OfficeMenu 封装 OfficeMenu 类图如图 3 6 所示 图 3 6 树形菜单类 OfficeMenu 其中 LoadMenu LoadMenu2 LoadMenu3 分别用于列出一级 二级和三级菜 单 而在每一级菜单中使用类 MenuSigle 来打开具体菜单 类 MenuSigle 的类图如图 3 7 所示 14 图 3 7 查看单个菜单的类 MenuSigle 4 登录动作类 LogonAction 类图如图 3 8 所示 图 3 8 登录动作类 LogonAction 其中 executeLogonNo 用于在登录失败的时候产生的动作 在登录成功以后用 Loadmenu 方法导出相应菜单 5 用户类 UserAction 此类主要用于人力资源管理模块 类图如图 3 9 所示 图 3 9 用户类 UserAction 15 其中 executePersonLook 用于查看员工信息 executePersonGood 用于查看优秀员 工信息 executePersonSigleLook 用于查看员工的详细信息 executePersonMyselfLook 用 于查看个人信息 executePersonAdd 用于添加员工 executePersonUpdate 用于更新员 工信息 executeMyUpdate 用于修改个人信息 executePersonDel 用于删除员工信息 6 发文动作类 TextAction 此类主要用于收发文管理模块 类图如图 3 10 所示 图 3 10 发文动作类 TextAction 其中 executeTextLookGet 用于查看收文信息 executeTextLookSend 查看发文件箱 executeTextSigleLook 用于查看发文内容 executeTextDel 用于删除收 发文 executeTextAdd 用于添加收 发文 7 公告动作类 PcardAction 此类主要用于公告管理模块 类图如图 3 11 所示 图 3 12 公告动作类 PcardAction 其中 executePcardLook 用于浏览公告信息 executePcardSigleLook 用于查看选 定公告具体信息 executePcardDel 用于删除公告 executePcardAdd 用于发布新公告 executePcardUpdate 用于更新公告 8 文档动作类 FileAction 此类主要用于文档管理模块 类图如图 3 12 所示 16 图 3 12 文档动作类 FileAction 其中 executeFileLook 用于浏览文件信息 executeFileDownLoad 用于从系统下载 文件 executeFileUp 实现上传文件到系统的功能 executeFileDel 实现删除文件的功 能 9 资产管理类 MoneyAction 此类主要用于资产管理模块 类图如图 3 13 所示 图 3 13 资产管理类 MoneyAction 10 邮件管理类 MailAction 此类主要用于邮件管理模块 类图如图 3 14 所示 图 3 14 邮件管理类 MailAction 其中方法 executeMailAdd 用于发送邮件 executeMailLookGet 用于浏览收件箱 executeMailLookSend 用于浏览发件箱 executeMailLookSigle 用于查看邮件内容 executeMailDel 用于删除邮件 17 11 意见箱管理类 AdviceAction 此类主要用于意见箱管理模块 类图如图 3 15 所示 图 3 15 意见箱管理类 AdviceAction 其中方法 executeAdviceLook 用于浏览意见箱 executeAdviceAdd 用于发表意见 12 新闻管理类 NewsAction 此类主要用于新闻管理模块 类图如图 3 16 所示 图 3 16 新闻管理类 NewsAction 其中方法 executeNewsLook 用于浏览新闻信息 executeNewsSigleLook 查看新闻 详细内容 executeNewsAdd 用于添加新闻 executeNewsDel 用于删除新闻 13 会议管理类 MeetAction 此类主要用于会议管理模块 类图如图 3 17 所示 图 3 17 会议管理类 MeetAction 其中方法 executeMeetLook 用于浏览会议记录 executeMeetSigleLook 用于查看 18 具体会议记录 executeMeetAdd 用于添加新的会议记录 executeMeetDel 用于删除会 议记录 3 4 系统数据库设计系统数据库设计 3 4 1 数据表概要说明 开发系统之前首先要设计数据库 系统数据库的名称为 db office 共 13 张表 系 统所需数据库表如图 3 2 所示 表表 3 23 2 数据库表的设计数据库表的设计 db office tb advice建议表 tb calendar日程安排表 tb car资产管理车辆表 tb file文件表 tb label下拉列表信息表 tb mail内部邮件表 tb meet会议表 tb menu功能菜单表 tb news新闻表 tb pcard公告表 tb text收 发文表 tb thing资产管理办公用品表 tb user用户表 3 4 2 数据表的结构 1 tb advice 意见表 意见表主要用于保存意见信息 记录意见的主题 内容 发送时间等意见的具体 信息 表 tb advice 的结构如表 3 3 所示 表表 3 33 3 意见表意见表 tb advice 字段名称数据类型字段大小说明 advice idint4自动编号 advice subjectvarchar50意见主题 advice sendervarchar50意见发送者 advice contentvarchar50意见内容 advice sendtimevarchar50意见发送时间 advice sendbranchvarchar50意见发送者所在部门 19 2 tb calendar 日程安排表 tb calendar 表主要用于保存日程信息 记录日程的截止时间 内容 安排者等日 程的详细信息 表 tb calendar 的结构如表 3 4 所示 表表 3 43 4 日程安排表日程安排表 tb calendar 字段名称数据类型字段大小说明 calendar idint4自动编号 calendar deadlinevarchar50日程截止时间 calendar originvarchar50日程安排者 calendar timevarchar50日程安排时间 calendar contentvarchar200日程内容 3 tb car 资产管理车辆表 tb car 表主要用于资产管理中的车辆信息 表 tb car 的结构如表 3 5 所示 表表 3 53 5 资产管理车辆表资产管理车辆表 tb car 字段名称数据类型字段大小说明 car idint4自动编号 car numvarchar50车牌号码 car modelvarchar50车辆型号 car fdjvarchar50发动机型号 car drivervarchar50司机姓名 car makervarchar50制造厂家名称 car buytimevarchar50购买时间 car statusvarchar2车辆状态 car njvarchar50年检信息 car infovarchar500车辆描述 4 tb file 文件表 tb file 表主要用于保存文件信息 记录文件名称 大小 上传时间等具体信息 表 tb file 的结构如表 3 6 所示 表表 3 63 6 文件表文件表 tb file 字段名称数据类型字段大小说明 file idint4自动编号 file namevarchar50文件名 file upervarchar50上传者姓名 file sizevarchar50文件大小 file uptimevarchar50文件上传时间 file infovarchar50文件描述 20 5 tb label 下拉列表信息表 tb label 表中存储了本系统中所有下拉菜单标签的信息 表 tb label 的结构如表 3 7 所示 表表 3 73 7 下拉列表信息表下拉列表信息表 tb label 字段名称数据类型字段大小说明 label idint4自动标号 label namevarchar50显示给用户的下拉 列表项的名称 label valuevarchar50在程序中使用的下 拉列表项的值 label typevarchar50下拉列表的类型 label ordersmallint2下拉列表项的排序 6 tb mail 邮件表 tb mail 表主要用于保存邮件信息 记录邮件主题 接受者 内容等详细信息 表 tb mail 的结构如表 3 8 所示 表表 3 83 8 邮件表邮件表 tb mail 字段名称数据类型字段大小说明 mail idint4自动编号 mail subjectvarchar50邮件主题 mail getervarchar50邮件接受者 mail sendervarchar50邮件发送者 mail contentvarchar50邮件内容 mail sendtimevarchar50邮件发送时间 mail markvarchar2邮件标记 7 tb meet 会议表 会议表主要用于保存会议记录信息 记录会议主题 主持人 时间 地点等具体 内容 表 tb meet 的结构如表 3 9 所示 表表 3 93 9 会议表会议表 tb meet 字段名称数据类型字段大小说明 meet idint4会议编号 meet subjectvarchar50会议主题 meet speakervarchar50会议主持人 meet listenervarchar50会议出席人 meet timevarchar50会议时间 meet addressvarchar50会议地点 21 meet contenttext16会议内容 8 tb menu 功能菜单表 功能菜单表主要用于保存功能菜单的信息 记录功能菜单的菜单级别 菜单名称 所需权限等详细信息 表 tb menu 的结构如表 3 10 所示 表表 3 103 10 功能菜单表功能菜单表 tb menu 字段名称数据类型字段大小说明 menu idvarchar50程序中使用的菜单名称 menu namevarchar50显示给用户的菜单名称 menu parentidvarchar50父菜单的 menu id menu actionvarchar50菜单触发操作的请求链接 menu jibievarchar2菜单级别 menu orderint4菜单在页面 user ableint4菜单权限 9 tb news 新闻表 tb news 表主要用于保存新闻信息 记录新闻标题 时间 内容等详细信息 表 tb news 的结构如表 3 11 所示 表表 3 113 11 新闻表新闻表 tb news 字段名称数据类型字段大小说明 news idint4自动编号 news subjectvarchar50新闻标题 news originvarchar50新闻发布者 news timevarchar50发布时间 news contentvarchar200新闻内容 10 tb pcard 公告表 tb pcard 表主要用于保存公告信息 记录公告主题 发布者 内容等 表 tb pcard 的结构如表 3 12 所示 表表 3 123 12 公告表公告表 tb pcard 字段名称数据类型字段大小说明 pcard idint4公告标号 pcard subjectvarchar50公告主题 pcard authorvarchar50公告作者 pcard timevarchar50公告发布时间 pcard contentvarchar1000公告内容 11 tb text 收发文表 22 tb text 表主要用于保存收发文信息 记录公文的主题 发送者 接收者 内容等 详细内容 表 tb text 的结构如表 3 13 所示 表表 3 133 13 收发文表收发文表 tb text 字段名称数据类型字段大小说明 Text idint4自动编号 Text subjectvarchar50发文主题 Text sendervarchar50发文的发送者 Text getervarchar50发文的接收者 Text markvarchar2发文标记 Text contenttext16发文内容 Text sendtimevarchar50发文发送时间 12 tb thing 资产管理办公用品表 tb thing 表主要用于保存资产管理中的办公用品信息 表 tb thing 的结构如表 3 14 所示 表表 3 143 14 资产管理办公用品表资产管理办公用品表 tb thing 字段名称数据类型字段大小说明 thing idint4办公用品 id thing typevarchar50办公用品类别 thing modelvarchar50办公用品品牌 thing numbervarchar10办公用品数量 thing costvarchar20办公用品金额 thing buytimevarchar50办公用品购买时间 thing buybranchvarchar50办公用品购买部门 13 tb user 用户表 tb user 表主要用于保存用户信息 表 tb user 的结构如表 3 15 所示 表表 3 153 15 用户表用户表 tb user 字段名称数据类型字段大小说明 user idint4自动编号 user namevarchar20用户名 user passwordvarchar10用户密码 true namevarchar50用户真实姓名 user ableint4用户权限 user goodvarchar2是否为优秀员工 user branchvarchar50所在部门 user telvarchar15电话号码 user addressvarchar100住址 23 user accessTimesint4访问时间 user foundTimevarchar50用户创建时间 user newmailcountint4用户所有新邮件数 4 系统详细设计系统详细设计 本章将对系统进行详细设计 重点介绍各功能模块的设计过程 4 1 前期准备前期准备 4 1 1 配置应用配置应用 Struts 结构文件及数据库连接文件结构文件及数据库连接文件 系统运行必须有一些类库的支持 因此 首先要将如图 4 1 所示的 jar 文件拷贝到 应用程序下的 office WebRoot WEB INF lib 文件夹下 图 4 1 必要类库 jtds 0 8 1 jar 是系统连接数据库用到的 jar 文件 使用该文件创建数据库连接时加 载驱动程序的语句如下 8 Class forName net sourceforge jtds jdbc Driver 获取连接的语句如下 DriverManager getConnection jdbc jtds sqlserver localhost 1433 db office sa 其中 db office 为数据库名称 sa 为登陆用户 密码为空 24 4 1 2类的分布架构设计类的分布架构设计 开发的前期要首先设计好系统类的架构 基于 Struts 架构的程序将业务逻辑层与 表现层分开 整个系统类的分布架构如图 4 2 所示 所有 action 类用于业务逻辑 所有 actionform 类用于系统的表现层 此外系统还需要 dao 类 用于连接和操作数据库 图 4 2 类的架构设计图 25 4 2 公共类的编写公共类的编写 在开发过程中 常会用到一些公共类 如类型转换类 获取数据库连接的类等 编写公用类的好处是 不仅提高了代码的重用率 还有利于程序的维护 下面逐一介 绍各个公共类 4 2 1 数据库的连接及操作方法类 数据库的连接及操作方法类 DB 系统对数据库的操作封装到 DB 类中 DB 类的关键代码如下 package com office dao import java sql Connection import com office actionform AdviceForm import com office actionform CalendarForm public class DB private ResultSet rs private Statement stm private Connection con private String url Content URL private String classname Content CLASSNAME private int num per 0 每页显示的记录数 private int num rs 0 总记录数 private int num currentpage 1 当前页数 private int num pages 1 总页数 通过沟造函数加载数据库驱动 public DB try Class forName classname catch ClassNotFoundException e e printStackTrace public Connection getCon 创建数据库连接 26 try con DriverManager getConnection url sa catch Exception e e printStackTrace System err return con public Statement getStm 获取一个 Statement 对象 stm con createStatement ResultSet TYPE SCROLL INSENSITIVE ResultSet CONC UR READ ONLY catch Exception e e printStackTrace System err return stm public ResultSet getRs String sql 执行 SELECT 查询语句获得一个结果集 System out println sql if sql null sql try stm getStmed 调用 getStmed 方法后就可以获得可滚动的结果集 rs stm executeQuery sql catch SQLException e e printStackTrace return rs public int update String sql 对数据库进行更新操作 System out println sql int num 0 if sql null sql try stm getStmed num stm executeUpdate sql catch SQLException e e printStackTrace num 0 return num 4 2 2 数据表信息类 数据表信息类 Content Content 类主要为数据库表设计的 关键代码如下 27 package com office dao public class Content public static final int MAXLENGTH 3 1024 1024 限制上传文件大小 public static final int NUM PER 8 每页显示记录数 public static final String CLASSNAME net sourceforge jtds jdbc Driver 数据库驱动程序 public static final String URL jdbc jtds sqlserver localhost 1433 db office 数据库的 URL 地址 public static final String CLASSNAME1 sun jdbc odbc JdbcOdbcDriver public static final String URL1 jdbc odbc db office public static final String TB USER tb user 数据表名称 public static final String TB MENU tb menu public static final String USERID user id 数据表字段名称 public static final String USERNAME user name 在此类中将所有的属性都声明为最终静态变量 方便在程序中直接通过类名引用 并且其值不能被修改 此类的好处是在进行程序的输入时减少错误 4 2 3 分页类 分页类 Page 由于系统通常都拥有大量信息显示给用户 所以需要分页显示功能 分页显示功 能能够使用户方便的浏览信息 并且会提高用户的访问速度 本系统通过设置一个 Page 类来实现分页显示的功能 Page 的关键代码如下 package com office dao import java sql ResultSet import com office dao Content public class Page private ResultSet rs null private int num rs 0 总记录数 private int num per Content NUM PER 每页显示的记录数 28 private int num pages 0 总页数 private int current page 1 当前页数 public Page ResultSet rs int current page this rs rs setNumrs rs 设置总记录数 System out println Page 总记录数 getNumrs setNumPages 设置总页数 System out println Page 总页数 getNumPages setCurrentPage current page 设置当前页数 System out println Page 当前页数 getCurrentPage public void setCurrentPage int current page 设置当前页数的方法 if current pagegetNumPages current page getNumPages 如当前页数大于总页数 就将总页数的数值赋给当前页数 this current page current page public int getCurrentPage 获得当前页数的方法 return this current page public void setNumPages 设置总页数的方法 this num pages num rs num per 0 num rs num per num rs num per 1 public int getNumPages 获得总页数的方法 return this num pages public void setNumrs ResultSet rs 设置总记录数的方法 try rs last 将记录指针移动到结果集的末尾 this num rs rs getRow 获得最后记录的行数 即总页数 catch Exception e e printStackTrace public int getNumrs 获得总记录数 29 return this num rs public ResultSet getRs 获得第 n 页的记录指针 int rspos this current page 1 this num per 1 try this rs absolute rspos this rs previous catch Exception e e printStackTrace return this rs public int getNumper 获得每页显示的记录数 return this num per 4 2 4 检查用户权限类 检查用户权限类 CheckUserAble 设置该类的作用是为了防止用户通过在浏览器地址栏中输入地址对非授权的功能 进行非法操作 该类的关键代码如下 package com office tools import com office actionform LogonForm public class CheckUserAble private static boolean allow false public static boolean check LogonForm logonuser 检查身份为 游客 的用户 若是则返回的 boolean 型的值为 False 否则为 Ture int able logonuser getUserable if able 0 allow true else allow false return allow public static boolean check1 LogonForm logonuser 检查身份为 普通管理员 的用户 若是则返回的 boolean
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年计算机四级高分题库及答案详解【必刷】
- 家族规划考试题及答案
- 2025年肿瘤科肿瘤护理与化疗常见问题模拟考试卷答案及解析
- 2025年执业药师之《西药学专业一》预测试题附参考答案详解【典型题】
- 2025年质量员考试黑钻押题含答案详解(基础题)
- 2025年西安中远水工程质量检测有限公司招聘(6人)笔试参考题库附带答案详解
- 2025年甘肃省临夏市中考数学题库检测试题打印及答案详解【历年真题】
- 大学生创新实践制度
- 垂直大模型项目管理操作方案
- 传感器网络中的能耗优化与数据传输安全机制设计仿真测试卷
- 临床试验监查员工作总结
- 《目录学概论》课件
- 《保密意识培训》课件
- 2025年“物业管理及公共服务”等知识考试题库附完整答案【历年真题】
- 新时代大学生劳动教育 课件 第1章 劳动和劳动形态
- 生鲜店加盟合同模板
- 电影刮痧课件教学课件
- 游戏厅转让合同范本样本
- DB34∕T 4253-2022 公路水运工程质量监督规程
- 人教版数学四年级上册第二单元习题
- 预包装食品标签审核表
评论
0/150
提交评论