网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

java+Oracal9i电子申请系统

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
Java电子申请系统Abstract    During the process of information-based construction, the Japanese government isn't only concentrate on constructing the atmosphere of the whole social information construction , and but also works hard on information-based construction of strengthening the government inner part. Join the government mansion top brass to the general staff member in Japan, from multinational company to the construction that common citizens all support and participate the electronics government actively, the electronics government has become"lead the way sheep" that the Japanese social informationization constuct. Currently, the Japanese all levels government section was widespread to build up outward the governmental affairs information search system, provide the policy information and the governmental affairs service for the society in time, it pushed forward the administration system reform,raised a government to handle affairs an efficiency,BE practice governmental affairs public,remould outward image.  The electronics government system includestwo network work terraces: serving outward,the internal business. The external work terrace is mainly use to release an information,answer a problem,provide a consultation and carries out a license etc. acculturation information service, construct the bridge of public contact and communication .The internal business work terrace is the electronics government applied core, mainly used for collecting information,turning the official document flow ,the business exchanges and handling business that the outside net accept.  This system adopt the most popular language nowadays,JAVA language. According to the development technique of the Struts frame, it makes developing applied procedure  according to the WEB with according to WINDOWS more easily .The point in text inquiried into the Struts structure to constitute and its design principle.This system for the all levels government, the internal business of the business unit contain very high value.  Keywords
  The electronics government; applied procedure;JAVA; Struts;WEB  
 
Java电子申请系统摘    要
  在信息化建设中,日本政府不但致力于营造全社会信息化建设的大环境,而且努力加强政府内部的信息化建设。在日本,从政府要员到一般工作人员、从跨国公司到普通国民都积极支持和参与电子政府的建设,电子政府已成为日本社会信息化建设的“领头羊”。 目前,日本各级政府部门普遍建立了对外政务信息查询系统,及时为社会提供政策信息和政务服务,其推进了行政体制改革、提高了政府办事效率、是实行政务公开、重塑对外形象的重要举措。  电子政府系统包括对外服务、内部业务两个网络工作平台,对外工作平台主要用来发布信息、解答问题、提供咨询、办理证照等社会化信息服务,起到与公众联系和沟通的桥梁作用;内部业务工作平台是电子政府应用的核心,主要用于信息采集、公文流转、业务交流以及处理外网受理的业务等。  本系统采用了当今最流行,功能强大的JAVA语言,基于Struts框架的开发技术,它使我们可以更容易地开发基于WEB和基于 WINDOWS的应用程序。文中重点探讨了Struts架构组成及其设计原则。本系统对于各级政府,企事业单位的内部业务有相当高的价值。
关键词
电子政府;应用程序;JAVA;Struts;WEB目  录
摘   要 iAbstract ii
第1章前言 11.1 面向对象编程简介 11.2 信息管理系统开发简介 11.2.2 以数据为中心 21.2.3 开发过程的组织与控制 21.3 电子申请系统简介 3第2章 数据库理论基础 42.1 数据库系统设计及范式分析 42.1.1 数据库系统设计 52.1.2 数据库设计范式分析 72.2  SQL 语言介绍 82.2.1 SQL基础 82.2.2 SQL语句 9第3章 应用系统开发工具 123.1 Struts架构及MVC开发模式介绍 123.1.1 Struts的体系结构与工作原理 123.1.2 从struts的组件来看Struts 的工作原理 143.2 JAVA编程语言介绍 153.2.1背景 153.2.2 Java语言对软件开发技术的影响 163.2.3 Java语言的应用前景 163.2.4 Java的特点 17第4章 电子申请系统设计分析 224.1用户信息登记(K2-02-01) 224.2 新用户登记信息确认 (K2-02-02) 254.3新用户信息登记结果(K2-02-03) 264.4新用户登记画面表示功能(K2-02-01F) 284.6新用户信息登记功能(K2-02-03F) 29第5章 应用程序设计 325.1 配置文件 325.1.1 web.xml 325.1.2 struts-config.xml 325.2 页面设计 335.2.1页面代码文件 335.3 处理模块 345.3.1  Action处理代码文件(StaffInfoListLoginAction.java) 345.3.2  FormBean设计(StaffInfoListLoginForm.java) 345.3.3  业务逻辑BEAN(StaffInfoListLoginLogic.java) 355.4 单体测试 355.4.1  测试的分类 355.4.2 本次开发中的单体测试 36结   论 37参考文献 38致   谢 39
 
