实训报告撰写模板_第1页
实训报告撰写模板_第2页
实训报告撰写模板_第3页
实训报告撰写模板_第4页
实训报告撰写模板_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

实训报告撰写模板实训报告撰写模板 天津渤海职业技术学院实训报告xx届信息工程系软件技术专业122班 设计 论文 题目利用页面对数据的增删改查学生姓名刘辰鑫设计 地点信息中心指导教师张溪竹职称讲师辅导教师张溪竹职称讲师xx 年6月5日摘要在当今网络时代 无论是因特网 Inter 内联网 外联网都离不开Web技术的应用 随着网络技术尤其是Web应用技术的发展 企业级应用对系统各方面 的性能要求越来越高 特别是速度 安全 可靠性以及分布式应用 等方面 在一定程度上决定着系统能否成功 在这些要求的共同作用下 SUN的Java EE Java平台企业版 规范利用Java编程语言和企业API的强大功能 包括EJB技术 提供了一种业界领先的Web编程技术平台 JAVA EEWEB编程技术已成为计算机领域中最重要的的技术之一 它是软件 学科中一个不可或缺的分支 是计算机专业和信息管理专业一门专 业基础课 越来越多的人都开始学习JAVA EEWEB编程技术 关键字Java Java EE WEB编程技术目录 一 绪论 一 研究意义1 开发效率对于传统的ASP和PHP等脚点技 术 将整个站点的业务逻辑和表现逻辑都混杂在ASP或PHP页面里 从而导致页面的可读性相当差 可维护性非常低 即使需要简单改变页面的按钮 也不得不打开页面文件 冒着破坏 系统的风险 但采用严格分层J2EE架构 则可完全避免这个问题 对表现层的修改即使发生错误 也绝对不会将错误扩展到业务逻辑 层 更不会影响持久层 因此 采用J2EE分层架构 即使前期的开发效率稍微低一点 但也 是值得的 2 需求的变更当遇到软件开发到一定程度时 由于客户对软件需求 发生了变化 使得软件的实现不得不随之改变 当软件实现需要改变时 是否可以尽可能多地保留软件的部分 尽 可能少地改变软件的实现 从而满足客户需求的变更 答案是 采用优秀的解耦架构 这种架构就是J2EE的分层架构 在优秀的分层架构里 控制层依赖 于业务逻辑层 但绝不与任何具体的业务逻辑组件耦合 只与接口 耦合 同样 业务逻辑层依赖于DAO层 也不会与任何具体的DAO组 件耦合 而是面向接口编程 采用这种方式的软件实现 即使软件的部分发生改变 其他部分也 尽可能不要改变 3 技术的更新 系统重构软件行业的技术更新很快 虽然软件行业 的发展不快 但小范围的技术更新特别快 一旦由于客观环境的变化 不得不更换技术时 通常选择优秀的架 构来保证系统的改变最小采用Hibernate作为持久层技术的最大的好 处在于可以完全以面向对象的方式进行系统分析 系统设计 DAO模式需要为每个DAO组件编写DAO接口 同时至少提供一个实现类 根据不同需要 可能有多个实现类 用Spring容器代替DAO工厂通常情况下 引入接口就不可避免需要引 入工厂来负责DAO组件的生成 Spring实现了两种基本模式单态模式和工厂模式 而使用Spring可以完全避免使用工厂模式 因为Spring就是个功能 非常强大的工厂 因此 完全可以让Spring充当DAO工厂 由Spring充当DAO工厂时 无须程序员自己实现工厂模式 只需要将 DAO组件配置在Spring容器中 由ApplicationContext负责管理DAO 组件的创建即可 借助于Spring提供的依赖注入 其他组件甚至不用访问工厂 一样 可以直接使用DAO实例 二 研究现状整体而言 Java EE平台正处在一个十字路口 现如今 整个Java SE Java EE Java ME平台已经开源了 这在Java发展史上是前所未有的 与此同时 许多开源实体已经参与到许多重要的Java EE技术规范的制定工作中 比如EJB3 0的推出 Java EE5平台的发布 这些讯息也告诉我们 整个Java EE平台已经非常成熟 急需找到新的突破口 新的机遇 并进一步 去推动自身的发展 无论是Java EE规范的制订者 Java EE容器厂商 还是Java EE工具提供者 和基于Java EE开发的ISV 开源社区已经在它们身上扮演着非常重要 关键的角 色 可以看出 开源已经成为了Java EE的主基调 这是一种全新的协作 互动模式 从开源谈起开源不仅仅是一个形式 其蕴涵的内容非常丰富 对于ISV而言 这意味着软件的研发模式需要转变了 尽可能采纳成 熟的 主流的开源技术来打造我们的系统 此时 我们不用去关注开源技术的底层实现和维护工作 因为整个 开源社区在积极推动这一重要而基础的工作 来研究一个案例 开源领域的Spring已经成为了构建Java EE应用的事实上标准 它将Java EE领域中不同容器的差异性蕴藏起来 为开发人员暴露了统一的 一致的接口 采纳Spring架构目标应用后 应用的可移植性 便携性 不再是问 题 而且开发者的开发效率和开发体验得到非常大的提升 应用的 质量也能够得到保障 与此同时 Spring还在不断地超越Java EE平台技术本身 难道我们的系统有理由不架构在这类开源技术上 其实 这是一种 精细化分工 ISV们再也不用在这类基础工作上花费太多的时间和精力 而且这类 工作还很难做好 ISV可以将更多的精力放在系统的业务逻辑和功能的实现上 再来研究一个案例 大部分开发者都会采用开源领域的Eclipse WTP IDE来开发目标系 统 其安装方便 可扩展性强 从Eclipse3 2开始 OSGi成为了它的微内核 这是一重要的使能技 术 后续内容会重点讨论到它 Eclipse几乎成为了大部分ISV们首选的IDE BEA Borland Oracle RedHat等公司全面拥抱了这一扩展性强的工具 平台 这不是在向我们暗示些什么吗 因此 我们必须参与到这一 开源社区中 并从其中吸取到丰富的养分 并使得目标系统的研发 速度 质量能够有较大的提升 开源是一种全新的协作模式 而且它也在诠释一种全新的互动模式 比如 一旦用户对某开源技术的某些方面有更好的建议时 整个开 源社区便会快速地响应这一需求 POJO编程模型开发出身的我非常注重目标应用采纳的开发模型 现如今 POJO编程模型是目前的主流开发模型 通俗地说 POJO的含义指 开发人员编写的Java类不会同Java EEAPI耦合在一起 从分层角度划分 应用的架构由展示层 业务层 持久化层构成 如果采纳传统的J2EE技术开发应用 则这类开发模型肯定不是POJO 编程模型 POJO的实质是回归到对象的本质 即OO编程 所幸 开源社区一直在推动Java EE的发展 比如 对于展示层而言 Tapestry一直在倡导POJO编程模型 对于 业务层而言 Spring一直在倡导这一编程模型 对于持久层而言 H ibernate一直也在倡导这一POJO编程模型 本人开发 架构及咨询过的许多大型应用都是基于Tapestry Spring Hibernate组合 当J2EE看到这一开源技术栈所带来的巨大冲击后 简化开发模型和 力推POJO编程模型便成为了Java EE5的主基调 比如 JSF1 2已经成为了Java EE5的标准件 这是类似于Tapestry的技术框架 EJB3 0也将Hibern ate的许多内容进行了 标准化 即JPA1 0 尽管JSF1 2 EJB3 0同Tapestry Hibernate相比还存在许多不足之处 但这在Java EE发展史上已经是非常大的进步了 因为Java EE规范的推出是开源社区与商业实体协作的结果 这说明开发人员 的地位越来越得到重视 可以看出 我们没有理由不在新项目中采纳POJO编程模型 敏捷开发现有的软件市场是很残酷的 这势必要求我们能够控制好 项目的开发风险 无论是开发过程本身 还是交付代码的质量和速度 这些都是项目 要谨慎对待的 大体而言 我们要尽早将开发过程中的各种风险暴露出来 比如 快速实现系统功能 引入持续集成 开发人员必须编写测试 代码 等等 如有可能 功能测试 包括用户接受测试 尽可能采取脚本驱动 因为计算机最擅长做重复性工作 不管如何 项目中的各种基础工作如果能够做到具有 可回归性 则这将为项目的成功奠定非常重要的基础 上述内容都是敏捷开发的重要组成部分 当然 上述内容并不是基于Java EE平台技术的项目才要求的 这些都是与语言无关的敏捷特性 但是 在敏捷开发的可操作性方面 Java EE项目确实具有自身的优势 比如 JUnit和TestNG为测试代码 包括单元 集成及功能测试 的 编写创造了条件 项目持续集成的实施可以依托于持续集成服务器 比如Java版的CruiseControl Selenium RC为自动化功能测试的实施创造了条件 等等 可以看出 现有的Java EE平台技术非常适合于敏捷开发 而敏捷开发也需要敏捷的Java EE技术 另一方面 敏捷开发的粒度也要合理控制好 如果太激进 比如不 重视系统的架构设计 包括业务架构和技术架构 则可能会出现 只见树木 不见森林 的局面 无论如何 我们要重视敏捷开发 发展趋势现有的Java EE技术非常成熟 而且各厂商容器趋于同质化 实际上 Java EE5的主基调 简化开发 也暗示了这一点 可以看出 Java EE5在试图简化开发者视图 客户视图 即让开发者能够更方便 更高效地使用Java EE技术 而不是引入新的 Java EE容器级的功能 很遗憾 Spring2 0 即将推出的新版Acegi Hibernate3 x Tapestry5 0等开源技术 暴露的客户视图已经远远超越了Java EE5 开发者很难再次去钟爱Java EE5了 在J2EE1 3年代 由于开发者没有太多的选择 加上那时候J2EE还是 新生事物 因此开发人员真的是 不得不爱 与此同时 在服务器端 OSGi逐渐受到企业的关注和钟爱 这将是未来若干年中重要的基础架构技术 将OSGi应用到服务器端试想 当我们的Java EE应用上线后 如果需要修改其中的部分内容 则我们通常要重新 发布或重启这一目标应用吧 是的 在大部分情况下确实是如此 尽管一些容器厂商宣称自身的Java EE容器支持Java EE应用的版本化 但这毕竟是特定容器厂商的行为 而且这些专有 特性的使用限制非常多 一直一来 Java平台本身就缺乏这类规范 尽管Servlet规范针对Web应用引入了Servlet类装载模型 但这一粒 度还不够细 比如 如果在同一Web容器内部的不同Web应用中需要使用到不同版 本的同一类 则通过启用Servlet类装载模型能够达到这一目标 但如果同一Web应用内部要同时启用不同版本的同一类 则Servlet 类装载模型是应对不了这一苛刻的需求的 不幸的是 许多企业应用需要针对Web应用的不同部分进行真正的版 本化 模块化 管理 进而矛盾产生了 此时 历史悠久的OSGi便被企业注意到 并试图将它引入到服务器 端 OSGi本身定义了一套非常严格的类装载机制 并真正实现了 针对 接口编程 开发人员手中的Eclipse3 2 便是基于它架构的 从目前来看 OSGi的应用深度和广度非常不错 但是它在Java EE服务器端的应用才刚开始 到目前为止 OSGi的应用还只是局限于桌面应用和嵌入式应用 Spring OSGi项目也正在试图降低采纳OSGi的门槛 并将OSGi引入到企业计 算领域 最终将加快这类系统的交付速度 各Java EE容器厂商已经在最新的产品中积极跟进了OSGi 并将它应用到这 些产品中 可以预见 对于OSGi和企业应用的开发而言 xx年将是重要的一年 我们应该跟进这一重要的基础技术 并试图将它应用到我们的研发 工作中 三 研究目标利用Java EE的三层架构的方式来搭建网站 在页面实现对数据库的增 删 改 二 开发环境介绍 一 Struts简介为了解决这些问题 出现了Str uts框架 它是一个完美的MVC实现 它有一个中央控制类 一个Serv let 针对不同的业务 我们需要一个Action类负责页面跳转和后 台逻辑运算 一个或几个JSP页面负责数据的输入和输出显示 还有 一个Form类负责传递Action和JSP中间的数据 JSP中可以使用Struts框架提供的一组标签 就像使用HTML标签一样 简单 但是可以完成非常复杂的逻辑 从此JSP页面中不需要出现一行包围的Java代码了 可是所有的运算逻辑都放在Struts的Action里将使得Action类复用 度低和逻辑混乱 所以通常人们会把整个Web应用程序分为三层 St ruts负责显示层 它调用业务层完成运算逻辑 业务层再调用持久 层完成数据库的读写 使用JDBC连接来读写数据库 我们最常见的就是打开数据库连接 使用复杂的SQL语句进行读写 关闭连接 获得的数据又需要转换或 封装后往外传 这是一个非常烦琐的过程 Struts2使用了WebWork的设计核心 Struts2中大量使用拦截器来处理用户的请求 从而允许用户的业务 逻辑控制器与Servlet API分离 Struts2框架的大概处理流程如下 1 加载类 FilterDispatcher 2 读取配置 struts配置文件中的Action 3 派发请求 客户端发送请求 4 调用Action FilterDispatcher从struts配置文件中读取与之相 对应的Action 5 启用拦截器 WebWork拦截器链自动对请求应用通用功能 如验 证 6 处理业务 回调Action的execute 方法 7 返回响应 通过execute方法将信息返回到FilterDispatcher 8 查找响应 FilterDispatcher根据配置查找响应的是什么信息如 SUCCESS ERROR 将跳转到哪个jsp页面 9 响应用户 jsp 客户浏览器端显示 10 struts2标签库 相比struts1的标签库 struts2是大大加强了 对数据的操作功能很强大 二 Hibernate介绍Hibernate是一 个开放源代码的对象关系映射框架 它对JDBC进行了非常轻量级的 对象封装 使得Java程序员可以随心所欲的使用对象编程思维来操 纵数据库 Hibernate可以应用在任何使用JDBC的场合 既可以在Java的客户端 程序使用 也可以在Servlet JSP的Web应用中使用 最具革命意义 的是 Hibernate可以在应用EJB的J2EE架构中取代CMP 完成数据持 久化的重任 Hibernate的核心接口一共有6个 分别为 Session SessionFactor y Transaction Query Criteria和Configuration 这6个核心接口在任何开发中都会用到 通过这些接口 不仅可以对持久化对象进行存取 还能够进行事务 控制 Hibernate中提供了两级Cache 第一级别的缓存是Session级别的缓 存 它是属于事务范围的缓存 这一级别的缓存由hibernate管理的 一般情况下无需进行干预 第 二级别的缓存是SessionFactory级别的缓存 它是属于进程范围或 群集范围的缓存 这一级别的缓存可以进行配置和更改 并且可以动态加载和卸载 Hibernate还为查询结果提供了一个查询缓存 它依赖于第二级缓存 三 Spring简介Spring是一个开源框架 它由Rod Johnson创建 它是为了解决企业应用开发的复杂性而创建的 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情 然而 Spring的用途不仅限于服务器端的开发 从简单性 可测试性和松耦合的角度而言 任何Java应用都可以从S pring中受益 Spring的作用就是完全解耦类之间的依赖关系 一个类如果要依赖 什么 那就是一个接口 至于如何实现这个接口 这都不重要了 只要拿到一个实现了这个接口的类 就可以轻松的通过xml配置文件 把实现类注射到调用接口的那个类里 所有类之间的这种依赖关系就完全通过配置文件的方式替代了 所以Spring框架最核心的就是所谓的依赖注射和控制反转 现在的结构是 Struts负责显示层 Hibernate负责持久层 Spring 负责中间的业务层 这个结构是目前国内最流行的Java Web应用程序架构了 另外 由于Spring使用的依赖注射以及AOP 面向方面编程 所以它 的这种内部模式非常优秀 以至于Spring自己也实现了一个使用依 赖注射的MVC框架 叫做Spring MVC 同时为了很好的处理事物 Spring集成了Hibernate 使事物 管理从Hibernate的持久层提升到了业务层 使用更加方便和强大 Spring的一个最大的目的就是使J2EE开发更加容易 同时 Spring之所以与Struts Hibernate等单层框架不同 是因为 Spring致力于提供一个以统一的 高效的方式构造整个应用 并且 可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系 可以说Spring是一个提供了更完善开发环境的一个框架 可以为POJ O Plain OldJava Object 对象提供企业级的服务 三 需求分析 一 可行性分析1 可行性分析 已具备的条件和待 解决的问题 拟采取的研究方法 技术路线 实验方案等 1 已具备的条件资料的查询 计算机硬件的准备 对已有考试管 理管理系统的研究和体会 2 待解决的问题页面的设计实现 数据库的构建 库的连接及各 个表的创建 3 拟采取的研究方法Java EEmysql2 技术可行性该网站使用MyEclipse作为开发平台 该软件 性能完备 且有编码提示 使用方便 Java EE作为编程框架 使用C 语言编写 具有效率高 可重用性强 代 码量少等优点 mysql最为数据库环境 具有强大的存储功能和查询功能 3 经济可行性由于该系统作为实训报告的课题 这一特殊性使得计 算机硬件 系统软件 机房 电源 以及系统开发人员 维护人员 的工资 培训费等费用可以省略 系统的效益可以从经济效益和社会效益两方面来考虑 对于本系统来说 系统开发成功投入使用后 减轻了人员的重复劳 动 提高工作效率 缩短稿件发表周期 可以全方位整合资源 4 运行可行性该系统运行后 用于部管理稿件 管理审稿者 以及 对部各个板块的管理 实现从投稿 审稿 发行等全过程的网络 化 比传统模式更加灵活方便 通过对上述三方面进行可行性分析和研究后 认为该项目的开发是 可行的 二 需求分析为了保证系统能够长期 安全 稳定 可靠 高效 的运行 系统应该满足以下的性能需求1 系统处理的准确性和及时 性系统处理的准确性和及时性是系统的必要性能 在系统设计和开发过程中 要充分考虑系统当前和将来可能承受的 工作量 使系统的处理能力和响应时间能够满足企业对员工信息处 理的需求 2 系统的开放性和系统的可扩充性系统在开发过程中 应该充分考 虑以后的可扩充性 例如数据表中用户选择字段方式的改变 用户查询的需求也会不断 的更新和完善 所有这些 都要求系统提供足够的手段进行功能的调整和扩充 而要实现这一点 应通过系统的开放性来完成 既系统应是一个开 放系统 只要符合一定的规范 可以简单的加入和减少系统的模块 配置系统的硬件 通过软件的修补 替换完成系统的升级和更新换代 3 系统的易用性和易维护性要实现这一点 就要求系统应该尽量使 用用户熟悉的术语和中文信息的界面 针对用户可能出现的使用问 题 要提供足够的在线帮助 缩短用户对系统熟悉的过程 4 系统的数据要求 1 数据录入和处理的准确性和实时性 2 数据的一致性与完整性 3 数据的共享与独立性 三 系统目标本系统使用MyEclipse配 合微软mysql数据库管理工具进行开发 在进行分析后开发出一套基 于WEB的后台管理系统 四 系统模块结构设计1 研究内容开发这个系统的目的就是提高 工作效率 实现后台管理系统的通过页面对数据库的增 删 改 查 系统最终实现的主要功能如下 1 登陆权限登陆时能够自动辨别是否有权限登陆 2 数据库的数据能够通过页面进行增删改查 3 分类能够通过页面进行分类管理2 系统基本情况描述登陆时可以 对没有权限的用户进行阻止 成功登陆后自动跳转到管理页面 添 加用户的页面会有对注册用户的权限的一个设置 修改和删除的页 面都可以直接看到数据库中所有用户的列表以便进行删除和修改 整体的结构图如图3 1图3 1系统功能模块图 五 重要功能模块流 程1 添加用户信息流程添加用户流程如图3 2图3 2用户注册流程图2 用户登录流程用户登录流程如图3 3图3 3用户登录流程图3 用户管 理流程用户管理流程如图3 4用户管理后台用户管理密码修改添加账 号信息删除账号信息输入原密码判断删除账号信息错误输入新密码 正确修改成功图3 4用户管理流程图 四 数据库设计 一 数据库设计根据数据库中的几个表分别绘制 数据库的实体图 管理员的实体图如图4 1图4 1管理员实体图图书管理实体图如图4 2 图4 2图书管理信息实体图类别管理的实体图如图4 3图4 3类别管理 信息实体图 二 物理设计根据系统功能设计的要求以及功能模块 的划分 对于系统用户信息数据库 可以列出以下数据信息表数据 库的设计通常是以一个已经存在的数据库管理系统为基础的 常用 的数据库管理系统有MYSQL SQL Server Oracle等 我采用了S

温馨提示

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

评论

0/150

提交评论