资源描述
摘 要
名片管理系统是用于辅助个人完成其名片有序管理的计算机软件系统,系统实施的目的旨在帮助用户完成其私人名片管理的数字化,以提供较手工方式下更高的效率和更低的出错率。
作为整个办公自动化系统的一部分,名片管理系统要实现的目标是:将用户目前在处理名片管理工作时所采用的手工处理方式进行计算机化,从而与整个办公自动化系统的数字化趋势相协调,以求为用户提供更为专业和高效的个人管理服务。
随着商务通的出现,虽然实现了可构造查询条件的名片电子化管理,但价格昂贵,难以在广大客户中进行全面普及。因此开发一个既可以存储信息,又可以进行更新、查询、删除等功能,同时价格又能为广大消费者接受的多功能名片名片就显得十分必要。
关键词:名片,管理系统,SQL SERVER,模块 strus
目录
前言 9
第一章 引言 10
1.1设计背景 10
1.2 设计方法 11
第二章 开发开台与相关技术 12
2.1 Java语言 12
2.2 JDK工具 14
2.3 J2EE的概念 14
2.4 JSP的概念 15
2.5 JavaBean的概念 15
2.6 Java Servlet的概念 16
2.7 Session对象 16
2.8 有关XML简介 17
2.9 J2EE的体系与模式 17
2.10 J2EE的容器类型 18
2.11 Eclipse 3.2工具及Tomcat 5.5 服务器 19
2.12 Struts 简介 20
第三章 名片管理系统需求分析 23
3.1 功能性需求 23
3.2 界面需求 24
3.3 性能需求 25
3.4 运行环境需求 25
3.5 未来需求 26
第四章 系统总体设计 27
4.1系统功能、性能概述 27
4.2模块结构 28
第五章 系统详细设计 29
5.1 数据库设计 29
5.1.1数据库有关设计 29
5.2用户管理模块 30
5.3 名片管理模块 31
5.4公共模块 32
第六章 系统测试与实现 34
6.1 系统测试 34
6.2 数据库的实现 36
6.3 系统实现 37
6.4 各个模块的实现 38
参考文献 48
前言
Java技术已经成为因特网世界的主流软件。近年来,各种Java Web 和J2EE框技术涌现出来,其中最有名的是Struts、Hibernate和Spring。Struts作为第一个基于MVC设计模式的、开源的Java Web 编程框架,在业界受到了广泛的推崇,得到了普遍应用,已经成为一个主流的Web编程框架。Hibernate是一个很受欢迎的ORM工具,比较成功地解决了持久性问题。Spring是最近几年推出的新型的、轻量级的J2EE开源框架,它能支持许多Java Web技术和框架,使得Java/J2EE应用的开发变得更简单、更高效。而随着Eclipse目前已逐渐成为一个主流的Java/J2EE开发工具。
本系统将用Struts开发一个简单的名片管理系统。我们将通过合理的网页框架及MVC设计模式来构建一个网上名片管理系统,实现名片的增、删、改、查等操作。我们将使用Eclipse3.2开发该系统,所用的数据库是Microsoft SQL SERVER2005,所用的Web服务器是Tomcat5.5。界面友好、操作简便。
开发此项目,能够将所学的理论知识与实际应用相结合,并尝试应用最新流行的开发工具,以达到掌握新技术、进一步提高程序开发能力的目的。
第一章 引言
1.1设计背景
联系人越来越多,客户资料越来越难以管理,如何快速找到联系人的资料?手工名片管理早巳经落伍和淘汰,你还在翻着厚重的名片册查找名片么?
信息作为生产力中最活跃的因素,很早就在人类经济生活中发挥着不可替代的作用,但把信息纳入企业经营管理系统中高效处理和应用是在计算机发明以后的50年代末。
目前人们所提到的管理信息系统,通常是指以计算机为工具,对管理信息进行收集、存贮、检索、加工和传递,使其应用于组织机构及企业管理领域的“人-机系统”,该系统是70年代初“后工业经济”时代的产物,在企业管理信息系统在其发展的初期,是单一的人—机系统,系统功能简单,效率低,对管理的作用有限。
进入2 0世纪80年代末,随着计算机网络和通信技术的大力发展,企业管理信息系统进入网络化的发展时期。世界发达国家已建立起了完善的先进的管理信息系统体系,在其社会经济发展领域中发挥着巨大的作用。
我国的管理信息系统大发展是在80年代末90年代初,国家相继建立起了“金卡”、“金关”、金桥“工程,多数企事业单位建立了局域网和广域网管理信息系统。随着世界经济和我国经济逐步向知识经济迈进,无论是基于工业经济的管理信息系统,还是面向少数专家和管理人员的专家系统 (ES)或决策支持系统 (DSS),其处理对象和服务对象,自身的系统结构,处理能力,都有了进一步的发展。
随着社会发展的日新月异,商业来往日浙广泛,人们之间的交往的益频繁,于是,人们手中便出现了名目敏多的名片、名址录、名片夹等对交友或客户进行管理的工具,但是一张张名片上的信息虽然不多,却占据了很大的空间;同时,这些传统的手动管理方式存在着不易更新、不易存放、容易丢失、难以备份等重大缺陷;而建立自己的电子文档对名片进行管理虽然克服了以上的缺点,但查询效率低下,特别是当数据量十分庞大时,劣势更加明显。随着商务通的出现,虽然实现了可构造查询条件的名片电子化管理,但价格昂贵,难以在广大客户中进行全面普及。因此开发一个既可以存储信息,又可以进行更新、查询等功能,同时价格又能为广大消费者接受的多功能名片名片就显得十分必要。
项目名称初步定为:名片管理系统(ECMS,Electronic Card Management System)。分为多个子功能模块:用户登录与注册模块、增加模块、修改模块、查询模块等。我们可使用日趋成熟的计算机技术来代替传统的人工模式,来实现信息的现代化管理,这一技术具有手工管理所无法比拟的优点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本底等。这些优点能够极大地提高信息管理的效率,使我们在市场经济的发展过程中具有一定的竞争优势,也是实现科学化,正规化,现代化的重要条件。 用计算机制作的名片信息管理系统还可以通过功能强大的Internet网及时的向朋友传递重要信息,有助于商户间的信息互动,为更好地把握商机起到了一定的促进作用!
名片(Personal Finance)并不是一个新鲜词,简单地说就是开源节流、管理好您的钱(Money Management)。想想看,您是如何管理您的通讯信息的?其实您在日常生活中不自觉地运用着各种管理方法。但科学管理的前提是建立正确的管理观、正确管理科学管理的含义。
1.2 设计方法
本系统是使用MVC设计模式方法进行本系统.
MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点
第二章 开发开台与相关技术
2.1 Java语言
Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
具体来说,它具有如下特性:
简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。
下面我们将重点介绍Java语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性
(1) 面向对象
面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
(2) 平台无关性
Java主要靠Java虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了Java芯片,主要使用在网络计算机NC上。
另外,Java芯片的出现也会使Java更容易嵌入到家用电器中。)JVM是Java平台无关的基础,在JVM上,有一个Java解释器用来解释Java编译器编译后的程序。Java编程人员在编写完软件后,通过Java编译器将Java源程序编译为JVM的字节代码。任何一台机器只要配备了Java解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,Java采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了Java的平台无关性。
(3) 分布式
分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。
Java支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,Java提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。
(4) 靠性和安全性
Java最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。Java虽然源于C++,但它消除了许多C++不可靠因素,可以防止许多编程错误。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复
(5) 多线程
线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。
C和C++采用单线程体系结构,而Java却提供了多线程支持。
Java在两方面支持多线程。一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序开发。Java提供了一个类Thread,由它负责启动运行,终止线程,并可检查线程状态。Java的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用Java的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,Java的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java的多线程特性可能就表现不出来。
2.2 JDK工具
JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。
JDK由一个标准类库和一组建立,测试及建立文档的Java实用程序组成。其核心Java API是一些预定义的类库,开发人员需要用这些类来访问Java语言的功能。Java API包括一些重要的语言结构以及基本图形,网络和文件I/O。一般来说,Java API的非I/O部分对于运行Java的所有平台是相同的,而I/O部分则仅在通用Java环境中实现。
2.3 J2EE的概念
J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)
J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2ee体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
2.4 JSP的概念
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
2.5 JavaBean的概念
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBeans 通过提供符合一致性设计模式的公共方法将内部域暴露称为属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 属性。
JavaBean是Sun微系统的一个面向对象的编程接口,它可以让你建可重用应用程序或能在网络中任何主流操作系统平台上配置的程序块,称作组件。像Java applet一样,JavaBeans组件(或“Beans”)能够给予万维网页面交互的能力,例如:计算感兴趣的比率或是根据用户或浏览器的特性改变页面内容。
从用户的观点来看,一个组件可以是一个与你交互的按钮或是一个当你按下按钮它便开始的小计算程序。从一个开发者的观点来看,那个按钮组件和计算器组件是分别被创建的,并且他们可以一起使用或是在不同的应用程序或情况下和不同的组件产生不同的组合来使用
2.6 Java Servlet的概念
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。 它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。
Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
2.7 Session对象
Session:在计算机中,尤其是在网络应用中,称为“会话”。
Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionID是由WWW服务器随机产生的一个由24个字符组成的字符串,
Session解决方案,就是要提供在PHP脚本中定义全局变量的方法,使得这个全局变量在同一个Session中对于所有的PHP脚本都有效。上面我们提到了,Session不是一个简单的时间概念,一个Session中还包括了特定的用户和服务器。因此更详细地讲,在一个Session定义的全局变量的作用范围,是指这个Session所对应的用户所访问的所有PHP。
2.8 有关XML简介
XML(eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型
2.9 J2EE的体系与模式
(1) Java语言系统
在高层次上,Java语言系统看起来与.NET Framework类似。在这两种情况中,源代码都是被翻译成一种中间语言。但是,在.NET平台中,这种中间语言是MSIL,而在Java系统中,是Java Byte Code。在这两种情况中,中间语言被带入到运行环境中。在Framework中,运行环境是Common Language Runtime。对于Java,运行环境是Java虚拟机(Java Virtual Machine)。总体而言,Common Language Runtime和Java虚拟机有类似的功能,并且在技术进步方面,都无可置疑地在发展和彼此交互跃进。
(2) 客户端程序设计模型
J2EE客户端程序设计模型重点集中在与浏览器的交互上。客户端程序设计模型有3部分:Java Applets,Java Servlets和Java Server Pages。
(3) 中间层基础结构
对于J2EE,中间层基础结构是Enterprise Java Beans (EJB)。该规范的当前版本是2.0,可以从网上获得 。与J2EE相当的.NET平台是COM+。
(4) 程序员企业级API
Java Database Connection (JDBC,Java数据库连接) 2.0 – 是用于从Java中访问关系型数据库的API 。这与.NET平台空间中的ADO.NET相当。
(5) 非程序员可见API
最后一部分,非程序员可见API,包括定义了如何将其他产品插入到J2EE中的API,如连接器API,以及J2EE模型中被最近的改进有效替代的API,如JTA(Java Transaction API)。由于从比较微软和Sun公司计划的角度来说,非程序员可见API并不重要,因此在笔者的概述中将不涉及这些方面 (就如同笔者在.NET平台概述中并没有涉及功能相当的API一样)。
2.10 J2EE的容器类型
J2EE 容器为 J2EE 应用程序组件提供运行时支持。J2EE 应用程序组件使用容器的协议和方法访问服务器提供的其他应用程序组件和服务。Application Server 提供了应用程序客户机端容器、applet 容器、Web 容器和 EJB 容器。有关显示容器的示意图,请参见Application Server 体系结构部分。
(1) Web 容器
Web 容器是用于托管 Web 应用程序的 J2EE 容器。Web 容器通过为开发者提供运行 Servlet 和 JavaServer Pages(JSP 文件)的环境来扩展 Web 服务器的功能。
(2) EJB 容器
企业 Bean(EJB 组件)是包含商业逻辑的 Java 编程语言服务器组件。EJB 容器提供对企业 Bean 的本地访问和远程访问。
企业 Bean 分为三种类型:会话 Bean、实体 Bean 和消息驱动 Bean。会话 Bean 表示瞬态对象和进程,并且通常由单个客户机使用。实体 Bean 表示持久性数据,通常保留在数据库中。消息驱动 Bean 用于将消息异步传送到应用程序模块和服务中
2.11 Eclipse 3.2工具及Tomcat 5.5 服务器
(1) Eclipse工具
Eclipse 是一个很让人着迷的开发环境,它提供的核心框架和可扩展的插件机制给广大的程序员提供了无限的想象和创造空间。目前网上流传相当丰富且全面的开发工具方面的插件,但是Eclipse已经超越了开发环境的概念,可以想象Eclipse将成为未来的集成的桌面环境。目前的Eclipse本身就具备资源管理和外部程序的功能,加上无所不能的插件,将构成一个丰富多彩的工作环境而不仅仅是一个IDE。对于程序员来说,没有什么比可以随心所欲的定制的工作环境更重要,你的决心,勇气和创造力在与别人分享成果的过程中一览无余。好了,你是不是心动了,如果你已经对Eclipse有一定的认识,那么,和我一起打造自己的个性化工作环境吧,
(2) Tomcat 5.5服务器
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,目前最新版本是Tomcat 7.0.47
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
2.12 Struts 简介
(1)Struts的起源
Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
早期Smalltalk 程序语言便采用了MVC(Model-View -Controller) 模式( Patterns ) 以增加程序代码弹性,MVC模式将程序代码整理切割为三部份,Model 部分是业务与应用领域( Business domain) 相关逻辑、管理状态之对象,Controller 部分接收来自View 所输入的资料并与Model 部分互动,是业务流程控制( Flow Control) 之处,View 部分则负责展现资料、接收使用者输入资料。在Java 应用中,JFC/Swing、AWT、JSP 皆是可用作View 之技术规格,而JavaBean 与Enterprise JavaBean 规格则可用于Model 程序代码,一旦应用程序以MVC 模式加以适当之分割,Model 部分程序代码可在不同使用者接口外观之应用程序中重复使用。
(2)Struts的流程
服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。
以登陆为例:第一次进login.jsp会先实例化Form、把默认值赋给表单元素。 输入用户名密码提交表单、提交到action属性的login.do,通过ActionServlet读struts-config.xml文件找到 action下的path属性找到.do,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,把表单的值填充给form,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回input指定的页面.验证通过会实例化Action,执行Action的excute方法
(3)Struts框架
struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。
本章详细讨论struts架构。我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。我们还将介绍struts提供的类如何使得开发工作更加简单,这些类包括:
控制程序流程的类
实现和执行程序事务逻辑的类
自定义的标记库使得创建和验证HTML表单更加容易
让我们从MVC角度观察struts框架中的组件
框架中三个部分:模型,视窗和控制器。
在struts框架中,模型分为两个部分:
可以改变状态的操作(事务逻辑)
内部状态通常由一组ActinForm JavaBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。
大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。
小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。
建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。
由JSP建立,struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。
struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。
图2-1 Struts的运行过程
Struts-config.xml
控制器
ActionServlet
ActionForm
Action
模型
JavaBeans
视图
JSP
获取配置信
HTTP
填充表单数据
调用模型组件
将formbean实例Action
第三章 名片管理系统需求分析
随着时光的流逝,人类社会悄然已经进入21世纪。21世纪是知识经济时代,是信息技术时代,是数字化时代。单位管理的现代化﹑办公自动化和决策科学化,是现代化办公管理发展的必然趋势。也是衡量一个单位信息化的重要标志。单位职工的信息管理作为一个单位管理的重要方面,其可变因素多,管理复杂,繁琐,时间跨度大,再加上固定的基数大,形成巨大的数据量,人工管理困难。因此我们开发了阳光名片管理系统软件用来。
系统分析是开发管理信息系统的关键性阶段,是一个从不断认识和逐步细化的过程,是下一阶段的工作基础,是为下一阶段进行物理方案设计、解决“怎么做”提供依据,基关键性主要体现在“理解需求”和“表达需求”两方面。
通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的综合要求,并提出这些需求的实现条件以及需求应达到的标准,也就是确定新系统要做什么,做到什么程度。这个需求大概包括以几点:功能性需求、界面需求、性能需求、操作环境需求、未来需求。现在我们将对它们逐一介绍:
3.1 功能性需求
l 增加名片
很显然地,这个功能是举足轻重的一个功能了。有了这个功能,管理员就可以向数据库传递交有关联系者的资料:有关联系者姓名、职位、手机号码、电话号码、email、地址。
l 修改名片
系统程序运行后,选择左边修改名片,管理员可以修改联系者任一资料,也可以全部改所有资料,然后点击确实,系统就可以数据库递交刚才所修改数据。
l 查询名片
这个功能可以可以查询你所需要的资料,它并不是针对个别关键字,它拥有针对所有关键字,只要你输入其中一个关键字,系统就可以查询资料数据库所有资料,如果找匹配的关键的话,它就可以逐个显示出来,如果没有找到的话,也就不会显示什么了。
l 删除名片
由于种种原因,我们已经不需要联系者的资料,又不想占用空间,所以要将资料从系统中移走。在本系统中,要删除一个联系者资料有两种方式。第一种,可以选择"彻底删除名片",就可以把名片直接删除,而不放入回收站,这种方式方便而快捷,但是如果你不心删除了一张名片,你就会产生无法恢复名片的后果,所以此方式要慎重。第二种,就是选择"删除",这种方式没有会把名片彻底删除,而是把名片放入回收中,你可以到回收站中进行别的相应操作,比如,删除名片,还原名片。在回收站中,如果你还是选择删除名片的话,那么就等于彻底名片,还原名片请看下小章节。
l 还原名片
当管理人员把名片删除以后(只是删除不是彻底删除),系统就会把名片的信息放入回收站中,等待管理人员进一步操作。在回收站中,有两种操作,一:彻底删除名片,当管理人员确定不需要此联系者的信息,就可以选择此项操作。二:还原名片,如果刚才管理人员不误删某些人的资料,就可以通过此项操作撤消刚才的操作,可以挽救不必要损失。
3.2 界面需求
简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。
我们早已告别了DOS时代,步入windows时代。众所周知,为什么windows的操作系统会风靡世界呢,占有操作系统市场高达90%.。其实windows的安全性并不高,它渗有非常非常多的漏洞,有些时候使用者会因为它的安全性而付出代价,就是因为windows操作系统简洁、易用、易懂、美观、大方。
3.3 性能需求
在当今这个社会中,速度、效率成为首要考虑的条件,你一件事做得再完美、再好的话,你却花去大部分时间,使得生产效率非常低,这是不符合这个社会的节奏,只有高效率的软件才能在这个社会中立足。
所以本系统要求一定的时效性,要求在一定时间范围内作出反应。这是我们完成本系统的目标,我们正在为此而努力。
众所周知,java的在运行速度方面要逊色于一些其他语言,比如C语言、汇编语言。。。在这方面我们是力所不能及的,但是我们可以改变我们的算法,我们需要用更精练的算法来弥补语言本身的不足。
由于人际关系网的不断壮大,所联系的人员数增加,所以数据文件的大小会急剧增大,所以我们磁盘要足够大,能让数据库存得下足够的数据。
谈安全性,大家都是最关心的.我们平常所用的操作系统windows是非常不安全的,很黑客可以通过系统的安全漏洞对我们机器进行攻击,自然我的数据是很不安全,要及时为系统打补丁。我的数据库access要设置密码,并且密码越复杂越好。
3.4 运行环境需求
(1) CPU: Intel Pentium 166MHz或更高的处理器(推荐赛扬或更高的处理器)
(2) 操作环境: Microsoft Windows98/me/XP/2000或 Microsoft Windows NT Service/Workstation 4.0(推荐Service Pack 5)或更版本及Eclipse 3.2 及JDK 1.6 及Tomcat 5.5服务器
(3) 监视器:Microsoft Windows支持的VGA或分辨率更高的监视器。
(4) 内存:256MB内存以上。
(5) 硬盘:至少需要10G空间。
3.5 未来需求
这类要求是指目前不属于系统开发的范围,但将来随着外界环境的变化以及系统的发展可能会提出的要求。了解这类要求的目的是在开发过程中,可对系统将来可能的扩展与修改做准备。一旦需要时,就比较容易进行补充和修改了。
第四章 系统总体设计
4.1系统功能、性能概述
运行此系统时,系统要求输入用户名处密码,只有两者都正确的情况下才能进入系统,才能进行其它的操作。比如:用户注册、增加名片、修改名片、查询名片、删除名片、还原名片以及退出系统。
l 用户注册
如果你是新的用户没有用户名和密码,那么你就要注册一个自已用户和密码。
l 增加名片
多了一个联系人,我们需要增加一个用户资料,就需要运行系统的增加模块来增加用户资料。
l 修改名片
比如我们的联系人手机号码换了、住房地址改变了。我们就需要改变我们联系的资料,就需要运行系统修改资料的模块
l 查询模块
由于我们资料库的信息不断增加,想要记住所有人的资料是不可能的,我只可能记得其中一个关键字,比如姓名、住址。只需要键入其中一个关键就可以查询。
l 删除名片
可能由于种种原因我不需要一个联系者的资料,我们就需要删除他的名片,就可以运行系统删除名片的模块.这个模块可以得到我们想要的结果.
l 还原名片
不可以避免的误操作,不小心把重要的名片给删除了.其实设计本系统时我们已经充分考虑到这个问题
展开阅读全文