Java电子申请系统 第1章 前言  1.1面向对象编程简介  长期以来,人们解决问题的方式主要包括面向过程编程和面向对象编程。面向过程的程序遵循面向过程的问题的求解方法,其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题。面向过程的程序实际上是面向机器、而不是面向问题的。  面向对象的问题求解的方法所关心的不仅仅是孤立的单个过程,而是孕育所有这些过程的母体系统。它能够用计算机逻辑来模拟、描述系统本身,包括系统的组成、系统的各种可能状态、以及系统中可能产生的各种过程与过程引起的系统状态的切换。  面向对象的程序设计是以要解决的问题中所涉及到的各种对象为主要考虑因素。对象是一种看问题的观点,是对现实世界各种元素的一种抽象。对象既含数据又含功能,因此具有自身处理数据的能力。对象被认为是迄今为止最接近真实事物的数据抽象。  现实世界中对象有两个共同的特点:一方面,它们都有自己的状态,如一台电视机有自己的摆放位置,有关机和开机状态等;另一方面,它们都有自己的行为或功能,如电视的开机、关机、调台等功能,我们可以通过按钮、遥控器让电视机执行这些功能。  面向对象程序设计中的对象是现实世界对象的模型化,它同样具有状态和行为。其中,对象的状态用属性(变量)来维护,对象的行为用方法(代码)来实现。相关对象的集合称为类(class)。类是对象的抽象及描述,它是具有统一属性和方法的多个对象的统一描述体,是用来定义一组对象共有属性和方法的模板。  1.2信息管理系统开发简介  计算机应用已经渗透到日常工作的许多方面,许多企业的领导已经或正准备投入高额资金,建立大规模的计算机管理信息系统(MIS)。就系统开发的某一具体问题来说,主要是开发用于数据处理的程序,一般是比较容易实现的。因而很少出现因网络或程序调试不通而中止开发的情况,并且大都采用最新的、高性能的计算机软硬件平台,由优秀的计算机技术人员实施开发,但预期的目标常常难以达到,这个问题值得深入研究。,仅仅注重计算机技术和程序开发是不够的。  开发者首先面对的是用户和原有的工作方式,对具体情况作出具体分析,要有建立新的工作模式的创造力,并用组织措施控制开发过程。这方面工作的特点是模糊和零乱;MIS建设要实现以计算机系统为中心的新的工作方式,其结果无论是计算机系统内部还是人的工作都将是明确的、规范的。最终结果的明确、规范,并不说明能有确定的规则或简单的办法去抽象原有的方式。MIS建设面对的是原有方式和计算机系统两个截然不同的问题,决不能忽视和混淆。用计算机本身的技术方式去对待整个MIS建设是一种根本性的错误。信息技术正在全球引发一场革命,MIS建设是这场革命的重要内容,是今后企业实现科学化管理获取高效益的基础性工作。MIS建设要涉及用户、原有工作方式、计算机软硬件、程序开发等许多因素,这不是借助某项具体的、特定的技术所能完成的,本质上是一个系统性的问题。  1.2.1系统目标和内容的确立  1.2.1.1系统分解  系统建设的规模一般较大,不易掌握和控制,可以将其分解为多个子系统,以降低系统的复杂性。原有方式总是按照工作相关的程度分为多个部门,因此,划分子系统是方便的,关键是要制定描述子系统间联系的约束规范,以此保证各子系统最终能形成一个统一的系统。  1.2.1.2全面评估  对于各子系统,全面评估系统开发的目的、内容、效果、条件相运行后的维护扩展等因素,这些因素关系到系统建设的成败,应从实际需要和可能出发,要从大局着眼进行认真的分析。盲目求大求全就会导致图虚名而招实祸,达不到预期的效果。   1.2.1.3逐步迫近  在满足系统约束规范的基础上,用快速原形法开发各子系统。这样就不必首先进行详尽的需求分析,以完全掌握原有的方式,而是通过试运行把用户的需求不断吸收进去,让系统直接逼近开发目标。这样做有许多益处:可以降低开发者掌握原有系统的难度;可以更准确地了解用户的需求、确立新的工作模式;开发过程中,用户已经接受了新的系统。   1.2.2 以数据为中心  以数据平台为中心,将系统开发划分为形成数据平台和由数据平台变换出结果两个部分,在整体上使系统结构简单明了:    建立了同一的数据平台,凭借现有的开发工具,各种结果都可以方便地变换出来,而不必要事先将各种功能完全确定;另一方面,无论管理体制如何变化,涉及到的基础数据却是稳定不变的,改变功能只需改变相应的程序,以适应企业改革的需要。  1.2.3开发过程的组织与控制  1.2.3.1 平稳安排  通过对系统的分解,根据工作量、用户情况及其在系统中的作用等因素排列开发顺序,并根据子系统的开发情况随时调整和部署开发工作,使系统开发能有一个由小到大的、平稳的发展过程,并能方便地形成系统。  1.2.3.2 整体控制   要采取有效的技术和组织措施,确保在开发工作中处于主动,以便有效地贯彻系统建设的思想,把系统建设推向成功。  1.2.3.3 迅速过渡  通过试运行把用户的需求不断的吸收到系统中去。在这个过程中,开发者要注意以数据平台为中心建立起新的系统结构。  1.3电子申请系统简介在电子申请系统开发之前,对该系统所涉及的数据库应当充分了解,因为任何一个系统的开发都离不开对数据库的操作,所以对数据库的基本概念、结构、开发应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。这样才能够实现基本的系统功能。    电子申请系统开发的目标是建立一个政府内部办公数字化的产品。实现政府内部公文流转、信息发布、信息查询的网络化、数字化,促进了政府内部的信息交流和资源共享,从而改进工作方式,提高行政效率。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。设计页面,通过对数据库的访问实现系统功能。    数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。
 
