基于Struts架构的办公自动化系统毕业论文.doc_第1页
基于Struts架构的办公自动化系统毕业论文.doc_第2页
基于Struts架构的办公自动化系统毕业论文.doc_第3页
基于Struts架构的办公自动化系统毕业论文.doc_第4页
基于Struts架构的办公自动化系统毕业论文.doc_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于基于 StrutsStruts 架构的架构的 OAOA 系统系统 的研究与开发的研究与开发 2011 年年 11 月月 基于 Struts 架构的 OA 系统毕业论文 II 摘 要 随着社会经济的发展 计算机 网络技术的应用已经渗透到企业的日常工作中 传统的办公室管理方式已经不能满足企业对信息的快速传递与处理的需求 而网络办 公自动化的应用解决了这一问题 完善企业内部的管理模式 提高了企业内部的管理 水平 进而全面得提升了企业在市场竞争中的综合竞争力 办公自动化系统基于网络 提高了企业内部的信息化水平 本文描述了一个办公自动化系统的开发过程 依据面向对象设计的开发思想 利 用 MVC 设计模式 选用浏览器 服务器 B S 模式搭建 使用 Hibernate 技术操作数 据库 并用 Struts 完成了系统的最终实现 根据办公自动化的特点 可将系统分为日 常管理 考勤管理 计划指定 审核管理 员工管理 通讯管理 6 个部分 关键词 办公自动化 面向对象 MVC Struts Hibernate B S 2012 届苏州经贸职业技术学院毕业论文 III 目 录 第 1 章 引言 1 1 办公自动化软件开发的现状 当今社会是一个信息飞速发展的社会 因此 针对各行业来说 计算机的应用实 为重要 求质量 求速度 尽可能的脱离手工操作 是现代人追求的目标 分析人士 指出 在一个企业的运作过程中 交流成本成为了总成本的一个重大构成部分 因此 如何实现快速 有效的交流以降低交流成本成为每个企业所关心的问题 在现代社会中 任何一个行业 任何一个企业 高效准确的办公都是至关重要的 快捷的信息交流 畅通的公文传递 迅速的文档查询 自动的工作流转等等都能提高 一个企业的办公效率 进而提高其市场竞争力 图 1 1 传统办公模式 传统的办公模式主要以纸介质为主 在信息革命的浪潮中 显然已经远远不能满 足高效率 快节奏的现代工作和生活的需要 Internet Intranet 的迅猛发展 为信息的交 流和共享 团队的协同运作提供了技术的保证 同时也预示着网络化办公时代来临 图 1 2 网络化办公模式 现有办公自动化系统中 企业文件流转功能都是核心功能 可以认为 企业办公 主 基于 Struts 架构的 OA 系统毕业论文 2 要是一个文件流转的过程 所有的办公事务都可以抽象成一个数据库表单 传统办公 自动化系统和大型 MIS 系统在处理企业管理流程中大多采用企业业务流程重组 BKR 其核心思想就是要先优化企业业务管理流程 再根据优化后的流程建设企业 信息统 这样不仅在系统建设中工作量巨大 同时面临来自企业内部重重的阻碍 要想实现办公自动化 就需要实施计算机管理 所以 开发了这个办公自动化系 统 此系统是基于网络的 部署方便 易于维护 1 2 本文要做的工作 本文的最终目标是要描述建立一个办公自动化系统的过程 系统选用 Struts 框架 以 MVC 设计模式作为软件工程方法 并用 JAVA 语言实现 本文主要做的工作是描 述了此办公自动化系统从分析 设计 到实现的主要工作流程 并在最后阐述系统的 使用方法 本系统实现的主要功能模块有 公共模块设计 登录模块设计 主界面设计 日 常管理模块 考勤管理模块 计划指定模块 审核管理模块 员工管理模块 通讯管 理模块 第 2 章 运用技术及开发工具介绍 该办公自动化系统是在 MyEclipse 9 0 的环境下开发的 以 MS SQL Server2005 作 为后台数据库 Hibernate 作为系统的业务逻辑层 JSP 页面作为系统的表现层 通过 使用 Struts 实现的 MVC 机制 来控制整个办公自动化的业务数据流程 本系统是基于 WEB 的 所以 Internet 必须成为浏览器和服务器之间的通信媒介 UML 架构模型如图 2 1 所示 2012 届苏州经贸职业技术学院毕业论文 3 图 2 1 架构设计图 本系统的具体架构是 MVC 模式 并用 Hibernate 对 JDBC 进行简单封装 具体的 物理架构如图 2 2 所示 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 架构的 OA 系统毕业论文 4 Struts 跟 Tomcat Turbine 等诸多 Apache 项目一样 是开源软件 这是它的一大 优点 使开发者能更深入的了解其内部实现机制 除此之外 Struts 的优点主要集中体现在两个方面 Taglib 和页面导航 Taglib 是 Struts 的标记库 灵活动用 能大大提高开发效率 另外 就目前国内的 JSP 开发者而 言 除了使用 JSP 自带的常用标记外 很少开发自己的标记 或许 Struts 是一个很好 的起点 2 2 Hibernate 技术的应用 Hibernate 是 Java 应用和关系数据库之间的桥梁 通过对 JDBC 的简单封装 使 Java 程序员可以使用面向对象的思想操作数据表 不用再考虑数据访问细节 可以专 注于业务逻辑的开发 它对软件分层做了进一步细化 使数据的持久化与业务逻辑和 数据库分开 便于软件的后期维护 在 Java 应用中使用 Hibernate 包含以下步骤 1 创建创建 Hibernate 的配置文件 的配置文件 Hibernate 配置文件主要用于配置数据库连接和 Hibernate 运行时所需要的各种 属性 这个配置文件应该位于应用程序或 Web 程序的类文件夹 classes 中 Hibernate 能够访问多种关系数据库 如 MySql Oracle Sybase 等 2 创建持久化类创建持久化类 持久化类符合 Java Bean 的一般规范 可以作为数据实体的对象化表现形式 通常都是数据表所对应的域模型中的实体域类 在编写持久化类时 主要遵循以 下原则 a 为持久化字段声明访问器和是否可变的标志 持久化类的属性一般都与数据库中相对应表字段一一对应 并包括与之对应 的 getXXX setXXX isXXX 方法 如果持久化类的属性为 boolean 类 型 那么可以使用 get 或 is 作为 get 方法的前缀 b 实现一个默认的 即无参数的 构造方法 所有的持久化类都必须有一个默认的构造方法 可以不是 public 的 这样 Hibernate 就可以使用 java lang reflect Constructor newInstance 来实例持久化类 3 创建对象创建对象 关系映射文件 关系映射文件 Hibernate 采用 XML 格式的文件来指定对象和关系数据之间的映射 在运行时 Hibernate 将根据这个映射文件来生成各种 SQL 语句 在 Hibernate 中 映射文件通 常用 hbm xml 作为后缀名 该文件与持久化类存放在同一目录下 在 User hbm xml 文件的开头声明了 DTD Document Type Definition 它对 XML 文 件的语法和格式做了定义 Hibernate 的 XML 解析器将根据 DTD 来核对 XML 文 件的语法 4 构建构建 SessionFactory Hibernate 的 SessionFactory 接口提供 Session 类的实例 Session 类用于完成对 数据库的操作 由于 SessionFactory 实例是线程安全的 而 Session 实例不是线程 安全的 所以每个操作都可以共用同一个 SessionFactory 来获取 Session Hibernate 配置文件分为两种格式 一种是 XML 格式 一种是 Java 属性文件格 2012 届苏州经贸职业技术学院毕业论文 5 式的配置文件 因此构建 SessionFactory 的也有两种方法 例程 01 是在配置文件 为 Hibernate properties 的情况下构建 SessionFactory 的 如果 Hibernate 的配置文件 为 XML 格式 只需在配置文件中声明映射文件 在程序中不必调用 Configuration 类的 addClass 方法来加载映射文件 代码如下 SessionFactory sf new Configuration configure buildSessionFactory 5 Session 的创建与关闭 的创建与关闭 Session 是一个轻量型对象 通常将每个 Session 实例和一个数据库事务绑定 也就是每执行一个数据库事务 都应该先创建一个新的 Session 实例 2 3 B S 模式介绍及应用 2 3 1 什么是 B S 模式 浏览器 服务器 B S 模式又称 B S 结构 它是一种以 Web 技术为基础的新型的 MIS 系统平台模式 把传统 C S 模式中的服务器部分分解为一个数据服务器与一个或 多个应用服务器 Web 服务器 从而构成一个三层结构的客户服务器体系 2 第一层客户机是用户与整个系统的接口 客户的应用程序精简到一个通用的浏览 器软件 如 Netscape Navigator 微软公司的 IE 等 浏览器将 HTML 代码转化成图文 并茂的网页 网页还具备一定的交互功能 允许用户在网页提供的申请表上输入信息 提交给后台 并提出处理请求 这个后台就是第二层的 Web 服务器 第二层 Web 服务器将启动相应的进程来响应这一请求 并动态生成一串 HTML 代 码 其中嵌入处理的结果 返回给客户机的浏览器 如果客户机提交的请求包括数据 的存取 Web 服务器还需与数据库服务器协同完成这一处理工作 第三层数据库服务器的任务类似于 C S 模式 负责协调不同的 Web 服务器发出的 SQL 请求 管理数据库 2 3 2 B S 模式的优缺点 B S 模式简化了客户端 它无需象 C S 模式那样在不同的客户机上安装不同的客户 应用程序 而只需安装通用的浏览器软件 3 这样不但可以节省客户机的硬盘空间与内 存 而且使安装过程更加简便 网络结构更加灵活 假设一个企业的决策层要开一个 讨论库存问题的会议 他们只需从会议室的计算机上直接通过浏览器查询数据 然后 显示给大家看就可以了 甚至与会者还可以把笔记本电脑联上会议室的网络插口 自 己来查询相关的数据 其次 它简化了系统的开发和维护 系统的开发者无须再为不 基于 Struts 架构的 OA 系统毕业论文 6 同级别的用户设计开发不同的客户应用程序了 只需把所有的功能都实现在 Web 服务 器上 并就不同的功能为各个组别的用户设置权限就可以了 各个用户通过 HTTP 请 求在权限范围内调用 Web 服务器上不同处理程序 从而完成对数据的查询或修改 现 代企业面临着日新月异的竞争环境 对企业内部运作机制的更新与调整也变得逐渐频 繁 相对于 C S B S 的维护具有更大的灵活性 当形势变化时 它无须再为每一个现 有的客户应用程序升级 而只需对 Web 服务器上的服务处理程序进行修订 这样不但 可以提高公司的运作效率 还省去了维护时协调工作的不少麻烦 如果一个公司有上 千台客户机 并且分布在不同的地点 那么便于维护将会显得更加重要 再次 它使用户的操作变得更简单 对于 C S 模式 客户应用程序有自己特定的 规格 使用者需要接受专门培训 而采用 B S 模式时 客户端只是一个简单易用的浏 览器软件 无论是决策层还是操作层的人员都无需培训 就可以直接使用 B S 模式的 这种特性 还使 MIS 系统维护的限制因素更少 最后 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 42 4 开发工具的选择开发工具的选择 2 4 1 MyEclipse 介绍与应用 MyEclipse 企业级工作平台 MyEclipse Enterprise Workbench 简称 MyEclipse 是对 EclipseIDE 的扩展 利用它我们可以在数据库和 JavaEE 的开发 发 2012 届苏州经贸职业技术学院毕业论文 7 布以及应用程序服务器的整合方面极大的提高工作效率 它是功能丰富的 JavaEE 集成 开发环境 包括了完备的编码 调试 测试和发布功能 完整支持 HTML Struts JSP CSS Javascript SQL Hibernate 在结构上 MyEclipse 的特征可以被分为 7 类 1 JavaEE 模型 2 WEB 开发工具 3 EJB 开发工具 4 应用程序服务器的连接器 5 JavaEE 项目部署服务 6 数据库服务 7 MyEclipse 整合帮助 对于以上每一种功能上的类别 在 Eclipse 中都有相应的功能部件 并通过一系列 的插件来实现它们 MyEclipse 结构上的这种模块化 可以让我们在不影响其他模块的 情况下 对任一模块进行单独的扩展和升级 简单而言 MyEclipse 是 Eclipse 的插件 也是一款功能强大的 JavaEE 集成开发环境 支持代码编写 配置 测试以及除错 2 4 2 Tomcat 介绍 Jakarta Tomcat 服务器是一种 Servlet JSP 容器 Servlet 是一种运行在支持 Java 语 言的服务器上的组件 6 当客户请求访问某个 Servlet 时 Servlet 容器将创建一个 ServletRequrst 对象和 ServletResponse 对象 在 ServletRequest 对象中封装了客户请求信息 然后 Servlet 容 器把 ServletRequest 对象和 ServletResponse 对象传给客户所请求的 Servlet Servlet 把 响应结果写到 ServletResponse 中 然后由 Servlet 容器把响应结果传给客户 Servlet 容 器响应客户请求过程如图 2 3 所示 图 2 3 Servlet 容器响应客户请求过程图 基于 Struts 架构的 OA 系统毕业论文 8 第 3 章 需求分析与系统设计 本章描述了此办公自动化系统的需求分析和系统设计 主要对待开发软件进行一 般描述和对该软件各功能模块需求进行分析和设计 3 1 问题域的一般描述 系统将用户分为 2 个权限级别 系统管理员 可对系统中的所有功能进行操作 普通用户 可对系统中的部分功能进行操作 3 2 待开发软件的功能模块需求 3 2 1 系统模块功能图 开发本软件的目的是为公司办公室提供一个方便快捷的办公平台 经调查分析 本系统应具备的功能模块有 用户登录 会议管理 公告管理 外出登记 请假登记 上下班登记 企业计划指定 部门计划指定 个人计划 发布申请 审核批示 员工 添加 员工维护 显示通讯组 增加通讯详细信息 因此 本软件的各个功能划分如 图 3 1 所示 办公自动化管理系统 日常管理考勤管理计划指定员工管理审核管理通讯管理 会 议 管 理 公 告 管 理 外 出 登 记 请 假 登 记 上 下 班 登 记 企 业 计 划 部 门 计 划 个 人 计 划 发 布 申 请 审 核 批 示 员 工 添 加 员 工 维 护 显 示 通 讯 组 增 加 通 讯 详 细 信 息 图 3 1 系统功能模块图 2012 届苏州经贸职业技术学院毕业论文 9 3 2 2 系统模块功能描述 1 日常管理 日常管理模块包括公告管理 会议管理 a 普通用户可以查看公告和会议记录 b 系统用户可以对会议 公告进行添加 修改 删除等操作 2 考勤管理 考勤管理模块包括外出登记 请假登记 出差登记 上下班登记 a 用户可以进行上下班登记 b 用户可以进行外出登记 销假操作 c 用户可以进行请假登记 销假操作 d 用户可以进行出差登记 销假操作 e 系统用户可以查看所有登记信息 3 计划指定 计划指定模块包括企业计划 部门计划和个人计划的指定 a 企业高管可以进行企业计划的新增 删除 修改操作 b 部门管理人员可以进行部门计划的新增 删除 修改操作 c 每个用户可以进行个人计划的新增 删除 修改操作 d 每个用户都可以查看企业计划 部门计划和个人计划 4 审核管理 审核管理包括发布申请和审核批示 a 用户可以发布 修改 删除申请信息 b 系统用户可以对申请信息审核批示 5 员工管理 员工管理模块可以进行员工的添加和维护 6 通讯管理 通讯管理模块主要负责存储员工的通讯信息 a 员工的通讯信息可以按通讯组分别进行存储 b 系统用户可对通讯信息进行新增 修改和删除操作 基于 Struts 架构的 OA 系统毕业论文 10 3 2 3 系统其他需求 1 错误处理 系统要有一定的容错能力 出现错误及时提醒 2 安全 任何对系统的使用都必须先登录 用户登录时 使用附加码 避免恶意的网络攻 击 登录 30 分钟无任何操作会自动退出 以防被不法分子盗用 3 性能需求 系统对于用户做出的任何请求都要在 10 秒之内做出响应 做到尽快响应 4 适用性 用 Struts 作为框架 用 JAVA 语言实现 服务器可以允许于不同的操作系统之上 5 可靠性 系统要能够持续工作比较长的时间 而且不发生严重错误 6 接口需求 硬件接口 键盘 鼠标 显示器 软件接口 基于网络的办公平台 7 扩展需求 将来要把公司的子公司联入系统 可以实现异地办公 3 3 系统数据库设计 3 3 1 数据表概要说明 开发系统之前首先要设计数据库 系统数据库的名称为 db work 共 14 张表 系 统所需数据库表如图 3 1 所示 表表 3 13 1 数据库表的设计数据库表的设计 db work tb User用户信息表 tb Meeting会议记录表 tb Placard公告信息表 2012 届苏州经贸职业技术学院毕业论文 11 tb Waichu外出登记信息表 tb Qingjia请假登记信息表 tb Chuchai出差登记信息表 tb Onduty上下班登记信息表 tb Qiye企业计划信息表 tb Bm部门计划信息表 tb Person个人计划信息表 tb Shenhe审核信息表 tb Tongxun通讯组表 tb Tongxunadd通讯信息详细表 tb Menu菜单表 3 3 2 数据表的结构 1 tb User 表用于保存用户注册的相关数据信息 结构如表 3 2 所示 表表 3 2用户信息表用户信息表 tb User 字段描述类型 idID 主键 自动编号 int userName用户名varchar pwd密码varchar purview用户权限varchar branch用户所在部门varchar job用户工作varchar sex用户性别varchar email用户电子邮件varchar tel用户电话varchar address用户地址varchar bestMan优秀员工int 2 tb Meeting 表用于存储会议信息 结构如表 3 3 所示 表表 3 3 会议记录表 会议记录表 tb Meeting 字段描述类型 id主键 自动编号 int Mtime会议时间varchar ZPerson主持人varchar CPerson出席人varchar subject会议主题varchar address会议地点varchar content会议内容varchar 3 tb Placard 表用于存公告信息 结构如表 3 4 所示 表表 3 4公告记录表 公告记录表 tb Placard 基于 Struts 架构的 OA 系统毕业论文 12 字段描述类型 id主键 自动编号 int person公告人varchar subject公告主题varchar DDate公告时间dateTime content公告内容varchar 4 tb Waichu 表用于存储员工的外出信息 结构如表 3 5 所示 表表 3 5外出记录表 外出记录表 tb Waichu 字段描述类型 id主键 自动编号 int name1外出人varchar department外出人所在部门varchar content外出原因varchar time1外出时间dateTime time2预计回归时间dateTime date是否回归varchar 5 tb Qingjia 表用于存储请假登记的信息 结构如表 3 6 所示 表表 3 6 请假登记信息表 请假登记信息表 tb Qingjia 字段描述类型 id主键 自动编号 int name1请假人varchar department请假人所在部门varchar content 请假原因varchar time1请假时间datetime time2预计回归时间datetime state是否回归int 6 tb Chuchai 表用于存储出差登记的信息 结构如表 3 7 所示 表表 3 7 出差登记信息表 出差登记信息表 tb Chuchai 字段描述类型 id主键 自动编号 int chuarea出差地点varchar time1出差时间datetime time2预计回归时间datetime name1出差人varchar department出差人所在部门varchar state是否回归int 2012 届苏州经贸职业技术学院毕业论文 13 7 tb Onduty 表用于存储上下班的登记信息 结构如表 3 8 所示 表表 3 8上下班记录表 上下班记录表 tb Onduty 字段描述类型 id主键 自动编号 int name1登记人varchar department登记人所在部门varchar enroltype登记类型varchar tdefintime规定时间varchar enrolremark登记备注varchar state登记总结varchar 8 tb Qiye 表用于存储企业计划的信息 结构如表 3 9 所示 表表 3 9 企业计划信息表 企业计划信息表 tb Qiye 字段描述类型 id主键 自动编号 int riqi企业计划时间datetime title企业计划题目varchar content 企业计划内容varchar name1企业计划人varchar 9 tb Bm 表用于存储部门计划的信息 结构如表 3 10 所示 表表 3 10 部门计划信息表 部门计划信息表 tb Bm 字段描述类型 id主键 自动编号 int name1部门计划人varchar title部门计划题目varchar content部门计划内容varchar time1部门计划时间dateTime 10 tb Person 表用于存储个人计划的信息 结构如表 3 11 所示 表表 3 11 个人计划信息表 个人计划信息表 tb Person 字段描述类型 id主键 自动编号 int name1计划人varchar titlet个人计划题目varchar content 个人计划内容varchar time1个人计划时间datetime 基于 Struts 架构的 OA 系统毕业论文 14 11 tb Shenhe 表用于存储申请审核的信息 结构如表 3 12 所示 表表 3 12 审核信息表 审核信息表 tb Shenhe 字段描述类型 id主键 自动编号 int title审核主题varchar content 审核内容varchar time1审核时间datetime shen审核是否成功int 12 tb Tongxun 表用于存储通讯组的信息 结构如表 3 13 所示 表表 3 13 通讯组表 通讯组表 tb Tongxun 字段描述类型 id主键 自动编号 int name1员工姓名varchar 13 tb Tongxunadd 表用于存储员工的通讯信息 结构如表 3 14 所示 表表 3 14 通讯详细信息表 通讯详细信息表 tb Tongxunadd 字段描述类型 id主键 自动编号 int name11员工姓名varchar birthday员工生日dateTime sex员工性别varchar hy婚否varchar dw所属单位varchar department所属部门varchar zw职务varchar sf省份varchar cs城市varchar phone办公电话varchar phone1移动电话varchar emial电子邮箱varchar postcode邮政编码varchar QQQQ 号码varchar family家庭电话varchar address家庭住址varchar remark备注varchar name1通讯组int 14 tb Menu 表用于主页面显示的主菜单和子菜单 结构如表 3 15 所示 2012 届苏州经贸职业技术学院毕业论文 15 表表 3 15 菜单表 菜单表 tb Menu 字段描述类型 id主键 自动编号 int modeId按主菜单分类int menuName子菜单项varchar linkUrl超链接地址varchar 第 4 章 系统详细设计 本章将对系统进行详细设计 重点介绍各功能模块的设计过程 4 14 1 公共类的编写公共类的编写 在开发过程中 常会用到一些公共类 如 Hibernate 配置文件 Struts 配置文件 Session 的管理类等 编写公用类的好处是 可以是程序的代码更加工整 增强代码的 重用性 还有利于程序的维护 下面逐一介绍各个公共类 4 1 1 HibernateHibernate 配置文件的编写配置文件的编写 Hibernate 从其配置文件中读取和数据库连接有关的信息 Hibernate 的配置文件 有两种形式 一种是 XML 格式的配置文件 另一种是办公自动化管理系统采用的 Hibernate 默认的 Java 属性文件格式 配置文件名称为 Hibernate properties 其基本格 式如下 hibernate dialect org hibernate dialect SQLServerDialect hibernate connection driver class com microsoft sqlserver jdbc SQLServerDriver hibernate connection url jdbc sqlserver localhost 1433 databaseName db work hibernate connection username sa hibernate connection password 123 hibernate show sql true hibernate hbm2ddl auto none 基于 Struts 架构的 OA 系统毕业论文 16 4 1 2 SessionSession 管理类的编写管理类的编写 1 定义 GetHibernate 类 将其保存在 com hiernate util 包中 并编写获得 SessionFactory 的代码 同时导入所需要的类包 代码如下 package com hiernate util 将类建在 com hibernate util 包下 import org hibernate Session 导入 org hibernate Session 类 import org hibernate SessionFactory 导入 org hibernate SessionFactory 类 import org hibernate cfg Configuration 导入 org hibernate cfg Configuration 类 import com hiernate persistence Bm 导入 com hiernate persistence Bm 类 public class GetHibernate private static SessionFactory sf null 创建 SessionFactory 实例 static try Configuration conf new Configuration addClass User class addClass Menu class addClass Meeting class addClass Placard class addClass Waichu class addClass Qingjia class addClass Chuchai class addClass Onduty class addClass Qiye class addClass Bm class addClass Person class addClass Shenhe class addClass TongXunAdd class addClass Tongxun class sf conf buildSessionFactory catch Exception e e printStackTrace 2 编写打开 Session 的方法 openSession 代码如下 public Session openSession 以 Session 为返回值创建打开 Session 方法 Session session sf openSession SessionFactory 的 openSession 方法获得 Session 实 例 return session 3 编写关闭 Session 的方法 closeSession 代码如下 public void closeSession Session session 创建关闭 Session 方法 参数为 Session 实 例 if session null close 方法关闭 session session close 2012 届苏州经贸职业技术学院毕业论文 17 4 1 3 获得日期和时间类的编写获得日期和时间类的编写 获得日期和时间类主要包括获得系统日期 获得系统日期和时间 该类的关键代 码如下 package com hiernate util 将该类保存在 com hibernate util 包下 import java text DateFormat 导入 java text DateFormat 类 import java text ParseException 导入 java text ParseException 类 import java text SimpleDateFormat 导入 java text SimpleDateFormat 类 import java util Calendar 导入 java util Calendar 类 import java util Date 导入 java util Date 类 public class GetTime 判断 date1 是否在 date2 之前 public static boolean isDateBefore String date1 String date boolean b true 根据该方法的返回值设置变量 DateFormat df DateFormat getDateTimeInstance 获得时间格式 为系统默 认的格式 try b df parse date1 before df parse date 判断 date1 是否在 date2 之前 catch ParseException e e printStackTrace return b 编写获得系统日期的方法 public static Date getDate 以 Date 对象为返回值创建 getDate 方法 Date dateU new Date 创建 Date 类对象 java sql Date date new java sql Date dateU getTime getTime 方法可得到 当前系统的日期 return date 编写获得日期和时间的方法 public static String getDateTime 该方法返回值为 String 类型 SimpleDateForma format simpleDateFormat 类使得可以选择任何用户定义的日期 时间格式的模式 Date date null Calendar myDate Calendar getInstance Calendar 的方法 getInstance 以获得此类型的一个通用的对象 myDate setTime new java util Date 使用给定的 Date 设置此 Calendar 的时 间 基于 Struts 架构的 OA 系统毕业论文 18 date myDate getTime 返回一个表示此 Calendar 时间值 从历元至现 在的毫秒偏移量 的 Date 对象 format new SimpleDateFormat yyyy MM dd HH mm ss 设置时间格式为 年 月 日 时 分 秒 String strRtn format format date 将给定的 Date 格式化为日期 时间字符 串 并将结果赋值给 给定的 String return strRtn 4 1 4 字符串处理过滤器字符串处理过滤器 本系统中字符处理类为 MyFilter 该类实现了 Filter 接口 Filter 接口中有 init destory doFilter 3 个方法 init 方法只在此过滤器第一次初始化时执行 对于简单 的过滤器此方法可以为空 destory 方法在利用一个给定的过滤器对象持久地终止服务 器时调用 一般情况下此方法体为空 doFilter 方法为大多数过滤器的关键部分 该 方法包括 ServerRequest ServletResponse FilterChain 3 个参数 在调用 FilterChain 的 doFilter 方法时 激活一个相关的过滤器 如果没有另一个过滤器与 Servlet 或 JSP 页面关联 则 Servlet 或 JSP 页面被激活 代码如下 package com struts filter 将过滤器保存在 com struts filter 包下 import java io IOException 导入 java io IOException 类 import javax servlet Filter 导入 javax servlet Filter 类 import javax servlet FilterChain 导入 javax servlet FilterChain 类 import javax servlet FilterConfig 导入 avax servlet FilterConfig 类 import javax servlet ServletException 导入 avax servlet ServletException 类 import javax servlet ServletRequest 导入 javax servlet ServletRequest 类 import javax servlet ServletResponse 导入 javax servlet ServletResponse 类 public class MyFilter implements Filter public void doFilter ServletRequest request ServletResponse response FilterChain chain throws IOException ServletException 2012 届苏州经贸职业技术学院毕业论文 19 request setCharacterEncoding gb2312 设置 request 的编码格式 response setCharacterEncoding gb2312 设置 response 的编码格式 chain doFilter request response 调用 FilterChain 对象的 doFilter 方法 public void init FilterConfig arg0 throws ServletException 该方法体为空 public void destroy destroy 此方法体为空 4 1 5 配置配置 Struts Struts 框架需要通过一个专门的配置文件来控制 它就是 struts config xml 当然也 可以取其他名字 那么网站是怎么找到这个 Struts 的配置文件的呢 只要在 web xml 里面配置即可 具体代码如下 myfilter com struts filter MyFilter myfilter action org apache struts action ActionServlet config 基于 Struts 架构的 OA 系统毕业论文 20 WEB INF struts config xml debug 3 detail 3 0 action do WEB INF struts html tld WEB INF struts html tld WEB INF struts bean tld WEB INF struts bean tld WEB INF struts logic tld WEB INF struts logic tld 2012 届苏州经贸职业技术学院毕业论文 21 WEB INF struts tiles tld WEB INF struts tiles tld 在 web xml 中配置 Struts 的配置文件 实际就是一个 Servlet 的配置 在配置 Servlet 的 config 参数中定义 Struts 的配置 wenjian 包括相对路径 及在 Servlet 的 URL 访问里使用的后缀名 本系统中使用 do 作为后缀名 接下来的工作就是如何配置 struts config xml 文件 本系统中的 struts config xml 文 件的关键代码如下 基于 Struts 架构的 OA 系统毕业论文 22 4 2 登录模块的设计登录模块的设计 4 2 1 登录模块概述登录模块概述 系统登录模块是用户进入系统的窗口 用户要进入系统必须输入正确的用户名 密码 验证码 否则会进入登录失败页面 登录模块的框架图如图4 2所示 用户 登录 进入登录 页面 登录失败页 面 进入主界 面 是否通 过验证 验证 N Y 图4 2 登录模块框架图 4 2 2 登录模块技术分析登录模块技术分析 登录模块用于验证用户登录身份 登录模块功能的实现应用里 MVC 设计模式 利 用 Hibernate 完成对数据库的增加 修改 删除及查询功能 Action 类控制转发路径 JSP 页面负责显示 这样给以后系统的维护带来了方便 在本模块中通过对用户名和密码的参数绑定来验证用户的合法性 本模块及系统 的其他模块都采用 HQL 检索方式 与 SQL 语法有些相似 但是 HQL 是面向对象的 2012 届苏州经贸职业技术学院毕业论文 23 操作的持久化类的类明和类的属性 而 SQL 操作的是表名和字段名 Query 接口封装 了 HQL 查询语句 在使用 HQL 检索方式检索数据之前 HQL 检索数据的执行步骤如 下 1 通过 Session 类的 createQuery 方法创建一个 Query 对象 createQuery 方法 的入口参数为 String 型的 HQL 语句 在 HQL 语句中可以包含命名参数 例如 strUserName 为参数名称 Query query session createQuery from User as u where u userName strUserName 2 为命名参数赋值 关键代码如下 query setString strUserName strUserName 3 通过调用 Query 类的 list 方法执行数据检索 其返回值为 List 型的结果集 关键代码如下 public static List findUser String strUserName String strPwd Transaction tx null List list null try session hib openSession 调用公共类的开启 session 方 法 tx Transaction session beginTransaction 开启事物 Query query session createQuery from User as u where u userName strUserName and u pwd strPwd 应用 HQL 检索查找满足条件的集合 query setString strUserName strUserName 动态绑定参数 query setString strPwd strPwd list query list list 方法用来执行 HQL 语句 mit 事务的提交 hib closeSession session 关闭 session catch Exception e e printStackTrace 输出异常信息 tx rollback 事务的回滚 基于 Struts 架构的 OA 系统毕业论文 24 return list 此外用户登录系统还需输入正确的验证码 来提高系统的安全性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论