洗衣店管理系统 论文.docx

洗衣店管理系统设计

收藏

资源目录
跳过导航链接。
洗衣店管理系统设计.rar
丰震华
洗衣店管理系统.ppt---(点击预览)
洗衣店管理系统 论文.docx---(点击预览)
xyd
.myeclipse
.settings
db
db_xyd.sql
src
com
struts.properties
struts.xml
WebRoot
admin
common
css
img
js
META-INF
My97DatePicker
updown
upload
WEB-INF
login.jsp
loginSuccess.jsp
.classpath
.myhibernatedata
.mymetadata
.project
.springBeans
压缩包内文档预览:(预览前20页/共53页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:32629852    类型:共享资源    大小:15.99MB    格式:RAR    上传时间:2019-12-13 上传人:遗**** IP属地:湖北
30
积分
关 键 词:
洗衣店 管理 系统 设计
资源描述:
洗衣店管理系统设计,洗衣店,管理,系统,设计
内容简介:
华科学院HUAKE INSTITUTE OF TAIYUAN UNIVERSITY OF SCIENCE & TECHNOLOGY 毕业设计(论文)题目:洗衣店系统管理学 生 姓 名 丰震华 学 号 201022050208 班 级 电气102202H 所属院(系) 电子信息工程系 指 导 教 师 王丽霞 2014 年 6 月 1 日太原科技大学毕业设计(论文)任务书学院(直属系):华科学院电子信息工程系 时间: 2014年 3 月 4 日学 生 姓 名丰震华指 导 教 师王丽霞设计(论文)题目洗衣店管理系统主要研究内容1.Java面向对象程序设计2.JavaEE企业开发方式以及相关技术3.OA的核心概念以及Java平台的实现研究方法按照软件开发CMM标准实施,具体包括,需求分析、体系结构设计、模块设计、数据库设计等相关设计。主要技术指标(或研究目标)JavaEE企业核心技术(servlet、jsp、jdbc、框架ssh、工作流引擎jbmp)主要参考文献1 张孝祥、徐明华, JAVA基础与案例开发详解, 清华大学出版社, 2009.2 康牧,JSP动态网站开发实用教程,清华大学出版社,2009.3 刘亚宾,精通Eclipse-JAVA技术大系,电子工业出版社,2005.4 于万波,网站开发与应用案例教程,清华大学出版社,2009.1 基于JAVA洗衣店管理系统的设计2 华科学院 电气102202H 丰震华 指导教师:王丽霞摘要随着洗衣店服务的日渐完善和复杂,以前单纯的文本记录人工管理方式不仅效率低下,且易出错,直接导致管理费用的增加,服务质量的下降。由于这种人工管理方式不能完全适应需求的发展,一个智能管理系统因此应运而生。本文按照软件工程的规范,依据实际需求描述了系统分析与设计的全过程,构建了一个智能的洗衣店管理系统。其目的在于实现收费信息管理和出入衣物记录的快速高效检索,使操作简单安全,提高工作效率和质量。进入本系统后,用户可进行相应的功能操作。管理员可对各会员信息以及对存衣、取衣信息等的修改和查询,进行会员信息管理、收取衣物信息管理、取衣信息管理、按照时间段进行营业额统计等功能。关键词:B/S系统;洗衣店;MYSQL数据库目录摘要iAbstractii第1章 绪论31.1本文的来源31.2目的和意义31.3本文的主要内容3第2章 需求分析42.1功能需求分析42.2性能需求分析42.3数据库需求分析42.3.1信息需求分析42.3.2功能需求分析6第3章 总体设计83.1功能模块设计83.2数据库设计93.2.1数据库概念结构设计93.2.2数据库逻辑结构设计10第4章 开发工具及技术124.1开发工具MyEclipse124.2 Tomcat介绍124.3 MySql数据库124.4 JSP技术124.5 JavaScript134.6 Struts2.0简介144.7 Hibernate介绍14第5章 详细设计154.1数据库的详细设计154.2界面的详细设计174.2.1登录界面的设计174.2.2系统主页的设计194.2.3系统导航目录的设计194.3洗衣类型模块设计224.3.1添加洗衣类型224.3.2洗衣类型管理224.3.3洗衣类型删除234.4会员信息模块设计234.4.1添加会员信息234.4.2会员信息管理244.4.3会员充值模块244.5收取衣物模块设计254.5.1收取衣物添加254.5.2收取衣物管理254.6业务统计模块设计264.6.1业务统计模块26第6章 系统测试275.1测试方法说明275.2测试用例设计285.3测试结果分析28结论29参 考 文 献31致谢33第1章 绪论1.1本文的来源随着人们生活水平的不断提高和生活节奏的加快,不少商务人士的收入与衣物越来越多,而精力、时间却越来越少,于是各种洗衣店应运而生。洗衣店的规模也是越来越大,以前单纯的文本记录人工管理方式不仅效率低下,且易出错,直接导致管理费用的增加,服务质量的下降。由于这种人工管理方式不能完全适应洗衣店的发展,因此需要一个功能强大的管理系统对店铺进行管理,实现对会员信息管理、收取衣物信息管理、取衣信息管理、按照时间段进行营业额统计等功能1.2目的和意义如今,随着全国的信息化建设程度越来越高,互联网开始在人们的生活发挥着越来越为重要的作用,网络技术可以将各种不同的设施连接起来,进行统一的管理,目前洗衣业管理状况要满足快速增长的洗衣量,是远远不够的,因为当前洗衣店多采用手工或半手工处理洗衣店业务流程,多用人工方式在前台接送衣物并半手工进行营业额统计,效率十分低下。洗衣店业务主要是收取衣物、领取衣物管理、会员信息管理、营业额统计等。以上这些洗衣店内部业务如果用计算机来进行管理的话,能大大节约大型洗衣店工作人员和管理人员的时间,提高工作效率。1.3本文的主要内容本文从系统架构、实现方法、从整体到部分,逐个模块、逐个部分对系统设计、实现过程进行了详细介绍。其中第二章需求分析主要对系统的功能需求、性能需求、数据库需求进行了分析;第三章总体设计主要介绍了系统的功能模块设计、数据库设计;第四章介绍了系统的详细设计,对数据库、界面、各个模块进行了详细说明;第五章测试,主要介绍了本系统的测试方法、测试用例、测试结果分析。第2章 需求分析 在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。本系统所做的需求分析包括功能需求分析、性能需求分析、数据库需求分析。2.1功能需求分析本系统用户主要是系统管理员,系统管理员的功能包括洗衣价格管理、会员信息管理、收取衣物管理、领取衣物管理、按照时间段查询营业额和业务等。2.2性能需求分析系统的响应时间:用户登录时系统响应时间在2秒钟左。可靠性和稳定性要求:要具有实用性、界面美观、操作简单、条理清晰;应用软件与数据库系统的设计要做到安全可靠,防止非法用户的入侵。系统运行平台:处理器:Internet Pentium II 266 MX或更高、内存:512MB、硬盘空间:4GB、操作系统:Windows 2000/XP、数据库管理系统:Mysql、服务器软件:Apache3。2.3数据库需求分析2.3.1信息需求分析本洗衣店管理系统涉及到的实体有:系统管理员、会员信息、取衣信息、洗衣价格等。(1)会员信息实体E-R图如图1.1所示:图2.1 会员信息实体E-R图(2)洗衣价格信息实体E-R图如图3.2所示:图2.2 投诉信息实体E-R图(3)收取衣物信息实体E-R图如图2.3所示图2.3 收取衣物信息实体E-R图 (4)管理员信息E-R图如图3.7所示图2.4管理员信息实体E-R图2.3.2功能需求分析本系统用户主要是系统管理员,系统管理员的功能包括洗衣价格管理、会员信息管理、收取衣物管理、领取衣物管理、按照时间段查询营业额和洗衣业务等。数据流程是指数据在系统中产生、传输、加工处理、使用、存储的过程,数据流程分析是把数据在现行系统内部的流动抽象的独立起来,舍去了具体组织机构、信息载体、处理工具、物质、材料等,单从数据流动过程来考查实际业务的数据处理模式。数据流程与数据流程分析是今后建立数据库系统和设计功能模块处理过程的基础。描述数据流程的工具是数据流程图以及其附带的数据字典、处理逻辑等图表。其中数据流程图是描述系统逻辑模型的主要工具,它以少数几种符号综合地反映出信息在系统中的流动、存储和传递。在业务流程分析的基础上,对数据流进行了分析,从数据流动过程考察了实际业务的数据处理模式。该系统的数据流图分为顶层、一层。现行的顶层数据流图如图2.5所示:图2.5 顶层数据流图图2.6 第1层数据流图第3章 总体设计总体设计即对有关系统全局问题的设计,也就是设计系统总的处理方案,又称系统概要设计。它包括:系统模块结构设计、数据库和文件设计、代码设计以及系统可靠性与内部控制设计等内容。本系统的总体设计包括功能模块设计和数据库设计。3.1功能模块设计根据系统的需求分析,得出系统业务流程图如图3.1所示。图3.1 业务流程图本系统用户主要是系统管理员,系统管理员的功能包括洗衣价格管理、会员信息管理、收取衣物管理、领取衣物管理、按照时间段查询营业额和洗衣业务等。系统功能结构图如图3.2所示。图3.2 系统功能结构图3.2数据库设计3.2.1数据库概念结构设计数据库的概念结构设计就是将需求分析得到的用户需求抽象为信息结构即概念模型的过程。E-R图是表现数据库概念模型的一种方式。根据数据库的需求分析得到数据库E-R图,如图3.3所示。图3.3 E-R图3.2.2数据库逻辑结构设计数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E -R图转换为与选用的 DBMS产品所支持的数据模型相符合的逻辑结构。本系统选用的数据库管理系统为MySql数据库管理系统,MySql数据库为关系型数据库。E-R图向关系模型的转换规则如下:(1) 一个实体型转化为一个关系模式;(2) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;(3) 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;(4) 一个m:n联系可以转换为一个独立的关系模式;(5) 一个多元联系可以转换为一个独立的关系模式;(6) 具有相同码的关系模式可以合并。根据以上规则,将数据库的概念结构设计转换为的关系模式如下:洗衣价格(ID,洗衣类型,衣物类型,价格);系统管理员(ID,登录账号,登录密码);会员信息(ID,姓名,性别,住址,联系方式,卡号,余额);收取衣物(ID,洗衣类型,衣物类型,价格,会员ID,衣物品牌,颜色,备注信息,收取时间,领取时间);第4章 开发工具及技术4.1开发工具MyEclipseMyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。4.2 Tomcat介绍Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。可以这样认为,当在一台机器上配置好Apahce服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。4.3 MySql数据库SqlServer使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API;支持多线程,充分利用CPU资源;提供TCP/IP、ODBC和JDBC等多种数据库连接途径;可以处理拥有上千万条记录的大型数据库。对于一般的个人使用者和中小型企业来说,SqlServer提供的功能已经绰绰有余,而且由于SqlServer是开放源码软件,因此可以大大降低总体拥有成本。4.4 JSP技术JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。内部对象说明:request 客户端请求,此请求会包含来自GET/POST请求的参数; response网页传回客户端的响应;pageContext 网页的属性是在这里管理; session 与请求有关的会话; application servlet正在执行的内容;out 用来传送响应的输出流; config代码片段配置对象;pageJSP网页本身; exception针对错误网页,未捕捉的例外4.5 JavaScriptJavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。在本系统中很多地方使用了javascript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。4.6 Struts2.0简介Struts最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2002年3月成为ASF的顶级项目。它通过采用Java ServletJSP技术,实现了基于Java EE Web应用的Model-View-ControllerMVC设计模式的应用框架Web Framework,是MVC经典设计模式中的一个经典产品。而Struts2则是Struts的升级版本。它的优点在于: Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程; 使用OGNL进行参数传递; 强大的拦截器; 易于测试; 易于扩展的插件机制; 全局结果与声明式异常。4.7 Hibernate介绍Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有2个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这2个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。第5章 详细设计详细设计是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。本系统的详细设计包括以下内容:数据库的详细设计、界面的详细设计、系统用户设计、系统登录设计、会员模块设计、洗衣价格模块设计、收取衣物模块设计、领取衣物模块设计。4.1数据库的详细设计根据数据库的逻辑结构设计,得到数据库的详细设计。本系统使用的数据库管理系统为MySql,数据库中共有4个表,各表说明如下:表4.1 管理员表列名数据类型允许空说明idint(11)否IDuserNamevarchar(100)是用户名userPwvarchar(100)是密码表4.2 会员信息表列名数据类型允许空说明user_idint(11)否IDuser_realnamevarchar(100)否姓名user_sexvarchar(100)是性别user_telvarchar(100)是联系方式user_addressvarchar(100)是住址user_kahaovarchar(100)否卡号user_yuefloat(11)否余额表4.3 收取衣物信息表列名数据类型允许空说明idint(11)否IDuserIdint(11)否会员IDxileixingvarchar(100)是洗衣类型yiwuleixingvarchar(10)是衣物类型jiagefloat(10)是价格pinpaivarchar(20)是品牌yansevarchar(100)是颜色beizhuvarchar(100)是备注shoushivarchar(100)是收取时间lingshivarchar(100)是领取时间表4.4 洗衣价格表列名数据类型允许空说明idint(11)否IDxileixingvarchar(11)否洗衣类型yiwuleixingvarchar(11)否衣物类型jiagevarchar(100)否价格4.2界面的详细设计整个系统的界面可以达到简洁、易交互性的要求。4.2.1登录界面的设计图4.1 系统登录界面本系统页面布局、样式采用HTML+CSS设计5。部分代码如下: body margin-left: 0px; background-image: url(/img/bhj.jpg); .style2 color: #990000 .input2 font-size: 12px; border: 3px double #A8D0EE; color: #344898; .submit1 border: 3px double #416C9C; height: 22px; width: 45px; background-color: #F2F2F2; font-size: 12px; padding-top: 1px; background-image: url(bt.gif); cursor: hand; .STYLE12 font-family: Georgia, Times New Roman, Times, serif .STYLE13 color: #316BD6; .STYLE15 color: #fdsere; font-size: 9pt; 登录系统时要输入正确的用户名与密码。首先要检测用户输入的用户名和密码是否为空,并显示相关提示,如图4.5和图4.6所示。图4.2 用户名为空提示图4.3密码为空提示如果用户名和密码都不为空,还要检查用户名、密码是否正确,如果正确则进入系统主页面,如果不正确会给出相应提示,如图4.7所示。图4.4 登录错误提示4.2.2系统主页的设计系统主页由一个框架构成,包含3个页面:网站LOGO、目录导航、欢迎页面。图4.5 系统主页面4.2.3系统导航目录的设计系统的导航目录使用div+css+javascrpt实现。如图4.3所示。图4.6 系统导航目录系统目录包括四个一级目录,每个一级目录下都有若干个二级目录。点击一级目录会展开或收起二级目录6。部分代码: 修改个人密码 a href=/admin/userinfo/userPw.jsp target=main修改个人密码 洗衣类型管理 a href=/admin/xiyileixing/xiyileixingAdd.jsp target=main洗衣类型添加 a href=/xiyileixingMana.action target=main洗衣类型管理 会员信息管理 a href=/admin/user/userAdd.jsp target=main会员信息添加 a href=/userMana.action target=main会员信息管理 收取衣物管理 a href=/admin/shou/shouAdd.jsp target=main收取衣物添加 a href=/shouMana.action target=main收取衣物管理 领取衣物管理 a href=/lingMana.action target=main领取衣物管理 洗衣业务统计 a href=/admin/tongji/tongji_pre.jsp target=main洗衣业务统计 安全退出系统 a href=# onclick=javascript:window.parent.location=/login.jsp安全退出系统 4.3洗衣类型模块设计4.3.1添加洗衣类型管理员输入洗衣类型相关正确信息后点击录入按钮,如果是没有输入完整的洗衣类型信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit=return checkForm()来检查,checkForm()函数中是各种的校验输入数据的方式,程序效果图如图4.8所示。图4.8 洗衣类型添加4.3.2洗衣类型管理管理员点击左侧的菜单“洗衣类型管理”,页面跳转到洗衣类型管理界面,调用后台的xiyileixingAction类查询出所有的洗衣类型信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出洗衣类型信息,洗衣类型管理页面如图4.9所示。图4.9 洗衣类型管理4.3.3洗衣类型删除先是点击洗衣类型管理,页面跳转到洗衣类型管理界面,浏览所有的洗衣类型信息,点击要删除的数据,弹出的确定对话框,即可删除该洗衣类型信息,程序效果图如图4.8所示。图4.10 洗衣类型删除4.4会员信息模块设计4.4.1添加会员信息管理员输入会员相关正确信息后点击录入按钮,如果是没有输入完整的会员信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit=return checkForm()来检查,checkForm()函数中是各种的校验输入数据的方式,程序效果图如图4.11所示。图4.11 会员信息添加4.4.2会员信息管理管理员点击左侧的菜单“会员信息管理”,页面跳转到会员信息管理界面,调用后台的userAction类查询出所有的会员信息信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出洗衣类型信息,洗衣类型管理页面如图4.9所示。图4.12 会员信息管理4.4.3会员充值模块点击“充值”超级连接,页面跳转到充值的页面,输入充值金额,点击确定按钮,即可完成充值操作,程序效果图如图4.8所示。图4.13 会员充值4.5收取衣物模块设计4.5.1收取衣物添加管理员输入衣物相关正确信息后点击录入按钮,如果是没有输入完整的衣物信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit=return checkForm()来检查,checkForm()函数中是各种的校验输入数据的方式,程序效果图如图4.14所示。图4.14 收入衣物添加4.5.2收取衣物管理管理员点击左侧的菜单“收取衣物管理”,页面跳转到收取衣物管理界面,调用后台的shouAction类查询出所有的收取衣物信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出收取衣物信息,程序效果图如图4.15所示。图4.15 收取衣物管理4.6业务统计模块设计4.6.1业务统计模块点击“洗衣业务统计”页面跳转到查询的tongji_pre.jsp,输入开始时间和截止日期,点击统计按钮,系统发送请求到后台的tongjiAction处理。如果是没有输入开始时间和截止日期,都会给出相应的错误提示,提示“请输入时间”。输入数据都通过form表单中定义的方法onsubmit=return checkForm()来检查,checkForm()函数中是各种的校验输入数据的方式,程序效果图如图4.16所示。图4.16 业务统计模块第6章 系统测试5.1测试方法说明测试任何软件产品都有两种方法:如果已经知道了产品应该具有的功能,通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,通过测试来检验产品内部动作是否按规定正常进行。前一种方法称为黑盒测试,后一种方法称为白盒测试。对于软件测试而言,黑盒测试法把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能正常使用,程序是否能适当的接收输入的数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称为功能测试。白盒测试法和黑盒测试法相反,它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确的工作。白盒测试又称为结构测试。其常用测试技术有:等价类划分、边界值分析、错误推测法等。此外,与软件开发过程类似,测试过程也可按阶段分步骤进行,一般分为:单元测试,集成测试,系统测试2。根据以上测试方法,在进行高校教师考核管理系统的实际测试时,为了全面检测系统的各项功能,先采用了单元测试的方法,在测试登录模块以及系统权限控制时采用了白盒测试,测试其它模块时采用的黑盒测试。在对系统各单元进行单元测试完成后,又把各个功能模块组合起来进行了集成测试,最后进行系统测试。5.2测试用例设计表5.1 登录模块及权限控制测试用例用户名密码用户类型测试结果adminadmin管理员登录成功,权限为管理员11111111111空登录失败,提示:用户名或密码错误5.3测试结果分析通过单元测试,发现了系统中存在的一些错误和漏洞,将这些问题解决后,又对系统进行了集成测试。测试结果表明系统能达到所需要求,各部分测试都能达到理想结果。结论本系统各项主要功能已基本完成,具备洗衣店管理的基本要求。本系统的特色有:(1) 实用性:本系统的工作流程是基于实际的高校教师年度考核的工作流程进行设计的,具有一定的实用性。 (2) 界面交互性:本系统交互性的体现之一就是对于用户的操作进行情况能够给予友好的提示,告知用户当前操作成功还是失败,并提出改进意见。(3) 可扩展性:一个好的系统扩展性是必不可少的,本系统也具备了一定的可扩展性。例如,界面采用的CSS开发,可以扩展更多不同的界面而完全不影响网站的内容。(4) 程序模块化:本系统开发过程中,将功能合理划为较小的模块,以实现模块重用和各模块之间的松耦合。(6) 安全性:本系统设置了的权限分配,主要分为系统管理员、系部管理员、教师3级权限。只有系统管理员才能对系统进行相关操作,保证了系统的安全性。本文详细描述了设计与实现高校教师年度考核管理系统的技术理论、实现方法、测试维护、界面设计等方面,并为一般的基于B/S结构的系统的应用开发提供了范例,具有良好的实际借鉴价值和一定的理论参考价值。通过开发高校教师年度考核管理系统让我在软件工程设计、数据库理论与应用、PHP、JavaScript等方面有了更深的理解,对系统设计的过程、方法、技巧等都有了更充分的认识,在相关的技术、理论等各方面水平都有一定的提高。但在前期需求分析和数据库设计时,没有做好全面的调研和深入的理解分析,因此导致系统开发时出现许多错误,只能边设计边修改需求方案,最后在指导教师的指导和自己的努力下解决了相应的问题,这是以后再开发系统开发时需要谨记的教训。在系统实际的设计开发过程中,由于时间的不足和系统设计经验的缺乏,所以系统依然存在一些缺点和不足,比如导出EXCEL时格式不够美观、打印表单时表单排版粗糙,数据库方面,没有用到视图、存储过程等,数据操作直接基于表实现,安全性会打点折扣。今后我会将这些问题逐步加以完善和解决,我将继续努力,逐步使它趋于完美。在整个系统的设计和实现过程中,我体会到了一名软件开发人员的艰辛和用软件开发工具成功实现自己设想的喜悦之情。在这期间我所积累下来的编程思想尤为重要,我意识到将旧知识和新知识结合的必要性,学会了如何思考和解决问题的方法。在今后的学习和工作当中,我会再接再厉,争取做到最好。参 考 文 献1 张孝祥、徐明华, JAVA基础与案例开发详解, 清华大学出版社, 2009.2 康牧,JSP动态网站开发实用教程,清华大学出版社,2009.3 刘亚宾,精通Eclipse-JAVA技术大系,电子工业出版社,2005.4 于万波,网站开发与应用案例教程,清华大学出版社,2009.5 杨学瑜,高立军,软件开发过程与项目管理,电子工业出版社,2008.6 张洁才,Java web应用开发教程,科学出版社,2005.7 戴维尔,JavaScript程序员教程,电子工业出版社,2010.8 黎连业、王华、李淑春,软件测试与测试技术,清华大学出版社,2009.9 黄梯云著.管理信息系统.北京.电子工业出版社.2006 .10.James D. McCaffrey等著.NET软件测试自动化之道M. 北京.电子工业出版社.2007.11.甘仞初著.信息系统开发.北京.经济科学出版社.2007.12.马赫著. Dreamweaver MX 2004 网页设计经典108例.中国青年出版社.2005.13.唐友国 湛洪波著.JSP网站开发详解.电子工业出版社2008年10月.14.卫红春等著.信息系统分析与设计M.北京.清华大学出版社.2009.15.张大方 李玮等著.软件测试技术与管理M.湖南.湖南大学出版社,2007.16. (美)H.M.Deitel,P.Jdeitel著.Java程序设计教程(第五版). 清华大学出版社.2004.17.(美)Elliotte Rusty Harold著.Java Network Programming.东南大学出版社 .2005.18 孙卫琴等著.精通struts:基于MVC的Java Web设计与开发. 电子工业出版社.2005.19 张文静 林琪著.JSP程序设计.人民邮电出版社.2005.20 孙卫琴 李洪成著.Tomcat与Java Web开发技术详解. 电子工业出版社.2005.21(美)John J.Patrick著.SQL基础(第二版).清华大学出版社.2004.22(美)David flanagan著.Java技术手册(第五版).东南大学出版社.2006.23黄裴、徐汀荣,电子商务原理与技术(第二版),科学出版社,2006年10月致谢本论文从今年三月底开题以来,到目前已经两个多月了,在这短暂而紧张的系统设计开发过程中,我学到了很多东西,明白了很多道理,也有许多发自内心的感受。在这段时间里,有许多人给了我启发和帮助,在毕业论文完成之际,我在此表达对他们最真挚的感谢。首先要感谢我的指导老师:王丽霞老师,王丽霞的包容、善良和强烈的责任心让我深深地感动,她治学态度严谨,对我要求也比较严格,虽然平日工作比较繁忙,但在我做毕业设计的每个阶段,从实习到查阅资料,从拟定题目到开题报告,中期检查、修改、确定,后期详细设计,编码测试等整个过程都给予了我悉心的指导,她细心地纠正我设计中的错误,并耐心地向我讲解,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。其次,我要感谢我实习的公司:太原维信科技有限公司,感谢我的同事。感谢他们在PHP、JavaScript技术上对我的指导。最后还要感谢和我一起做毕业设计的同学,他们与我同甘共苦,在设计中给了我很大的帮助与支持,在此,我由衷的向曾经帮助过我的人说一声:谢谢,谢谢你们!外文科技资料翻译英文原文JSP application frameworksA framework is a reusable, semi-complete application that can be specialized toproduce custom applications Johnson. Like people, software applications are more alike than they are different. They run on the same computers, expect input from the same devices, output to the same displays, and save data to the same hard disks. Developers working on conventional desktop applications are accustomed to toolkits and development environments that leverage the sameness between applications. Application frameworks build on this common ground to provide developers with a reusable structure that can serve as the foundation for their own products.A framework provides developers with a set of backbone components that have the following characteristics:1.They are known to work well in other applications.2. They are ready to use with the next project.3. They can also be used by other teams in the organization.Frameworks are the classic build-versus-buy proposition. If you build it, you will understand it when you are donebut how long will it be before you can roll your own? If you buy it, you will have to climb the learning curveand how long is that going to take? There is no right answer here, but most observers would agree that frameworks such as Struts provide a significant return on investment compared to starting from scratch, especially for larger projects.Other types of frameworks:The idea of a framework applies not only to applications but to application componentsas well. Throughout this article, we introduce other types of frameworks that you can use with Struts. These include the Lucene search engine, the Scaffold toolkit, the Struts validator, and the Tiles tag library. Like application frameworks, these tools provide semi-complete versions of a subsystem that can be specialized to provide a custom component.Some frameworks have been linked to a proprietary development environment. This is not the case with Struts or any of the other frameworks shown in this book. You can use any development environment with Struts: Visual Age for Java, JBuilder, Eclipse, Emacs, and Textpad are all popular choices among Struts developers. If you can use it with Java, you can use it with Struts.Enabling technologies:Applications developed with Struts are based on a number of enabling technologies.These components are not specific to Struts and underlie every Java web application. A reason that developers use frameworks like Struts is to hide the nasty details behind acronyms like HTTP, CGI, and JSP. As a Struts developer, you dont need to be an alphabet soup guru, but a working knowledge of these base technologies can help you devise creative solutions to tricky problems.Hypertext Transfer Protocol (HTTP):When mediating talks between nations, diplomats often follow a formal protocol.Diplomatic protocols are designed to avoid misunderstandings and to keep negotiations from breaking down. In a similar vein, when computers need to talk, they also follow a formal protocol. The protocol defines how data is transmitted and how to decode it once it arrives. Web applications use the Hypertext Transfer Protocol (HTTP) to move data between the browser running on your computer and the application running on the server.Many server applications communicate using protocols other than HTTP. Some of these maintain an ongoing connection between the computers. The application server knows exactly who is connected at all times and can tell when a connection is dropped. Because they know the state of each connection and the identity of each person using it, these are known as stateful protocols.By contrast, HTTP is known as a stateless protocol. An HTTP server will accept any request from any client and will always provide some type of response, even if the response is just to say no. Without the overhead of negotiating and retaining a connection, stateless protocols can handle a large volume of requests. This is one reason why the Internet has been able to scale to millions of computers.Another reason HTTP has become the universal standard is its simplicity. An HTTP request looks like an ordinary text document. This has made it easy for applications to make HTTP requests. You can even send an HTTP request by hand using a standard utility such as Telnet. When the HTTP response comes back, it is also in plain text that developers can read.The first line in the HTTP request contains the method, followed by the locationof the requested resource and the version of HTTP. Zero or more HTTP request headers follow the initial line. The HTTP headers provide additional information to the server. This can include the browser type and version, acceptable document types, and the browsers cookies, just to name a few. Of the seven request methods, GET and POST are by far the most popular.Once the server has received and serviced the request, it will issue an HTTP response. The first line in the response is called the status line and carries the HTTP protocol version, a numeric status, and a brief description of the status. Following the status line, the server will return a set of HTTP response headers that work in a way similar to the request headers.As we mentioned, HTTP does not preserve state information between requests.The server logs the request, sends the response, and goes blissfully on to the next request. While simple and efficient, a stateless protocol is problematic for dynamic applications that need to keep track of their users. (Ignorance is not always bliss.Cookies and URL rewriting are two common ways to keep track of users between requests. A cookie is a special packet of information on the users computer. URL rewriting stores a special reference in the page address that a Java server can use to track users. Neither approach is seamless, and using either means extra work when developing a web application. On its own, a standard HTTP web server does not traffic in dynamic content. It mainly uses the request to locate a file and then returns that file in the response. The file is typically formatted using Hypertext Markup Language (HTML) W3C, HTML that the web browser can format and display. The HTML page often includes hypertext links to other web pages and may display any number of other goodies, such as images and videos. The user clicks a link to make another request, and the process begins a new.Standard web servers handle static content and images quite well but need a helping hand to provide users with a customized, dynamic response. DEFINITION:Static content on the Web comes directly from text or data files, like HTML or JPEG files. These files might be changed from time to time, but they are not altered automatically when requested by a web browser. Dynamic content, on the other hand, is generated on the fly, typically in response to an individualized request from a browser.Common Gateway Interface (CGI):The first widely used standard for producing dynamic content was the Common Gateway Interface (CGI). CGI uses standard operating system features, such as environment variables and standard input and output, to create a bridge, or gateway, between the web server and other applications on the host machine. The other applications can look at the request sent to them by the web server and create a customized response.When a web server receives a request thats intended for a CGI program, it runs that program and provides the program with information from the incoming request. The CGI program runs and sends its output back to the server. The web server then relays the response to the browser.CGI defines a set of conventions regarding what information it will pass as environment variables and how it expects standard input and output to be used. Like HTTP, CGI is flexible and easy to implement, and a great number of CGI-aware programs have been written.The main drawback to CGI is that it must run a new copy of the CGI-aware program for each request. This is a relatively expensive process that can bog down high-volume sites where thousands of requests are serviced per minute. Another drawback is that CGI programs tend to be platform dependent. A CGI program written for one operating system may not run on another.Java servlets:Suns Java Servlet platform directly addresses the two main drawbacks of CGI programs.First, servlets offer better performance and utilization of resources than conventional CGI programs. Second, the write-once, run-anywhere nature of Java means that servlets are portable between operating systems that have a Java Virtual Machine (JVM).A servlet looks and feels like a miniature web server. It receives a request and renders a response. But, unlike conventional web servers, the servlet application programming interface (API) is specifically designed to help Java developers create dynamic applications.The servlet itself is simply a Java class that has been compiled into byte code, like any other Java object. The servlet has access to a rich API of HTTP-specific services, but it is still just another Java object running in an application and can leverage all your other Java assets.To give conventional web servers access to servlets, the servlets are plugged into containers. The servlet container is attached to the web server. Each servlet can declare what URL patterns it would like to handle. When a request matching a registered pattern arrives, the web server passes the request to the container, and the container invokes the servlet.But unlike CGI programs, a new servlet is not created for each request. Once the container instantiates the servlet, it will just create a new thread for each request. Java threads are much less expensive than the server processes used by CGI programs. Once the servlet has been created, using it for additional requests incurs very little overhead. Servlet developers can use the init() method to hold references to expensive resources, such as database connections or EJB Home Interfaces, so that they can be shared between requests. Acquiring resources like these can take several secondswhich is longer than many surfers are willing to wait. The other edge of the sword is that, since servlets are multithreaded, servlet developers must take special care to be sure their servlets are thread-safe. To learn more about servlet programming, we recommend Java Servlets by Example, by Alan R. Williamson Williamson. The definitive source for Servlet information is the Java Servlet Specification Sun, JST.JavaServer Pages:While Java servlets are a big step up from CGI programs, they are not a panacea. To generate the response, developers are still stuck with using println statements to render the HTML. Code that looks like:out.println(One line of HTML.);out.println(Another line of HTML.);is all too common in servlets that generate the HTTP response. There are libraries that can help you generate HTML, but as applications grow more complex, Java developers end up being cast into the role of HTML page designers.Meanwhile, given the choice, most project managers prefer to divide development teams into specialized groups. They like HTML designers to be working on the presentation while Java engineers sweat the business logic. Using servlets alone encourages mixing markup with business logic, making it difficult for team members to specialize.To solve this problem, Sun turned to the idea of using server pages to combine scripting and templating technologies into a single component. To build Java Server Pages, developers start by creating HTML pages in the same old way, using the same old HTML syntax. To bring dynamic content into the page, the developer can also place JSP scripting elements on the page. Scripting elements are tags that encapsulate logic that is recognized by the JSP. You can easily pick out scripting elements on JSP pages by looking for code that begins with .To be seen as a JSP page, the file just needs to be saved with an extension of .jsp.When a client requests the JSP page, the container translates the page into a source code file for a Java servlet and compiles the source into a Java class filejust as you would do if you were writing a servlet from scratch. At runtime, the container can also check the last modified date of the JSP file against the class file. If the JSP file has changed since it was last compiled, the container will retranslate and rebuild the page all over again.Project managers can now assign the presentation layer to HTML developers, who then pass on their work to Java developers to complete the business-logic portion. The important thing to remember is that a JSP page is really just a servlet. Anything you can do with a servlet, you can do with a JSP.JavaBeans:JavaBeans are Java classes which conform to a set of design patterns that make them easier to use with development tools and other components.DEFINITION A JavaBean is a reusable software component written in Java. To qualify as a JavaBean, the class must be concrete and public, and have a noargument constructor. JavaBeans expose internal fields as properties by providing public methods that follow a consistent design pattern. Knowing that the property names follow this pattern, other Java classes are able to use introspection to discover and manipulate JavaBean properties. The JavaBean design patterns provide access to the beans internal state through two flavors of methods: accessors are used to read a JavaBeans state; mutators are used to change a JavaBeans state.Mutators are always prefixed with lowercase token set followed by the property name. The first character in the property name must be uppercase. The return value is always voidmutators only change property values; they do not retrieve them. The mutator for a simple property takes only one parameter in its signature, which can be of any type. Mutators are often nicknamed setters after their prefix. The mutator method signature for a weight property of the type Double would be:public void setWeight(Double weight)A similar design pattern is used to create the accessor method signature. Accessor methods are always prefixed with the lowercase token get, followed by the property name. The first character in the property name must be uppercase. The return value will match the method parameter in the corresponding mutator. Accessors for simple properties cannot accept parameters in their method signature. Not surprisingly, accessors are often called getters.The accessor method signature for our weight property is:public Double getWeight()If the accessor returns a logical value, there is a variant pattern. Instead of using the lowercase token get, a logical property can use the prefix is, followed by the property name. The first character in the property name must be uppercase. The return value will always be a logical valueeither boolean or Boolean. Logical accessors cannot accept parameters in their method signature.The boolean accessor method signature for an on property would bepublic boolean isOn()The canonical method signatures play an important role when working with Java- Beans. Other components are able to use the Java Reflection API to discover a JavaBeans properties by looking for methods prefixed by set, is, or get. If a component finds such a signature on a JavaBean, it knows that the method can be used to access or change the beans properties.Sun introduced JavaBeans to work with GUI components, but they are now used with every aspect of Java development, including web applications. When Sun engineers developed the JSP tag extension classes, they designed them to work with JavaBeans. The dynamic data for a page can be passed as a JavaBean, and the JSP tag can then use the beans properties to customize the output.For more on JavaBeans, we highly recommend The Awesome Power of JavaBeans, by Lawrence H. Rodrigues Rodrigues. The definitive source for JavaBean information is the JavaBean Specification Sun, JBS.Model 2:The 0.92 release of the Servlet/JSP Specification described Model 2 as an architecture that uses servlets and JSP pages together in the same application. The term Model 2 disappeared from later releases, but it remains in popular use among Java web developers.Under Model 2, servlets handle the data access and navigational flow, while JSP pages handle the presentation. Model 2 lets Java engineers and HTML developers each work on their own part of the application. A change in one part of a Model 2 application does not mandate a change to another part of the application. HTML developers can often change the look and feel of an application without changing how the back-office servlets work.The Struts framework is based on the Model 2 architecture. It provides a controller servlet to handle the navigational flow and special classes to help with the data access. A substantial custom tag library is bundled with the framework to make Struts easy to use with JSP pages.Summary:In this article, we introduced Struts as an application framework. We examined the technology behind HTTP, the Common Gateway Interface, Java servlets, JSPs, and JavaBeans. We also looked at the Model 2 application architecture to see how it is used to combine servlets and JSPs in the same application.Now that you have had a taste of what it is like to develop a web application with Struts, in chapter 2 we dig deeper into the theory and practice behind the Struts architecture.中文译文JSP 应用框架框架(framework)是可重用的,半成品的应用程序,可以用来产生专门的定制程序。象人一样,软件应用的相似性比不同点要多。它们运行在相似的机器上,期望从相同的设备输入信息,输出到相同的显示设备,并且将数据存储到相同的硬盘设备。开发传统桌面应用的开发人员更习惯于那些可以涵盖应用开发同一性的工具包和开发环境。构架在这些公共基础上的应用框架可以为开发人员提供可以为他们的产品提供可重用服务的基础架构。框架向开发人员提供一系列具有以下特征的骨架组件:1已经知道它们在其它程序上工作得很好;2它们随时可以在下一个项目中使用;3它们可以被组织的其它团队使用;对于框架是典型的构建还是购买命题。如果你自己构建它,在你完成时你就会理解它,但是在你被融入之前又将花费多长时间呢?如果要购买,你必须得克服学习曲线,同样,在你可以用它进行工作之前又得花多长时间?这里没有所谓正确答案,但许多观察者都会同意,象Struts这样的框架能提供比从头开始开发更显著的投资回报,特别是对于大型项目来说。其它类型的框架:框架的概念不仅用于应用程序也可用于组件。在其它的资料里面,我们也介绍了一些可以和Struts一起使用的框架。这些包括Lucene搜索引擎,Scaffold工具包,Struts验证器,以及Tiles标签库。与应用框架一样,这些工具也提供了一些半完成的版本,可以用在用户的定制组件之中。某些框架被限制于专门的开发环境中。Struts以及本文中涉及的组件却不是这样。你可以在很多环境中来开发Struts: Visual Age for Java, JBuilder, Eclipse, Emacs, 甚至使用Textpad。对于你的工具,如果你可以用来开发Java, 你就可以用它来开发Struts。使用的技术:使用Struts的应用开发使用了大量的其他基础技术。这些技术并不是专门针对Struts,而是所有Java web 应用都可以使用的。开发者使用Struts之类的框架是为了隐藏在诸如HTTP,CGI,以及JSP之类技术后面的繁琐的细节。作为一个Struts开发者,你并不需要知晓所有的相关知识,但是这些基本技术的工作原理可能有助于你针对棘手问题设计出创造性的方案。超文本传输协议 (HTTP):当两个国家之间进行调解时,外交官们总是遵循一定的正式协议。外交协议主要设计来避免误解,以及防止谈判破裂。同样,当计算机间需要对话,它们也遵循一个正式的协议。这个协议定义数据是如何传输,以及它们到达后如何进行解码。Web应用程序就是使用HTTP协议在运行浏览器的计算机和运行的服务器的程序间传输数据。很多服务器应用程序使用HTTP之外的其他协议。他们在计算机之间维护一个持久性的连接。应用服务器可以清楚的知道是谁连接上来,而且何时中断连接。因为它们知道每一个连接的状态,以及每一个使用它的人。这称之为状态协议。相反, HTTP是一个无状态协议。HTTP Server 可以接受来自于各种客户的各种请求,并提供各种响应,即使是这个响应仅仅是说No。没有大量的协商和连接持久性,无状态协议可以处理大量的请求。这也是Internet 可以扩展到很多计算机的原因。HTTP 成为通用标准的原因是其简单性。HTTP请求看起来就像一个平常的文本文档。这使应用程序很容易创建HTTP请求。你甚至可以通过标准的程序如Telnet来手动传递一个HTTP请求。当HTTP响应返回时,它也是一个开发者可以直接阅读的平面文本。HTTP请求的第一行包含方法,其后是请求的来源地址和HTTP版本。HTTP请求头跟在首行后面,可以没有也可以有多个。HTTP头向服务器提供额外的信息。可以包括浏览器的种类和版本,可接受的文档类型,浏览器的cookies等等。7 种请求方法中, GET和 POST是用得最多的。一旦服务器接收到请求,它就要产生一个HTTP响应。响应的第一行称为状态行,包含了HTTP协议的版本,数字型状态,以及状态的简短描述。状态行后,服务器将返回一个HTTP响应头,类似于HTTP请求头。如上所述,HTTP并不在请求间保持状态信息。服务器接受请求,发出响应,并且继续愉快地处理文本请求。因为简单和效率,无状态协议不适合于需要跟踪用户状态的动态应用。Cookies和 URL 重写是两个在请求间跟踪用户状态的方式。cookie是一种特殊的信息包,存储于用户的计算机中。URL重写是在页面地址中存储一个特殊的标记,Java服务器可以用它来跟踪用户。这两种方法都不是无缝的,是用哪一个都意味着在开发时都要进行额外的工作。对其本身来说,标准的HTTP web服务器并不传输动态内容。它主要是使用请求来定位文件资源,并在响应中返回此资源。通常这里的文件使用Hypertext Markup Language (HTML) W3C,HTML 格式化,以使浏览器可以显示它们。HTML页面通常包含一些到其他页面的超文本连接,也可以显示其他一些内容比如图像和视频等等。用户点击连接将产生另一个请求,就开始一个新的处理过程。标准web服务器处理静态内容处理得很好,但处理动态内容时则需要额外的帮助手段了。定义 静态内容直接来自于文本或数据文件,比如HTML或者 JPEG文件。这些文件可以随时改变,但通过浏览器请求时,却不能自动改变。相反,动态内容是临时产生的,典型地,它是针对浏览器的个别请求的响应。公共网关接口(CGI):第一个普遍用来产生动态内容的标准是通用网关接口(Common Gateway Interface (CGI))。CGI使用标准的操作系统特征,比如环境变量和标准输入输出,在Web服务器间以及和主机系统间创建桥接和网关。其他程序可以看到web server传递过来的请求,并创建一个定制的响应。当web服务器接收到一个对CGI程序的请求时,它便运行这个程序并向其提供它请求里面所包含的信息。CGI程序运行,并将输出返回给Web server,web server 则将输出响应给浏览器。CGI定义了一套关于什么信息将作为环境变量传递,以及它希望怎样使用标准输入和输出的惯例。与HTTP一样,CGI是灵活和易于实现的,并且已经有大量现成的CGI程序。CG
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:洗衣店管理系统设计
链接地址:https://www.renrendoc.com/p-32629852.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!