Java电子申请系统 第2章 数据库理论基础  一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。  信息管理系统所涉及的数据库设计分五个步骤:数据库需求分析、概念设计、逻辑设计、物理设计与加载测试。  (1) 数据库需求分析的任务是将业务管理单证流化为数据流,划分主题之间的边界,绘制出DFD图,并完成相应的数据字典[3]。  (2) 概念设计的任务是从DFD出发,绘制出本主题的实体-关系图,并列出各个实体与关系的纲要表。  (3) 逻辑设计的任务是从E-R图与对应的纲要表出发,确定各个实体及关系的表名属性。  (4) 物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如MS SQL Server),实现物理建库,完成数据库物理设计字典。  (5) 加载测试工作贯穿于程序测试工作的全过程,整个录入、修改、查询、处理工作均可视为对数据库的加载测试工作。要设计出一个好的信息管理系统数据库,除满足系统所要求的功能外,还必须遵守下列原则:  a.基本表的个数越少越好。  b.主键的个数越少越好。键是表间连接的工具,主键越少,表间的连接就越简单。  c.字段的个数越少越好。  d.所有基本表的设计均应尽量符合第三范式[3]。  数据库的设计中,如何处理多对多的关系和如何设计主键,是两个有着较大难度、需要重点考虑的问题。下面我们着重从SQL应用、数据库设计范式和查询优化等方面来分析本课题的系统关键技术和实现难点并加以解决。  2.1 数据库系统设计及范式分析  信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。    2.1.1 数据库系统设计  数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS[3](数据库管理系统)提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。  数据库设计的步骤是:  (1) 数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP[3](负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。  (2) 数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。  (3) 存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。  (4) 数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。  (5) 数据字典设计:用数据字典描述数据库的设计,便于维护和修改。为了更好地组织数据和设计出实际应用数据库,应该注意如下问题:  规范化地重组数据结构:对数据进行规范化表达,这在后面将会具体讨论。  关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。   建立关系数据结构涉及三方面内容:确定关联的关键指标项并建立关联表;确定单一的父系记录结构;建立整个数据库的关系结构。   (1)链接关系的确定   在进行了上述数据规范化重组后,已经可以确保每一个基本数据表(我们简称为表)是规范的,但是这些单独的表并不能完整地反映事物,通常需要通过指标体系整体指标数据才能完整全面地反映问题。也就是说在这些基本表的各宇段中,所存储的是同一事物不同侧面的属性。那么计算机系统如何能知道哪些表中的哪些记录应与其它表中的哪些记录相对应,它们表示的是同一个事物呢?这就需要在设计数据结构时将这种各表之间的数据记录关系确定下来。这种表与表之间的数据关系一般都是通过主或辅关键词之间的连接来实现的。因为在每个表中只有主关键词才能唯一地标识表中的这一个记录值(因为根据第三范式的要求,表中其它数据字段函数都依赖于主关键词),所以将表通过关键词连接就能够唯一地标识出某一事物不同属性在不同表中的存放位置。   (2)确定单一的父子关系结构   所谓确定单一的父系关系结构就是要在所建立的各种表中消除多对多(以下用M:N来表示)的现象,即设法使得所有表中记录之间的关系呈树状结构(只能由一个主干发出若干条分支,而不能有若干条主干交错发出若干条分支状况)。所谓的“父系”就是指表的上一级关系表。消除多对多关系可以借助于E-R图的方法来解决,也可以在系统分析时予以注意,避免这种情况的发生。   消除这种M:N情况的办法也很简单,只需在二表之间增加一个表,则原来M:N的关系就改成了M:1,1:N的关系了。  确定数据资源的安全保密属性:  一般DBMS都提供给我们自己定义数据安全保密性的功能。系统所提供的安全保密功能一般有8个等级(0-7级),4种不同方式(只读、只写、删除、修改),而且允许用户利用这8个等级的4种方式对每一个表自由地进行定义。   定义安全保密性的方法一般有如下几种:   a.原则上所有文件都定义为4级,个别优先级特别高的办公室(终端或微机的入网账号)可定义高于4级的级别,反之则定义为低于4的级别。   b.统计文件(表)和数据录入文件一般只对本工作站定义为只写方式,对其它工作站则定义为只读方式。   c.财务等保密文件一般只对中工作站(如财务科等)定义为可写、可改、可删除方式,对其它工作站则定义为只读方式,而且不是每个人都能读,只有级别相同和高级别者才能读。   2.1.2 数据库设计范式分析建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。   数据组织的规范化形式:   在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:  (1) 在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。   (2) 表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。  (3)在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。   (4)在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。   在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。  第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st NF。   第二范式(second normal form,简称 2nd NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。例如,在图
 
Java电子申请系统  l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functional depEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。  第三范式(third normal form,简称 3rd NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2nd NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异!⑸境斐!⑹萑哂嗵蟮认窒螅叵敌褪菘庖×堪垂叵倒娣痘蠼惺菘馍杓啤?nbsp;  2.2 SQL语言介绍  2.2.1 SQL基础  SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、DB2、Microsoft SQL Server、 Access、 Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。MS SQL Server 就是用的Transact- SQL。  SQL语言有着非常突出的优点,主要是:  a. 非过程化语言  b. 统一的语言  c. 是所有关系数据库的公共语言  非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。  统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。  SQL为许多任务提供了命令,其中包括:  a. 查询数据  b. 在表中插入、修改和删除记录  c. 建立、修改和删除数据对象  d. 控制对数据和数据对象的存取  e. 保证数据库一致性和完整性  以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。  所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。   2.2.2 SQL语句  SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:  DML(Data Manipulation Language,数据操作语言):用于检索或者修改数据;   DDL(Data Definition Language,数据定义语言):用于定义数据的结构,比如 创建、修改或者删除数据库对象;   DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。  DML组可以细分为以下的几个语句:  SELECT:用于检索数据;  INSERT:用于增加数据到数据库;  UPDATE:用于从数据库中修改现存的数据;  DELETE:用于从数据库中删除数据。  DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:  CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX  下面是一个简单SQL语句的例子:  我们使用SQL语句来从EG_UUSER表中检索USERID和USERNAME两个字段。  SELECT USERID,USERNAME FROM EG_UUSER  2.2.2.1 DDL与DML  数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括 rop 语句。?    数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。  用于修改数据库内容的 SQL 语句主要有以下三个:   (1) Insert,向一个表中加入新的数据行   (2) Delete,从一个表中删除数据行   (3) Update,更改数据库中已经存在的数据   Insert标准语法:   INSERT INTO table_name (col1, col2...) VALUES(value1, value2...)  下例要将USERID为'A00001'作为一个新的用户ID加入EG_UAUTHORITY表中  INSERT  INTO  EG_UAUTHORITY (USERID, USERAUTHORITY)  VALUES ('A00001', '1')  Update语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义,Set子句则指定要更新哪些列并计算它们的值。Update语句总是包含Where语句,而且Update语句比较危险,所以您必须明确地认识到Where语句的重要性,Where语句被用来指定需要更新的行。  标准语法:  UPDATE table_name  SET columnname1 = value1  [, columname2 = value2]...  WHERE search_condition  Delete 语句标准语法:  DELETE FROM tablename WHERE condition  2.2.2.2 复杂操作实现在信息管理系统中,我们往往会遇到归类、汇总、映射、索引、子查询等复杂操作,相应的支持与实现如下:  (1) GROUP BY方法  GROUP BY子句语法为:   SELECT column1, SUM(column2)  FROM "list-of-tables"  GROUP BY "column-list";   这个GROUP BY子句将集中所有的行在一起,它包含了指定列的数据以及允许合计函数来计算一个或者多个列。  (2) 组合条件和布尔运算符  以下的SQL语句中就含有组合条件:  SELECT column1, SUM(column2)  FROM "list-of-tables"  WHERE "condition1" AND "condition2";
 
Java电子申请系统 第3章 应用系统开发工具  3.1 Struts架构及MVC开发模式介绍  Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式[4]"分离显示逻辑和业务逻辑"的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2[4]的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。    Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,如 JDBC / EJB ,以及其它第三方类库,如 Hibernate / iBATIS ,或者 Object Relational Bridge(对象关系桥)。在视图层,Struts能够与JSP,包括 JSTL 与 JSF,以及 Velocity 模板,XSLT 与其它表示层技术。 Struts 为每个专业的 Web 应用程序做背后的支撑,帮助为你的应用创建一个扩展的开发环境。    3.1.1 Struts的体系结构与工作原理    MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图1所示:       . 若图片无法显示请联系QQ3710167                 图2-1    Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的体系结构与工作原理如下图2所示: .. 若图片无法显示请联系QQ3710167图 2-2   从图2中我们可以知道,Struts的体系结构包括模型(Model),视图(View)和控制器(Controller)三部分。   下面让我们从MVC角度来看看struts的体系结构(Model 2)与工作原理:    1)模型(Model)[4]    在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组ActinForm Bean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。 小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。   2)视图(View)[4]   视图主要由JSP建立,struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。目前的标签库包括:Bean Tags、HTML tags、Logic Tags、Nested Tags 以及Template Tags等。   3)控制器(Controller)[4]   在struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。struts-config.xml 文件配置控制器。   3.1.2从struts的组件来看Struts 的工作原理   对于Struts 如何控制、处理客户请求,让我们通过对struts的四个核心组件介绍来具体说明。这四个组件就是:ActionServlet、Action Classes,Action Mapping以及ActionFrom Bean。   1) Struts ActionServlet   ActionServlet继承自javax.servlet.http.HttpServlet类,其在Struts 体系结构中扮演的角色失控制器,控制器ActionServlet主要负责将HTTP的客户请求信息组装后,根据配置文件的指定描述,转发到适当的处理器。   按照Servelt的标准,所有得Servlet必须在web配置文件(web.xml)声明。同样,ActoinServlet必须在Web Application配置文件(web.xml)中描述。   当用户向服务器端提交请求的时候,实际上信息是首先发送到控制器ActionServlet,一旦控制器获得了请求,其就会将请求信息传交给一些辅助类(help classes)处理。这些辅助类知道如何去处理与请求信息所对应的业务操作。在Struts中,这个辅助类就是org.apache.struts.action.Action。通常开发者需要自己继承Aciton类,从而实现自己的Action实例。   2) Struts Action Classes   一个Action 类的角色,就像客户请求动作和业务逻辑处理之间的一个适配器(Adaptor),其功能就是将请求与业务逻辑分开。这样的分离,使得客户请求和Action类之间可以有多个点对点的映射。而且Action类通常还提供了其它的辅助功能,比如:认证(authorization)、日志(logging)和数据验证(validation)。   3) Struts ActionMapping   将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServelt将ActionMapping传送到Action类的perform()方法,Action将使用ActionMapping的findForward()方法,此方法返回一个指定名称的ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null。   4) Struts ActionForm Bean   一个应用系统的消息转移(或者说状态转移)的非持久性数据存储,是由ActionForm Bean的负责保持的。   ActionForm的主要功能就是为Action的操作提供与客户表单相映射的数据(如果在客户指定的情况下,还包括对数据进行校验)。Action负责对系统数据状态的保持,而Action则负责根据业务逻辑的需要,对数据状态进行修改,在改变系统状态后,ActionForm则自动的回写新的数据状态并保持。   在ActionForm的使用中,Struts提倡使用到值对象。这样将客户或开发人员,对数据状态与对象状态能够更加清晰的理解和使用。   对于每一个客户请求,Struts 体系结构在处理ActionForm的时候,一般需要经历如下几个步骤:   1) 检查Action的映射,确定Action中已经配置了对ActionForm的映射;   2) 根据name属性,查找form bean的配置信息;   3)检查Action的formbean的使用范围,确定在此范围下,是否已经有此form bean的实例;   4)假如当前范围下,已经存在了此form bean的实例,而是对当前请求来说,是同一种类型的话,那么就重用;   5) 否则,就重新构建一个form bean的实例;   6)form bean的reset()方法备调用;   7) 调用对应的setter方法,对状态属性赋值;   8) 如果validatede的属性北设置为true,那么就调用form bean的validate()方法。   如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行。  3.2 JAVA编程语言介绍  3.2.1 背景 1991年,SUN MicroSystem公司的Jame Gosling、 Bill Joe等人 ,为在电视、控
 
