




已阅读5页,还剩55页未读, 继续免费阅读
(系统分析与集成专业论文)基于j2ee体系结构的struts框架的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 摘 要 近年来, 随着网络技术的快速发展构建企业级分布式 web 应用技术日趋成熟 其中 sun 公司提出的 j2ee 技术被证明是成功的被应用于越来越多的企业级 web 应用系统建设中j2ee 是包含许多软件技术的多层应用程序体系结构它提出用四 层结构来实现 web 应用开发的模块化但在实际开发过程中开发人员很难做到良 好的层次划分struts 框架的提出为解决这个问题指出了很好的方向struts 是一个 基于 j2ee 平台实现了 mvc 设计模式的框架它迫使用户抽象自己的代码把项 目分解为表示逻辑和控制三部分各部分间的关联较小它全面减轻了构建多层 w e b 应用的负担提供了可复用的软件构架 本文的主要工作包含以下几个方面 1介绍和分析了 j2ee 平台和 mvc 设计模式的相关知识并对开发 web 应 用程序所需的核心技术进行了分析研究 2分析了 struts 实现 mvc 的机制struts 的工作流程和 strus 的核心组件 对如何用 struts 来开发 web 应用进行了深入研究和探讨 3 就一个具体的商品销售分析统计的 web 应用项目进行了分析和设计 并用 struts 框架对其中的模块进行了具体的编码实现 struts 框架已经成为了开发 web 应用的流行框架本文通过一个具体的商业项 目用 struts 框架进行了设计和实现 在实践中对 struts 框架的应用有了更深的体会和 认识对今后的工作有非常大的启发和帮助 关键词j2ee设计模式mvc框架struts ii abstract in the recent years, with the rapid development of network technology, technology of building enterprise distributed web application has become more mature, and j2ee technology proposed by sun has been proved to be successful. j2ee is a multi-tier architecture including many software technologies. it gives a four ties model to modularize web application. but in practical development, it is very difficult for developer to do good tier division. the produce of struts framework is a good method to solve the problem. struts is the web application framework that implements mvc design pattern. it demands developer to divide procedure into view model and controller, and the relation of each division is less. struts framework eases the burden of constructing multi-tier web applications and provides reusable software architecture. the main achievements and work can be shown as followings: (1) introducing and analyzing the relevant knowledge of j2ee platform and mvc design pattern, researching the core technology of developing web application. (2) discussing struts principlework, flow and core components, and researching how to develop web application using struts framework. (3) analyzing, designing and implementing a concrete web application of commodity sale analysis using struts framework. struts has become a popular framework for developing web application. a concrete commerce procedure is designed and implemented by using struts framework in the thesis. all work in the thesis is very significant and helpful to use of struts framework. keywords: j2eedesign patternmvcframeworkstruts 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果尽我所知除文中已经标明引用的内容外本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果对本文的研究做出贡献的个人和集体均已在 文中以明确方式标明本人完全意识到本声明的法律结果由本人承担 学位论文作者签名 日期 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留使用学位论文的规定即学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版允许论文被查阅和借阅 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索可以采用影印缩印或扫描等复制手段保存和汇编本学位论文 保密在_年解密后适用本授权书 不保密 请在以上方框内打 学位论文作者签名 指导教师签名 日期 年 月 日 日期 年 月 日 本论文属于 1 1 绪论 1.1 课题背景 随着信息技术的迅猛发展互联网对人类的活动产生了如此深刻的影响无论 是政府企业以及个人莫不如此与此同时it 工业也正面临着一场变革 从传统应用向基于 internet/web 的服务模式转变我们知道互联网的形成和发展是 以分布性开放性和平台无关性为基础的这是 internet 与生俱来的属性为了开 发基于 web 的应用相继出现了 sun 公司的 sun oneopen net environment开放 网络环境 和 microsoft 公司的.net 两天 web 服务技术体系 其中 sun one 以 java 技术为核心更接近或者满足于互联网在智能化 web 服务上对分布性开放性和平 台无关性的要求同时其在健壮性安全性组件化等方面也更为成熟稳定获得 了众多 it 厂商和产品的支持目前在市场上得到了非常广泛的应用j2ee 是 java 2 platform,enterprise edition 的缩写它是 sun 公司提出的一种分布式企业级应用开发 的技术架构 1 目前经过实践的检验证明 j2ee 技术是一种可以信赖的企业级软件 开发技术受到许多 it 业的大厂商的支持具有十分广阔的前景 struts 框架是一种基于 java 的技术 web 应用程序开发人员通过 struts 框架即可 充分利用面向对象设计代码重用以及编写一次到处运行的优点struts 提供 了一种创建 web 应用程序的框架对应用程序的显示表示和数据的后端代码进行 了抽象struts 是对 mvc 设计模式的一种实现mvc 设计模式为构建可扩展可 重用的代码打下了坚实的基础mvc 设计模式迫使用户抽象自己的代码把项目分 解为显示控制和模型三部分各部分间的关联尽量小 2 struts 本身是一群经验丰 富的 web 开发专家的集体智慧结晶在全世界内得到广泛运用并得到一致认可对 于开发大型复杂的 web 应用struts 是很好的框架选择 1.2 国内外研究现状 1997 年 4 月 12 日sun microsystems 公司宣布了一项为企业环境开发 java 平 台的创新成果使用开放式的 java community processsun 促进了一组标准的 java 2 扩展的开发称为 enterprise java api这些应用程序编程接口api为各种各样的 中间件的实现提供了不依赖供应商的编程接口enterprise java api 的要点是 enterprise javabeans api后者为 java 应用程序服务器定义了一个服务器端组件模 型以及一个不依赖供应商的编程接口 1 j2ee 经过多年的实践检验证明是一种 可以信赖的企业级软件开发技术受到许多 it 业的大厂商的支持具有十分广阔的 前景在国外企业级应用程序开发市场上j2ee 已经成为一种主要的开发平台占 有非常大的比例在国内 j2ee 也逐渐得到了越来越多的重视正在越来越多地被应 用到 struts 框架是基于 mvc 设计模式的一种实现最早于 2000 年 5 月作为 jakarta 项目的组成部分问世jakarta 项目是由 apache 基金组织运作项目的创立者希望改 进和提高 java server pages jspsservlet 标签库以及面向对象的技术水平 jakarta 项目有许多成功的部分比如大名鼎鼎的 tomcat以及 cactuslog4j 等一些激动 人心的产品而且 struts 是开发源码项目它的前景是不可限量的 最近主流的企业级 java 开发工具都推出了对 struts 的支持borland 出版的 jbuider8 版本以上都支持 strutsibm 的 websphere studiov5 系列同样也支持 struts 专擅开发 java 企业级开发工具的 exadel 公司http/ 可视化构造基于 struts 框架的 web 应用程序的工具 exadel struts studio此外作为 开源项目struts 也得到了一批狂热的开源分子的支持也有一大批成功的产品比 如 easy strutsstruts console 等从这些就可以看到业界对 struts 的重视程度和对它 的期望了 在国外已经大量地应用了 struts 框架 国内对 struts 的应用和研究正处于起始阶 段有不少的人在研究它也有很多的人在使用它当前国内对 struts 的研究主要集 中在一些以 java web 开源技术以及其他相关内容为主题的网络论坛上 去年 cjea 中国 java 工程师协会在北京召开了 struts 技术交流研讨会在产业方面有不 少软件公司已经在 jbuilderwsad 等开发工具上使用 struts 框架了 2 3 1.3 研究思路及内容 互联网以及电子商务技术的普及和发展推动着企业信息系统的构建和更新进 程为了缩短企业信息系统的设计和开发周期降低构建企业信息系统的成本在 已有系统中对变化的商务规则迅速地做出反映 sun 公司制定了 java2 sdk enterprise editionj2ee规范定义基于组件的方式设计开发组装和部署企业应用系统 的各个组成部分j2ee 规范定义了分布式多层应用系统模型组件重用策略一致 化的安全模型以及灵活的事务控制策略等使得独立软件提供商isv能够以比以 前更快的速度向市场推出具有用户适应性的客户解决方案另外平台独立基于 组件技术的 j2ee 解决方案不受软件产品类型和不同应用环境的制约 struts 为 java web 应用提供了现成的通用的框架 struts 可以大大提高 web 应用 的开发速度如果没有 struts开发人员将不得不首先花大量得时间和精力来设计 开发自己的框架如果在 web 应用中恰到好处地使用 struts将把从头开始设计框 架的时间节省下来使得开发人员可以把精力集中在如何解决实际业务问题上 2 本论文的主要内容和章节安排如下 1第二章介绍了 j2ee 的概念采用 j2ee 平台开发的优势j2ee 常采用的 体系结构等方面内容最后对 j2ee 几种关键的核心技术作了分析讨论 2第三章从 j2ee 常用的设计模式出发重点对 mvc 模式进行了研究最 后对开发 web 应用常采用的两种 jsp 模式进行了比较分析 3第四章对 struts 框架进行了深入探讨对 struts 框架的原理结构核心 组件进行了深入研究 4第五章针对一个具体的商品销售管理系统的 web 应用开发实例进行了分 析设计实现从而在实践中研究了 struts 框架的具体应用 5第六章是对本论文的总结与展望指出了本文可以改进和完善的地方 本论文通过对 j2ee 体系结构的研究 以及开发 web 应用时所采用的 struts 框架 的研究与实际的应用对开发企业级分布式应用系统的技术有了更深的体会与领悟 为将来的工作打下了扎实的基础 4 2 j2ee平台概述 j2ee是java 2 platform,enterprise edition的缩写,它是由美国的sun microsystems 公司提出的一种用于开发分布式企业级应用程序的技术架构j 2 e e提供了一个多层 次的分布式应用模型和一系列开发技术规范j 2 e e简化了开发大型企业级应用系统 的难度经过多年的发展, 已经得到了许多 i t 业大公司的支持, 在实践中也得到了越 来越广泛的应用j 2 e e 平台已经成为了开发分布式企业级应用的标准平台之一 2.1 j2ee规范 从 1994 年诞生起java 编程语言就带来了软件工业的革命java 语言具有一些 非常好的特性如: 完全面向对象自动垃圾收集可移植性等 3 由于这些优势 java 技术得到了非常广泛的应用和发展目前java 2 平台有 3 个版本它们是适用 于小型设备和智能卡的 java 2 平台 micro 版 java 2 platform micro edition j2me 适用于桌面系统的 java 2 平台标准版java 2 platform standard edition, j2se适用 于创建服务器应用程序和服务的 java 2 平台企业版java 2 platform enterprise editionj2ee 4 建立于 java 编程语言和 java 技术基础之上的 j2ee 平台是最适合于企业级分布 式环境的应用结构它提供了一个多层次的分布式应用模型和一系列开发技术规范 多层次分布式应用模型是指根据功能把应用逻辑分成多个层次每个层次支持相应 的服务器和组件组件在分布式服务器的组件容器中运行容器间通过相关的协议 进行通讯实现组件间的相互调用 j2ee 提供中间层集成框架用来满足无需太多费用而又需要高可用性高可靠性 及可扩展性的应用的需求通过提供统一的开发平台j2ee 降低了开发多层应用的 费用和复杂性同时提供对现有应用程序集成强有力的支持j2ee 是一个规范而 不是一个产品j2ee 定义了当人们写企业级软件时必须遵守的准则这就从本质上 确定了它是不依赖于某一个供应商的它也支持跨平台开发这使得每个供应商可 以推出符合 j2ee 规范的不同的产品这导致了 j2ee 技术的快速发展也让用户不 会依赖于某一家公司的产品符合用户的投资利益 5 2.2 j2ee的优势 j2ee 目前得到了广泛的应用其优势主要是为搭建具有可伸缩性灵活性易 维护性的业务系统提供了良好的机制下面对其优势做一详细叙述 1 5 1保护公司的投资 由于企业必须适应新的商业需求利用已有的企业信息系统方面的投资而不是 重新制定全盘方案就变得很重要这样一个以渐进的而不是激进的全盘否定 的方式建立在已有系统之上的服务器平台机制是公司所需求的j2ee 架构可以充 分利用用户原有的投资这之所以成为可能是因为 j2ee 拥有广泛的业界支持和一 些重要的企业计算领域供应商的参与每一个供应商都对现有的客户提供了不 用废弃已有投资即可进入可移植的 j2ee 领域的升级途径由于基于 j2ee 平台的产 品几乎能够在任何操作系统和硬件配置上运行现有的操作系统和硬件也能被保留 使用 2高效率的开发 j2ee 允许公司把一些通用的很繁琐的服务器任务交给中间件供应商去完成 这样开发人员可以集中精力在如何创建业务逻辑上相应地缩短了开发时间由中 间供应商提供的应用服务器可以处理一些复杂的问题如多线程同步处理事务 资源分配和生命周期管理等 3支持异构环境可跨平台 j2ee 能够开发部署在异构环境中的可移植程序基于 j2ee 的应用程序不依赖 任何特定操作系统中间件硬件因此设计合理的基于 j2ee 的程序只需开发一次 就可部署到各种平台这在典型的异构企业计算环境中是十分关键的j2ee 标准也 允许客户订购与 j2ee 兼容的第三方的现成的组件把它们部署到异构环境中节省 了由自己制订整个方案所需的费用 4可伸缩性 企业必须选择一种服务器端平台这种平台应能提供极佳的可伸缩性去满足那 些在他们系统上进行运作的大批新客户 基于 j2ee 平台的应用程序可被部署到各种 6 操作系统上例如可被部署到高端 unix 与大型机系统这种系统单机可支持 64 256 个处理器j2ee 领域的供应商提供了更为广泛的负载平衡策略能消除系统中 的瓶颈允许多台服务器集成部署这种部署可达数千个处理器实现可高度伸缩 的系统满足未来商业应用的需要 5稳定的可用性 一个服务器平台必须能全体候运转以满足公司客户合作伙伴的需要因为 internet 是全球化的无处不在的即使在夜间按计划停机也可能造成严重损失若 是意外停机则有可能会造成灾难性后果j2ee 部署到可靠的操作环境中支持长 期的可用性 2.3 j2ee的体系结构 传统的应用程序开发模式是客户机服务器两层结构 c l i e n t / s e r v e r简称 c / s 模型这种结构的优点是开发简单易于实现但由于客户端承担了太多的任务而 使得它具有很多弊端如灵活性可维护性可扩展性都很差为了克服这些缺点 现在的应用系统一般都采用多层体系结构 多层体系结构给设计带来了很大的灵活 性但同时也增加了创建测试配置管理和维护应用组件的复杂性j2ee 平台 经过良好的设计来支持多层结构它降低了这些复杂性 2.3.1 j2ee典型的结构 j2ee 平台使用多层分布式应用模型 应用程序逻辑根据功能划分成不同的组件 由多个应用程序组件所组成的 j2ee 应用系统可以安装在不同的计算机上 这取决于 这些应用组件是属于整个多层的 j2ee 环境中的哪一层 j2ee 典型的体系结构分为 4 层 6 1客户层运行在客户计算机上的组件client tier 2web 层运行在 j2ee 服务器 web 容器中的组件web tier 3业务层运行在 j2ee 服务器 ejb 容器中的组件business tier 4企业信息系统层eis是指运行在 eis 服务器上的软件系统eis tier 其中第二层和第三层合称为中间层middle tier 7 客户层 中间层 企业信息系统层 图 2. 1 j2ee 的体系结构 客户层组件 这一层对应于 j2ee 应用程序的客户端j2ee 应用可以是基于 web 的也可以 是不基于 web 的在一个基于 web 的 j2ee 应用中http 页面applet 小应用程 序属于客户层组件在一个不基于 web 的应用中普通的 java 应用程序或者移动设 备例如手机pda 等属于客户层的组件 web 层组件 j2ee 的 web 组件可以是 servlet 或 jsp 页面servlet 是用 java 语言开发的类 它能动态处理请求并构造响应jsp 页面则是基于文本的也能像 servlet 一样被执 行更多用于创建一些静态的内容web 层可能包含某些 javabean 对象处理用户输 入并把输入发送给运行在业务层上的企业 bean 进行处理 业务逻辑层组件 业务层组件主要是指 ejbenterprise beans业务层代码的逻辑用来满足业务 领域的需要 由运行在业务层上的 ejb 进行处理 企业 bean 从客户程序处接受数据 对数据进行处理 如果需要再将数据发送到企业信息系统层存储起来 企业 bean 8 也可以从持久存储层中检索数据并将数据送回客户程序运行在业务层的 ejb 依 赖于容器来为诸如事务生命期状态管理多线程及资源存储池等提供通常都非 常复杂的系统级代码 有三种不同类型的企业 bean 会话 bean session bean实体 bean entity bean 和消息驱动 beanmessagedriven bean会话 bean 表示与客户端程序的临时交 互当客户端程序执行完成后会话 bean 以及它所包含的数据就会消失相反实 体 bean 代表的是持久的数据也就是存储在数据库表中的一行记录如果客户端程 序中止或者服务器关闭在 j2ee 底层的服务确保了实体 bean 的数据能够被保存下 来消息驱动 bean 结合了会话 bean 和 java 消息服务jms中消息监听者的特性 允许一个业务层组件异步接受 jms 消息 7 企业信息系统层 企业信息系统层运行企业信息系统软件这层包括企业基础设施系统例如企 业资源计划erp大型机事务处理main frame transaction processing数据库系 统及其他遗留系统 legacy information systemsj2ee 应用程序组件可能需要访问这 些企业信息系统例如数据库的连接 8 2.3.2 j2ee的容器服务 j 2 e e提供了一个框架一组标准的 api用来开发分布式的企业级应用j2ee 架构中的各项技术需要一个实现者这个实现者要按照 j2ee 的规范提供 j2ee 应用 程序所需的服务主要是 web 服务和业务组件服务 9 j2ee 应用服务器就是充当这 个 j2ee 技术标准实现者的角色目前有许多 j2ee 应用服务器一些厂商着重于实 现 j2ee 体系中的某些组件例如 apach 的 tomcat 为 jsp 和 servlet 提供支持bea 公司的 weblogic server 作为 j2ee 应用服务器实现了 j2ee 的全部特性j2ee 服 务器针对每一种组件类型以容器的形式提供了大量的底层服务开发人员不再需 要自己去开发这些底层的服务可以专注那些业务问题的解决 容器是位于组件和底层平台之间的一个接口底层平台以特定的功能提供对组 件的支持要执行一个页面企业 bean 或者应用程序客户组件首先要把他们组装 9 成 j2ee 应用程序并部署到容器当中在 j2ee 的组装过程中会针对 j2ee 应用程 序中的各个组件或者是针对 j2ee 应用程序本身的需要对容器做一些设置工作 容器的设置 定制了 j2ee 服务器所提供的底层服务支持 包括安全 事务管理 java 名字与目录接口jndi以及远程连接等 1 0 下面是几个比较重要的方面 1j2ee 安全模型能够配置 web 组件或企业 bean 以保证系统资源只能被授 权的用户访问 2j2ee 事务模型可以设定那些构成单个事务的多个方法之间的关系确保 了在一个事务中的所有这些方法能够被作为一个单个的执行单元 3jndi 查找服务为企业内部可能存在的多种名字与目录服务之间提供了一 个统一的接口以便于应用程序组件可以访问不同的名字与目录服务 4j2ee 远程连接模型则管理着客户与企业 bean 之间发生的底层通讯当远 程企业 bean 被创建后客户调用它的方法就好像它们是位于同一个虚拟机之中 j2ee 架构提供的这种可配置的服务意味着在同一个 j2ee 应用程序中的组件可 能会有不同的行为表现这取决与它们部署的 j2ee 环境 1 1 例如在一个产品环 境下某个企业 b ean 可能有一个安全配置它设定了某个级别来控制是否有权访问数 据库的记录但是在另一个产品环境下它可能有不同的安全级别来控制数据库的权 限 2.4 j2ee体系结构中的几种关键技术 j2ee 是一个技术架构也可以视为一个技术体系它包含了许多关键性技术 下面对一些主要的技术做一些分析 2.4.1 jdbcjava数据库连接 jdbcjava database connectivity为 java 应用程序访问不同的数据库提供了 通用的应用程序编程接口通过 java 驱动程序可以屏蔽不同数据库之间的差异 jdbc 应用程序不必考虑具体的数据库和操作系统而采用统一的应用程序接口通 过 jdbc 可以完成建立数据库的连接执行 sql 语句等操作 通过 j dbc 访问数据库需要有相应数据库的 jdbc 驱动程序通常由数据库厂 10 商提供jdbc 驱动程序负责将 jdbc 操作转换为特定的数据库操作 2.4.2 jndijava naming import java.sql.date; import javax.servlet.http.httpservletrequest; / 引入 struts 框架的相关类比如actionformactionmessage 等类 import org.apache.struts.action.*; public final class periodanaform extends actionform / 用于获取分析条件的起始和终止时间的两个变量 private date startanatime = null; private date finalanatime = null; / 两个变量的存取器方法 public date getstartanatime() return (this.startanatime); public void setstartanatime(date startanatime) this.startanatime = startanatime; public date getfinalanatime() return (this.finalanatime); public void setfinalanatime(date finalanatime) this.finalanatime = finalanatime; 39 / 下面的验证方法用于检查输入数据的语法格式等的正确性 public actionerrors validate(actionmapping mapping, httpservletrequest request) . . . . . . . 商品别分析模块可以对指定的具体商品进行统计分析分析条件除了指定分析 统计的时间段外还需要指定具体的某种商品或某类商品店铺别分析模块和特卖 品分析模块同样需要设定具体的店铺和特卖品等分析统计的条件 5.3.2 统模型组件设计与实现 模型组件提供了业务逻辑处理的功能模型组件可以是 javabeanejb 和实用 类43本系统用 javabean 和实用类来实现首先需要一个实用类来实现连接数据库 的功能这个类为dbconnect.java程序代码如下 package work.model; / 引入所需要的类文件 import java.io.serializable; import java.sql.*; import java.util.*; public class dbconnect implements serializable / 通过配置文件来获取数据库连接所需的信息增强程序的灵活性 private static propertyresourcebundle iprops = null; / 数据库配置文件的名字 private static final string prop_file_name = config; private static string driver = null; / 数据库驱动器类 40 private static string url = null; / 数据库路径 private static string username = null; / 访问数据库的用户名 private static string password = null; / 访问数据库的密码 public static synchronized connection getconnection() throws exception try connection connection = null; if (iprops = null) iprops = (propertyresourcebundle)resourcebundle.getbundle(prop_file_name); / 从配置文件中获取驱动器类url 路径用户名密码 driver = iprops.getstring(jdbc.driver); url = iprops.getstring(jdbc.url); username = iprops.getstring(jdbc.login); password = iprops.getstring(jdbc.password); / 载入驱动器类并实例化 class.forname(driver).newinstance(); / 获取数据库连接类并返回 connection = drivermanager.getconnection(url, username, password); return connection; catch( exception ex) system.out.println (ex.getmessage (); return null; 41 系统采用了 sql server2000 数据库系统数据库连接配置文件为 perties内容如下 jdbc.driver = com.microsoft.jdbc.sqlserver.sqlserverdriver jdbc.url = jdbc:microsoft:sqlserver:/estone:1433 jdbc.login = ez jdbc.password = ez 系统要从数据库中查找相应的结果出来然后显示在客户端我们要设计一个 dto 类date transaction object 数据传输对象使得从数据库中读出的类可以显示 在网页中这个类为periodanadto.java,代码为 package work.model; import java.io.serializable; / 这个类实现 serializable 接口可以使得该类能被持久化 public class periodanadto implements serializable / 下面四个变量用于从数据库表中获取统计分析的结果显示 private double salesnumbers = 0.0; / 销售数量 private double salesprices = 0.0; / 销售金额 private double arariprice = 0.0; / 毛利利润 private double pinumber = 0.0; /支持率销售数/顾客数*100 / 下面是相应变量的获取和设置方法 public double getsalesnumbers() return this.salesnumbers; public void setsalesnumbers(double salesnumbers) this.salesnumbers = salesnumbers; 42 public double getsalesprices() return this.salesprices; public void setsalesprices(double salesprices) this.salesprices = salesprices; public double getarariprice() return this.arariprice; public void setarariprice(double arariprice) this.arariprice = arariprice; public double getpinumber() return this.pinumber; public void setpinumber (double pinumber) this.pinumber = pinumber; 对于期间别统计分析模块需要根据起始和终止时间来查询全部商品的统计分 析结果这个类为periodanaservice.java部分代码为 package work.model; / 引入相应的 java 类 import java.sql.*; import java.util.*; 43 import mons.beanutils.beanutils; public class periodanaservice protected connection conn = null; / 数据库连接类变量 protected preparedstatement pst = null; / 预处理语句变量 protected resultset rs1 = null; / 查询的结果集变量 protected string strsql = null; / sql 查询语句变量 / 关闭数据库连接的方法 protected void closeconnection() try if (rs1 != null) rs1.close(); catch (java.sql.sqlexception ex) try if (pst != null) pst.close(); catch (java.sql.sqlexception ex) try if (conn != null) conn.close(); catch (java.sql.sqlexception ex) / 查询数据库并把结果集存到列表数据结构中 public list showresult(java.sql.date startanatime,java.sql.date finalanatime) / 该方法需要传入统计分析的起始和终止时间 periodanadto pad = new periodanadto(); list result = new arraylist(); try 44 conn = dbconnect.getconnection(); / 数据库查询操作的 sql 语句 strsql = select * from periodanalysis where anatime between ? and ? ; pst = conn.preparestatement(strsql); pst.setdate(1,startanatime); pst.setdate(2,finalanatime); / 进行数据库查询操作 rs1 = pst.executequery(); / 把查询到的结果存到列表数据结构中 while(rs1.next() pad.setsalesnumbers(rs1.getdouble(salesnumbers); pad.setsalesprices(rs1.getdouble(salesprices); pad.setarariprice(rs1.getdouble(arariprice); pad.setpinumber(rs1.getdouble(pinumber); result.add(beanutils.clonebean(pad); catch (exception ex) system.out.println(ex.getmessage(); finally closeconnection(); return result; 对于商品别店铺别特卖商品别这三个模块它们要实现对指定的某一种商 品某一类商品某一家店铺等进行统计分析所以它们除了确定分析时间外还 需要指定具体的商品号店铺号等分析条件它们实现的方法跟期间别实现的方法 45 是类似的 5.3.3 系统控制器组件设计与实现 struts 控制器组件负责接收用户请求更新模型以及选择合适的视图组件返回 给用户44 45struts 框架主要包括 actionservletrequestprocessoraction 组件 actionservlet 组件充当 struts 框架的中央控制器requestprocessor 组件充当每个子 应用模块的请求处理器 actionservlet 类本身包含了很多处理请求的代码 但多数的 功能被移到了 requestprocessor 类中对于多应用模块的 struts 应用每个子应用模 块都有各自的 requestprocessor 实例这两个类完成所有的默认功能用户可以在它 们的基础上进行扩展通常情况下用户只要直接继承它们即可 action 组件负责处理一项具体的业务它是用户请求和业务逻辑之间的桥梁 每个 action 充当客户的一项业务代理在 requestprocesso 类预处理请求时在创建 了 action 的实例后就调用自身的 processactionperform方法该方法再调用 action 类的 execute方法action 的 execute方法调用模型的业务方法完成 用户请求的业务逻辑然后根据执行结果把请求转发给其他合适的 web 组件 本系统期间别分析模块的 action 类为periodanaaction.java,部分代码为 package work.control; import java.util.*; import javax.servlet.requestdispatcher; import javax.servlet.servletexception; import org.apache.struts.util.messageresources; / 引入 httpservletrequeshttpservletresponse 等类 import javax.servlet.http.*; / 引入 struts 框架的相关类比如 actionactionmessage 等类 import org.apache.struts.action.*; / 引入编写好的视图和模型组件 import work.view.periodanaform; import work.model.periodanaservice; 46 / 编写的类必须继承 action 类成为其子类 public final class periodanaaction extends action /* 下面函数的参数 mapping 从配置文件中获得相关信息form 是从用户表单输入的 值中得到的 actionform 类request 是用户请求信息response 是返回值信息*/ public actionforward execute(actionmapping mapping, actionform form, httpservletrequest request, httpservletresponse response) throws exception . . . . . . / 通过 actionform 类获取用户输入的表单参数统计分析的起始和终止时间 java.sql.date startt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稳定性实验评价-洞察及研究
- 牙齿移动有限元模拟-洞察及研究
- 协调机制不足-洞察及研究
- EGFR抑制剂疗效评估-洞察及研究
- 农业生产中的节能与减排
- 地产项目规划总结
- 公司员工伙食补贴
- 利率市场化浪潮下商业银行利率风险防控的多维审视与策略构建
- LD侧面泵浦全固态266nm紫外激光器:理论、设计与应用的深度探索
- 微流控技术在人工器官氧分压调控中的研究进展-洞察及研究
- GB 23466-2025听力防护装备的选择、使用和维护
- 人教PEP版(2024)四年级上册英语-Unit 3 Places we live in 单元整体教学设计(共6课时)
- 华为信息安全管理培训课件
- 贵阳市殡仪服务中心招聘考试真题2024
- 重庆市危险化学品企业变更管理实施指南(试行)解读2025.7.25
- 煤改电工程施工质量监控方案和措施
- 布病的护理教学课件
- (2025年标准)预售小麦协议书
- 2025年院感测试题及答案
- 公司培训防诈骗知识宣传课件
- 2025年全国《质量知识竞赛》题库及答案
评论
0/150
提交评论