Java电子申请系统   制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件(即一种橡树的名字),但当时并没有引起人们的注意,直到1994年下半年,Internet的迅猛发展,环球信息网WWW的快速增长,促进了 Java 语 言研制的进展,使得它逐渐成为Internet上受欢迎的开发与编程语言,一些著 名的计算机公司纷纷购买了Java 语言的使用权,如 Mi-croSoft、 IBM、 Netscape、Novell、Apple、DEC、SGI等,因此 ,Java语言被美国的著名杂志 PC Magazine 评为1995年十大优秀科技产品,(计算机类就此一项入选),随之 大量出现了用Java编写的软件产品,受到工业界的重视与好评,认为"Java是八十年代以来计算机界的一件大事",微软总裁比尔·盖茨在悄悄地观察了一 段时间后,不无感慨地说:"Java是长时间以来最卓越的程序设计语言",并确定 微软整个软件开发的战略从PC单机时代向着以网络为中心的计算时代转移,购买Java则是他的重大战略决策的实施部署。因此,Java的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。   3.2.2 Java语言对软件开发技术的影响   工业界不少人预言:"Java语言的出现,将会引起一场软件革命",这是因为传统的软件往往都是与具体的实现环境有关,换了一个环境就需要作一番改动,耗时费力,而Java语言能在执行码(二进制码)上兼容,这样以前所开发的软件就能运行在不同的机器上,只要所用的机器能提供Java语言解释器即可。  Java语言将对未来软件的开发产生影响,可从如下几个方面考虑:  (1)软件的需求分析:可将用户的需求进行动态的、可视化描述,以提供设计者更加直观的要求。而用户的需求是各色各样的,不受地区、行业、部门、爱好的影响,都可以用Java语言描述清楚。  (2)软件的开发方法:由于Java语言的面向目标的特性,所以完全可以用O-O的技术与方法来开发,这是符合最新的软件开发规范要求的。  (3)Java语言的动画效果远比GUI技术更加逼真,尤其是利用WWW提供的巨大动画资源空间,可以共享全世界的动态画面的资源。  (4)软件最终产品:用Java语言开发的软件可以具有可视化、可听化、可操作化的效果,这要比电视、电影的效果更为理想,因为它可以做到"即时、交互、动画与动作",要它停就停,要它继续就继续,而这是在电影与电视播放过程中难以做到的。  (5)其它:使用Java语言对开发效益、开发价值都有比较明显的影响  3.2.3 Java语言的应用前景   Java语言有着广泛的应用前景,大体上可以从以下几个方面来考虑其应用:  (1)所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等;  (2)计算过程的可视化、可操作化的软件的开发;  (3)动态画面的设计,包括图形图像的调用;  (4)交互操作的设计(选择交互、定向交互、控制流程等);  (5)Internet的系统管理功能模块的设计,包括Web页面的动态设计、管理和交互操作设计等;  (6)Intranet(企业内部网)上的软件开发(直接面向企业内部用户的软件);  (7)与各类数据库连接查询的SQL语句实现;  (8)其它应用类型的程序。  3.2.4 Java的特点  Java是一个广泛使用的网络编程语言,它是一种新的计算概念。  首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。  其次,它最大限度地利用了网络,Java的小应用程序(applet)可在网络上传输而不受CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。  下面我们分别从这三个方面来讨论Java的特点,然后通过把Java与C,C++相比进一步指出它所具有的优点。  一、Java语言  Java语言有下面一些特点:简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。  (1)简单性  Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持也只有215KB左右。  (2)面向对象  Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。  (3)分布性  Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。  (4)鲁棒性Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。  (5)安全性用于网络、分布环境下的Java必须要防止病毒的入侵。Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用"特洛伊"木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。  (6)体系结构中立Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。  (7)可移植性  与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java系统本身也具有可移植性。  (8)解释执行  Java解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。  (9)高性能和其它解释执行的语言如BASIC、TCL不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。  (10)多线程  多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。  (11)动态性  Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。  二、JavaApplet  Java语言的特性使它可以最大限度地利用网络。Applet是Java的小应用程序,它是动态、安全、跨平台的网络应用程序。JavaApplet嵌入HTML语言,通过主页发布到Internet。网络用户访问服务器的Applet时,这些Applet从网络上进行传输,然后在支持Java的浏览器中运行。由于Java语言的安全机制,用户一旦载入Applet,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担心病毒的入侵。虽然Applet可以和图像、声音、动画等一样从网络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态地进行改变,而不仅仅是动画的显示和声音的播放。  三、丰富的类库  Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。  (1)语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。  (2)实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。  (3)输入输出包用统一的"流"模型来实现所有格式的I/O,包括文件系统、网络、输入/出设备等。  (4)低级网络包用于实现Socket编程。  (5)抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器。  
 
Java电子申请系统   (6)网络包支持Internet的TCP/IP协议,提供了与Internet的接口。它支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。  四、Java和C、C++  对于变量声明、参数传递、操作符、流控制等,Java使用了和C、C++相同的传统,使得熟悉C、C++的程序员能很方便地进行编程。同时,Java为了实现其简单、鲁棒、安全等特性,也摒弃了C和C++中许多不合理的内容。  (1)全局变量  Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如:Class GlobalVar{       Public static global_var;}在类GlobalVar中定义变量global_var为public  static,使得其它类可以访问和修改该变量。  Java对全局变量进行了更好的封装。而在C和C++中,依赖于不加封装的全局变量常常造成系统的崩溃。  (2)Goto  Java不支持C、C++中的goto语句,而是通过例外处理语句try,Catch,final等来代替C、C++中用goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。  (3)指针  指针是C、C++中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性,造成系统的崩溃。而Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在Java中实现,良好地解决了数组访问越界这一C、C++中不作检查的错误。  (4)内存管理  在C中,程序员通过库函数malloc()和free()来分配和释放内存,C++中则通过运算符new和delete来分配和释放内存。再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。  (5)数据类型的支持  在C、C++中,对于不同的平台,编译器对于简单数据类型如int,float等分别分配不同长度的字节数,例如:int在IBMPC中为16位,在VAX-11中为32位,这导致了代码的不可移植性,但在Java中,对于这些数据类型总是分配固定长度的位数,如对int型,它总占32位,这就保证了Java的平台无关性。  (6)类型转换  在C、C++中,可以通过指针进行任意的类型转换,常常带来不安全性,而Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。  (7)头文件  C、C++中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。而Java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,Java中用import语句来与其它类进行通讯,以便使用它们的方法。  (8)结构和联合  C、C++中的结构和联合中所有成员均为公有,这就带来了安全性问题。Java中不包含结构和联合,所有的内容都封装在类中。  (9)预处理  C、C++中用宏定义来实现的代码给程序的可读性带来了困难。在Java中,不支持宏,它通过关键字final来声明一个常量,以实现宏定义中广泛使用的常量定义。  
 
  Java电子申请系统第4章 电子申请系统设计分析  以下是对该系统的部分功能(新用户信息登记功能)的设计分析:  4.1用户信息登记(K2-02-01)  (1)概要  (2)画面形象  (3)输入(引入的信息)  (4)指示项目  (5)数据结构信息  (6)事件  (7)输入值校验图4-1 新的用户信息登记的画面?若图片无法显示请联系QQ3710167
表 4-1 输入(引入的信息)




项目

项目名

必須

传入的信息



              1

错误信息



4.5 新用户信息登记功能(K2-02-02F)


              2

用户ID



4.5 新用户信息登记功能(K2-02-02F)


              3

第一阶层名(第一阶层目号)



4.5 新用户信息登记功能(K2-02-02F)


              4

窗口名(部署代码)



4.5 新用户信息登记功能(K2-02-02F)


              5

负担类别



4.5 新用户信息登记功能(K2-02-02F)


              6

用户名



4.5 新用户信息登记功能(K2-02-02F)


              7

Mail地址



4.5 新用户信息登记功能(K2-02-02F)


              8

通知mail



4.5 新用户信息登记功能(K2-02-02F)


              9

初期密码



4.5 新用户信息登记功能(K2-02-02F)
 
表4-2 指示项目




项目

项目名

表示值

 



              1

用户ID

[输入信息.用户ID]




              2

第一层名
 

在[输入信息.第一层名]中做同意要素的状态选择




              3

窗口名
 

在[输入信息. 窗口名] 中做同意要素的状态选择




              4

负担类别(管理者)

在[输入信息. 负担类别] 中检查'1'的情况




              5

负担类别(系统管理者)

在[输入信息. 负担类别] 中检查'2'的情况




              6

用户名

[输入信息. 用户名]




              7

mail地址

[输入信息.mail地址]




              8

通知mail

[输入信息.通知mail]
'1’的情况是指定'接受信息'的选择状态
'0'的情况是指定'不要'的选择状态
(默认是指定'接受信息'的选择状态)




              9

初期密码

[输入信息. 初期密码]




          10

错误信息

输入(传入信息)的错误信息・・・(默认为空白)


 
 
 
 
 
表4‑3 数据结构信息




项目

项目名

form名

Type

属性

 


           1

用户ID

用户登陆确认

Text

半角英数字、13位、左侧




           2

第一层目号
 

Select

连接实用程序功能参照4.2。
取得第一层目号和第一层名、在②的下拉中设定




           3

部署代码
 

Select

②的下拉项、指定③。
连接实用程序功能参照4.2的(3)要求方法。




           4

负担类别(担当者)

Checkbox

value='1'




           5

负担类别(系统管理者)

Checkbox

value='2'




           6

用户名

Text

全角文字、40位、左侧




           7

Mail地址

Text

Mail地址形式、60位、左侧




           8

通知mail

Radio

'接受信息'='1'
'不要'='0'




           9

初期密码

Text

半角英数字、10位、左侧




       10

输入完了

Submit






       11

返回



Button




表 4-4 事件信息




事件

项目名

迁移先/功能要求等

送信参数



按钮

输入完了

4.2 新用户登记信息确认 (K2-02-02)

用户登记确认Form


返回

返回前面的画面

-
「输入完了」按钮按下时
表4-5 输入值检查内容




项目

项目名

检查内容

错误时的信息


                 1

用户ID

半角英数字

用户ID必须为半角英数字


                 2

必須

用户ID必须输入


                 3

文字列长

用户ID长度过大


                 4

第一层名

必須

第一阶层窗口必须选择


                 5

窗口名

必須

第二阶层窗口必须选择


                 6

负担类别

必須

负担类别必须选择


                 7

用户名

必須

用户名必须输入


                 8

文字列长

用户名长度过长


                 9

禁止空格

用户名中含有空格


             10

Mail地址

文字列长

mail地址长度过长


             11

Mail地址形式检查

mail地址格式不正确
 
4.2新用户登记信息确认 (K2-02-02)
(1)概要:
(2)画面形象
(3)输入(引入的信息)
(4)表示项目
(5)形式信息
(6)事件
(7)输入值校验




































 











②②





①①





 


图 4-2 新用户登记信息确认
表 4-6 输入信息




 

用户ID



4.5 新用户信息登记功能(K2-02-02F)


              1

窗口名



4.5 新用户信息登记功能(K2-02-02F)


              2

部署代码



4.5 新用户信息登记功能(K2-02-02F)


              3

负担类别



4.5 新用户信息登记功能(K2-02-02F)


              4

用户名



4.5 新用户信息登记功能(K2-02-02F)


              5

Mail地址

-

4.5 新用户信息登记功能(K2-02-02F)


              6

通知mail



4.5 新用户信息登记功能(K2-02-02F)


              7

初期密码



4.5 新用户信息登记功能(K2-02-02F)
 
 
表4-7 表示项目




项目

项目名

表示值

 



              1

用户ID

输入(引入的信息).用户ID




              2

窗口名

输入(引入的信息).窗口名




              3

负担类别

输入(引入的信息).负担类别(可多选)
'1'的含义为表示'担当者'的場合
'2'的含义为表示'系统管理者'的場合


 


              4

用户名

输入(引入的信息).用户名




              5

Mail地址

输入(引入的信息).mail地址




              6

通知mail

输入(引入的信息).通知mail
'1'的情况表示'接受信息'
'0'的情况表示'不要'




              7

初期密码

输入(引入的信息).初期密码
用「**********」表示


 
表 4-8 形式信息




项目

项目名

form名

type

属性

 


           1

用户ID

用户登记

hidden

[输入(引入的信息). 用户ID]




           2

部署代码

hidden

[输入(引入的信息).部署代码]




           3

负担类别

hidden

[输入(引入的信息).负担类别]




           4

用户名

hidden

[输入(引入的信息).用户名]




           5

Mail地址

hidden

[输入(引入的信息).mail地址]




           6

通知mail

hidden

[输入(引入的信息).通知mail]




           7

初期密码

hidden

[输入(引入的信息).初期密码]




           8

決定

submit






           9

返回



button




表4-9事件信息




事件

项目名

转送到/功能要求等


按钮

決定

 4.3新用户信息登记结果 (K2-02-03)


返回

返回前面的画面
 

Java电子申请系统
4.3新用户信息登记结果(K2-02-03)
(1)概要
(2)画面形象
(3)输入(引入的信息)
(4)表示项目
(5)形式信息
(6)事件
(7)输入值校验
新用户信息登记结果画面  表示了新用户信息登记结果的形象

图 4-3 新用户信息登记结果画面
 
表4-10 输入(引入的信息)




项目

项目名

必須

引入源



              1

登记结果



错误!(未找到引用源)
 
表 4-11 表示项目




项目

项目名

初期值

 





登记结果

输入(引入的信息)的登记结果






链接1

[链接] 固定:”用户信息的新规登记”






链接2

[链接] 固定:”用户检索、用户一览”


 
表 4-12  事件信息




事件

项目名

转送到/功能要求等


链接

链接1

错误!(未找到引用源)


链接

链接2

用户検索、用户一覧表示机能
 
 
4.4新用户登记画面表示功能(K2-02-01F)
(1)概要:
下面的画面表示新用户登记信息确认
(2)画面形象
(3)输入(引入的信息)
(4)表示项目
(5)形式信息
(6)事件
(7)输入值校验
 
表 4-13 输入信息




项目

项目名

必須

属性

位数

备注


           1

用户ID



 

 

 


           2

第一层名
(第一层目号)



 

 

 


           3

窗口名(部署代码)



 

 

 


           4

负担类别



 

 

 


           5

用户名



 

 

 


           6

Mail地址

-

 

 

 


           7

通知mail



 

 

 


           8

初期密码



 

 

 
 
表 4-14  输出(引入的信息)




项目

项目名

备注


           1

错误信息

错误发生时设定


 

用户ID

输入信息.用户ID


           2

窗口代码

输入信息.窗口代码


           3

负担类别

输入信息.负担类别


           4

用户名

输入信息.用户名


           5

Mail地址

输入信息.mail地址


           6

通知mail

输入信息.通知mail


           7

初期密码

输入信息.初期密码
 
 
 
表 4-15  引入的点




处理结果

引入的点


正常

4.1错误!未找到引用源


错误

4.2 用户信息登记(K2-02-01)


异常

系统异常画面(C1-06-01)
处理内容:输入值校验
表4-16输入校验值




项目

项目名

校验内容

Error时的信息


           1

用户ID

半角英数字

K5031301/用户ID必须为半角英数字


           2

必須

K5031302/用户ID必须输入


           3

文字列长

K5031303/用户ID长度过长


           4

窗口第一层名

必須

K5031304/第一阶层窗口必须选择


           5

窗口名

必須若图片无法显示请联系QQ3710167

K5031305/第二阶层窗口必须选择


           6

负担类别

必須

K5031306/负担类别必须选择


           7

用户名

必須

K5031307/用户名必须输入


           8

文字列长

K5031308/用户名长度过长


           9

mail地址

文字列长

K5031309/mail地址长度过长


       10

mail地址形式校验

K5031310/mail地址格式不正确


       11

初期密码
 

必須

K5031311/初期密码必须输入


       12

半角英数字

K5031312/初期密码必须为半角英数字


       13

文字列长

K5031313/初期密码长度过长
4.6新用户信息登记功能(K2-02-03F)
(1) 概要
做新用户信息登记
(2)输入信息
表4‑17 输入信息




项目

项目名

必須

属性

位数

备注


           1

用户ID



 

 

 


           2

窗口代码



 

 

 


           3

负担类别



 

 

 


           4

用户名



 

 

 


           5

mail地址

-

 

 

 


           6

通知mail



 

 

 


           7

初期密码



 

 

 
 
 
表4-18 正常时以及error時的输出(引入的信息)




项目

项目名

备注


           1

登记结果

正常的场合的用户信息的登记处理的结果
・新登记的用户信息


在error发生時设定error内容
 
表4-19 引入源




处理结果

引入源


正常

错误!未找到引用源。


error

错误!未找到引用源。


异常

error画面(C1-06-01)
(A)         用户信息登记
表4-19 用户信息登记处理




处理順序

处理内容

备注


                             1

取得连接

 


                             2

开始处理

 


                             3

在用户框上登记用户信息

错误!未找到引用源。


                             4

在密码框上登记密码

错误!未找到引用源。


                             5

在权限框中登记权限
※多选情况下一个一个的登记

表 错误!文当中没有制定样式的文字。


                             6

用户信息的登记处理的结果判定在正常的情况下提交(Commit)来结束处理。
用户信息的登记处理的结果判定在error的情况下回滚(Rollback)来结束处理。

 


                             7

返回连接

 


                             8

终了

 
 
表4-20 用户信息登记处理的结果判定




结果

判定内容


正常

用户信息的登记处理正常终了
・正常時的信息: 用户信息を新規登记しました


error

用户信息的登记时发生重复error
・error時的信息: (K1020301)用户IDが既に使用されています


异常

用户信息的删除处理中发生异常的情况
 
 
表4-21 用户信息登记




项目

登记内容

PK

备注


           1

用户表.用户ID = 输入信息.用户ID



 


           2

用户表.用户名 = 输入信息.用户名

 

 


           3

用户表.部署代码 = 输入信息.部署代码

 

 


           4

用户表.Email地址 = 输入信息.Email地址

 

 


           5

用户表.是否接受Email = 输入信息. 是否接受Email

 

 


           6

用户表.删除标志 = '0'

 

 
 
表4-22密码登记




项目

登记内容

PK

备注


           1

密码表.用户ID = 输入信息.用户ID



 


           2

密码表.密码 = 输入信息.初期密码

 

通过MD5加密处理后得到的值


           3

密码表.最终密码更新日 = Oracle系统時間

 

使用sysdate
 
表4-23 权限登记




项目

登记内容

PK

备注


           1

权限表.用户ID = 输入信息.用户ID



 


           2

权限表.权限 = 输入信息.负担类别



 
 

Java电子申请系统
第5章 应用程序设计
 
根据前一章节的分析,下面我们依照MVC模型开发过程逐步介绍系统的开发步骤。
5.1 配置文件
    Struts作为一个J2EE 框架,很容易和你的web 应用结合起来。建立标准的web 应用程序后需要配置/WEB_ROOT/WEB-INF/classes/web.xml以满足Struts需要,还有,可以用相对路径的方式指明Struts应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml,该文件定义了Struts应用中的Action,ActionForm,插件,资源引用等信息。config/sub1 以相对路径的方式指明子应用程序的配置文件位置。
5.1.1 web.xml
    1、 在配置文件中映射ActionServlet,ActionServlet用于接受所有访问者的请求。在Struts应用中,所有对应用程序的请求,都会被WEB SERVER 定向到ActionServlet进行统一控制、分配处理,ActionServlet可以看作是Struts框架的核心,枢纽。
    2、 配置servlet映射,通过servlet映射可以将用户访问web应用的扩展名映射到具体处理的servlet。

 
    action
    *.do
 

    3、配置标签库,标签库是Struts 自带的一些组件库,采用JSP 规范中Tag-lib的方式供大家使用,正是因为存在这么丰富的标签库,使得采用Struts的开发才显得这么方便,高效。
    最后,一个完整的web.xml文件请参照源代码。
5.1.2 struts-config.xml
    1、在配置文件中设置Data Sources Configuration,数据源的配置参数由eGovUtil.conf配置文件提供
    2、Action-mapping 映射
    path="/StaffInfoListLoginAction"
    type="info.disclosure.sys.eg.action.StaffInfoListLoginAction"
    name="StaffInfoListLoginForm"
    validate="true"
    input="/jsp/K/staffInfoListLogin.jsp"
    scope="request">
   
   

  
 最后,一个完整的struts-config.xml文件请参照源代码。
5.2 页面设计
    在Struts结构中我们使用.jsp文件来进行页面设计,一般情况下,该文件包含
5.2.1页面代码文件
staffInfoListLogin.jsp
staffInfoListLoginConfirm.jsp
staffInfoListLoginResult.jsp
其中staffInfoListLogin.jsp页面中两个下拉框的联动功能由下面的JS代码实现
5.2.1.1 dodo()方法代码
function dodo(){
    var index = document.forms[0].orgId.selectedIndex;
    var key = document.forms[0].win1.value;
    var str = document.forms[0].hiddenForm.value;
    var strV= document.forms[0].hiddenFormValue.value;
    var hidden="<%=request.getAttribute("hiddenOrgId")%>";
    var values = str.split(",");
    var values2=strV.split(",");
    document.forms[0].orgId.length = 1;
    document.forms[0].orgId.value = "";
    document.forms[0].orgId.text = "";
    for(var i=0; i       var pos1 = values[i].indexOf(key + "_");
       var pos2 = values[i].indexOf("_");
       if(pos1 > -1){
       var len = document.forms[0].orgId.options.length;
       document.forms[0].orgId.options.length = len + 1;
    document.forms[0].orgId.options[len].value=values[i].substr(pos2 + 1);
    document.forms[0].orgId.options[len].text=values2[i].substr(pos2 + 1);
       }
    }
    if(index < document.forms[0].orgId.options.length){
       document.forms[0].orgId.selectedIndex = index;
    }else{
    document.forms[0].orgId.value="<%=request.getAttribute("hiddenOrgId")%>;
    }
}  
5.3 处理模块
5.3.1  Action处理代码文件(StaffInfoListLoginAction.java)
在Action处理中主要对页面的请求进行处理,调用逻辑处理或者向FormBean存取值实现整个后台处理向页面返回信息。
(1)actionExecute()方法实现页面的跳转功能
(2)setFormValue()和getSecondList()方法实现页面联动
(3)changeValue()方法实现给第二个页面设置初始值
(4)checkField()方法实现第一个页面输入值
(5)loginNewUser()方法实现往数据库中存值
5.3.2  FormBean设计(StaffInfoListLoginForm.java)
StaffInfoListLoginForm的主要功能就是为Action的操作提供与客户表单相映射的数据。在改变系统状态后,StaffInfoListLoginForm则自动的回写新的数据状态并保持。
5.3.3  业务逻辑BEAN(StaffInfoListLoginLogic.java)
    业务逻辑Bean中主要实现对数据库的操作和复杂的业务逻辑的处理。实现数据的录入、更新、删除。
registNewUser()方法实现将管理员输入的用户信息存到数据库中。
setUserAuthority()方法实现将管理员输入的用户权限信息存到数据库中
5.4 单体测试
     5.4.1  测试的分类
软件测试分为黑盒测试和白盒子测试,任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。下面就介绍一下这两中测试方法:
(1)黑盒测试:软件测试员只需要知道软件要做什么即可-而无法看到盒子中的具体内容。
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
① 是否有不正确或遗漏的功能?
② 在接口上,输入是否能正确的接受?能否输出正确的结果?
③        是否有数据结构错误或外部信息(例如数据文件)访问错误?
④        性能上是否能够满足要求?
⑤        是否有初始化或终止性错误?
(2)白盒测试:软件测试员可以访问程序员的代码,并且通过检查代码来协助测试-可以看到盒子里面。  
软件的白盒测试所谓的测试方案包括具体的测试目的,应该输入的测试数据和预期的结果。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。白盒测试主要分为两种测试
 

Java电子申请系统
方案:
① 逻辑覆盖:有选择地执行程序中某些最有代表性的通路是对穷尽测试的唯一可行的替代办法。测试数据执行可以划分成:语句逻辑,判定逻辑,条件逻辑,条件组合覆盖,判定/条件覆盖,点覆盖,边覆盖,路径覆盖。
② 控制结构测试:是根据程序的控制结构设计测试数据的技术。包括:基本路经测试,条件测试,循环测试。
以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。
5.4.2 本次开发中的单体测试
在本次的开发中,根据项目组的要求采用的是黑盒测试法,也就是只使用输入数据和输出数据的比较来证明所有的功能已经能实现。
在测试中,我们不断地向页面上输入测试数据,点击按钮,然后再到数据库中,是否和我们预期的测试数据一致,如果一致的话,就能证明我们的功能能实现。而测试点数是根据代码量的7%来决定的,基本测试点如下:
5.4.2.1 第一个页面及功能测试点:
(1)页面内容位置是否正确显示。
(2)客户端检验出错时是否正确显示错误信息。
(3)服务器端检验出错时是否正确显示错误信息。
(4)页面的后退按钮是否好用,能否实现回到前页面。
5.4.2.2 第二个页面及功能测试点:
(1)页面内容位置是否正确显示。
(2)页面的后退按钮是否好用,能否实现回到前页面。
(3)页面显示的值是否和前页面传过来的值一致。
(4)页面确定按钮是否好用。
5.4.2.3第二个页面及功能测试点:
(1)页面内容位置是否正确显示。
(2)查看数据库看前页面传得值是否存到数据库中。
(3)数据保存到数据库出错时错误信息显示是否正确。
(4)查看页面上两个连接功能是否实现。
 
结   论
测试和完成文档化的开发贯穿于整个开发过程,在初期检查阶段,即review阶段,需要完成的文档有review票和bug票;在单体测试阶段,我们需要完成单体测试书和bug票;而通过测试最后提交的结果除了包括程序代码外,还需要提交review票、bug票、单体测试书、DB dump list书(数据库操作记录)、Log纪录(程序运行记录)。
开发中的文档将在程序的维护和可扩展方面,其中主要是维护方面有重要的作用。
 

Java电子申请系统
参考文献
 
[1] http://jakarta.apache.org/struts/.Struts的官方网站,2006 .5
[2] http://jakarta.apache.org/struts/userGuide .Struts用户手册(User Guide),2006.5
[3] 王行言.Oracle数据库应用开发基础[M].北京:清华大学出版社,2000:102-108
[4] 孙卫琴.精通Struts: 基于MVC的 Java Web 设计与开发[M].北京:电子工业出版社,2002:115-202
[5] 朱晴婷等.Visual C++程序设计基础与实例分析[M]. 北京:清华大学出版社,2005:98-101
[6] 麦中凡等.C#编程语言[M].北京:北京航空航天大学出版社,2001:164-166
[7] 陈湘.ASP.NET与网站开发编程实战[M].北京:清华大学出版社,2002:154-155致  谢
经过两个多月的毕业设计,我在邱老师和张老师耐心的指导下顺利的完成了论文的撰写并进行了其他的工作。
在这段时间里,我不仅复习了自己以前所学的理论知识,而且通过大量的实践,巩固了理论知识,做到了理论联系实际,大大的提高了自己的实践动手能力。在设计的过程中,我使用的开发工具主要是Eclipse,结合Struts架构和MVC开发模式开发语言是JAVA,数据层使用了Oracal9i数据库。同时通过本次毕业设计使我了解了大连华信公司的电子商务的开发过程,对JAVA语言有了一定的了解,编程技术在原来的基础上有了很大的提高,进一步的体会到模块化的程序设计和开发过程文档化的好处。
总之,在整个毕业设计的过程中,不仅巩固了理论知识,而且提高了解决实际问题的能力,我会在以后的学习生活中继续努力。最后,再一次感谢我的指导老师邱建老师对我的关心和大力支持,我将以加倍的努力作为对老师和学校的回报。并在此对母校致以深深的谢意。
  • 上一篇资讯: C++财务管理系统
  • 下一篇资讯: 现代公关礼仪
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师