资源描述
摘 要
该系统用来实现互联网中office文档的自动生成与下载服务。
在21世纪,网络对信息传递与加工是当代办公自动化的一项重要内容。office文档的自动化处理会帮助公司内部之间或公司对外界的信息高时效性传递,完成了对文本信息的自动化生成与处理。公司通过这项技术能够比较方便的发布信息并且生成信息的office文档文件,用户下载到office文档文件就能够更好的对文本信息进行修改与再加工。
系统主要功能包括网站的实时更新、客户与服务器的信息交互、office文档文件在Web环境下的动态生成与下载。经过进一步完善与测试,本项技术将会在网站建设与Web应用程序项目上投入使用。
关键词:Web;Mcrosoft Office;Mcrosoft Visual Studio
Abstract
The system is used to achieve site office file automatically generating and downloading in the website environment services.
In the 21st century,the network for information transfer and processing of contemporary office automation an important part. Office automation document processing will help companies or between companies outside the high timeliness of information transmission, completed the automation of text information is generated and processed. Through this technology can be quite easy to disseminate information and generate information office document files. Users download files to the office will be able to better document the right to amend the text information and reprocessing.
The main features include real-time updates of web site, the client and the server information exchange, office document files in the Web environment dynamically generated and downloaded. After more improvement and test , this technology will be applied to the web site building and Web application projects.
Key words:Web;Mcrosoft Office;Mcrosoft Visual Studio
前 言
互联网成为人们获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Web应用程序的出现代表人们对信息传递、共享与加工的更高需求,标志着软件开发走入网络化的时代。
本文主要阐述的是用于网站开发项目上WEB环境下Office文档的自动生成与下载的专项技术。本文按整个解决方案的模块来组织章节。全文分为五章。第一章介绍开发环境,开发语言的概况。第二章介绍系统分析,包括需求分析、系统的体系结构和系统的工作流程。第三章介绍系统设计,包括具体的模块设计、开发的技术和理论。第四章介绍系统实现,包括系统开发细节、开发的重点难点与系统的优化。第五章介绍系统测试,包括系统的完善和改进措施。
目 录
第1章 概 述 1
1.1技术研究意义 1
1.2 Visual Studio.NET 1
1.3 ASP.NET与C#语言 1
1.4 SQL Server 2000与SQL语言 3
1.5系统的开发环境 4
第2章 服务系统分析 5
2.1需求分析 5
2.2系统结构图 5
2.3工作流程图 6
第3章 服务系统设计 8
3.1模块设计 8
3.2数据库的建立 9
3.3网络环境与环境下的压缩文件 10
3.4网络下的安全策略 12
第4章 自动生成与下载技术的实现 14
4.1数据库的连接 14
4.2 Office文档文件的生成 16
4.3 Web环境中的技术问题 19
第5章 系统测试 24
结 论 25
参考文献 26
致 谢 27
第1章 概 述
1.1技术研究意义
21世纪是信息化网络化的时代,随着社会的进步人们对于当代生产生活方式有着更高的要求,如何使工作更加人性化成了我们追求的目标。世界的各个地区都面临着减少机械化劳动提高工作效率的实际问题,该技术就是为了解决这一问题而提出的。在网络环境下,政府、学校、医院、公司、生活等领域都面临着日常信息的发布传达,对文档文件的自动化生成与下载技术可以减少工作量,减少时间与人力的损耗,方便快捷的加工信息,使我们的工作更加轻松生活更加舒适。
1.2 Visual Studio.NET
Visual Studio.NET是Miscrosoft公司新一代的软件开发平台,是.NET Framework的重要战略产品。ASP .NET作为Miscrosoft Visual Studio.NET组成部分之一,成为Interent和Interent开发Web的新一代开发工具,逐渐为广大Windows程序员普遍使用。同时Visual C#.NET是微软实现.NET战略的核心开发语言之一,为了让这一庞大的C语言用户加入.NET开发阵营,微软对过去的C开发工具进行了大幅度的改造,使之适应.NET平台的需要[1]。
Web 应用程序的优点在于可以让企业间的商业数据及交易等行为,透过因特网的通讯来彼此交换讯息。这样不但可以节省数据交换的时间,而且可以简化流程。但是在新一代的.NET 开发平台还没有出现之前,要让因特网应用程序达到上述的功能是一项浩大的工程。牵涉到的技术及程序开发语言,可能包括了HTML、ASP、VBScript、JavaScript、C++、ADO、SQL、COM、MTS 等。这样的环境对于开发人员来说,想要快速的开发一个功能强大且稳定可靠的Web 应用程序,不是一项轻松的工作。为了因应Web 架构的快速发展及广大程序开发人员的需求,新一代开发平台目前已经推出了,即为Visual Studio.NET。VisualStudio.NET 开发平台里面包含Visual Basic.NET、C#、Visual C++、ASP.NET 以及VisualFoxPro。为了让这套开发平台更容易开发以因特网为基础的应用程序,这个开发平台做了许多和以往不同的改革,这个改革就是.NET Framework。.NET 架构就是为了让开发分布式因特网应用程序架构变得更简单容易而发展出来的[2]。
1.3 ASP.NET与C#语言
ASP.NET是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的WEB应用程序。ASP.NET构架是可以用Microsoft(R)公司最新的产品 Visual Studio.NET开发环境进行开发。ASP.NET提供许多比现在的Web开发模式强大的的优势。
ASP.NET是建立在通用语言运行时CLR上的应用程序框架。它用来在服务器端构建功能强大的Web应用程序。ASP.NET提供了几个超越以前Web开发模式的优点:
(1) 增强的性能
ASP.NET是运行在服务器端的编译后的CLR代码,而不像ASP那样解释执行。ASP.NET利用提前绑定、即时编译、本地优化和缓存服务来提高性能。
(2) 世界级水平的开发工具支持
在Visual Studio.NET的集成开发环境(IDE)中,ASP.NET框架由丰富的工具箱和设计器组成,所见即所得的编辑方式、拖放服务器控件以及自动部署,仅仅是这一强大工具所提供的一少部分功能。
(3) 强大而富有弹性
由于ASP.NET是基于(CLR)的,因此整个.NET平台的强大而富有弹性,同样也可以应用于Web应用程序开发者。.NET框架的类库、消息以及数据访问解决方案都可以无缝集成到Web。ASP.NET也是语言中立的,因此可以选择你最熟悉的语言,或者通过几种语言来共同完成一个应用。而且,CLR的互用性可以保证升级ASP.NET的时候,现存的基于COM的开发投资依然保留。
(4) 可伸缩性和有效利用性
ASP.NET被设计成可伸缩的,能为集群和多处理器环境设计提高性能。而且,ASP.NET运行时密切监视和管理进程。这样,如果发生了错误的行为,例如漏洞和死锁,新的进程会在当前位置建立起来,来帮助应用程序继续处理事件请求。
(5) 可定制和扩展
ASP.NET提供一种良好的扩充结构,允许开发者在适当的级别插入他们的代码。事实上,使用自己编写的组件可以扩展或者替换ASP.NET运行时的任何子组件。执行自定义验证或状态服务变得前所未有的容易。
(6) 更加安全可靠
内建的Windows验证和每个应用程序的独立配置,可以使应用程序更加安全除了可以像传统的ASP使用IIS进行安全管理,ASP.NET还通过对web.config文件的设置来实现其安全策略。
在ASP.NET平台上可以用C#、Visual Basic等语言编写代码。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,它是微软公司.NET windows网络框架的主角。C#不但可以开发基于ASP.NET的应用程序,也可以开发基于WinForm的程序。 微软c#语言定义主要是从C和C++继承而来的,同时与Java有相似的语法和编译成中间代码再运行的过程.但是C#又有自己的特点并且与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的[3]。
在ASP.NET平台上可以用C#、Visual Basic等语言编写代码。C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,它是微软公司.NET windows网络框架的主角。C#不但可以开发基于ASP.NET的应用程序,也可以开发基于WinForm的程序。 微软c#语言定义主要是从C和C++继承而来的,同时与Java有相似的语法和编译成中间代码再运行的过程.但是C#又有自己的特点并且与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的。
1.4 SQL Server 2000与SQL语言
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。它能使用户快捷地管理数据库和开发应用程序。SQL Server 2000使用了了先进的数据库结构,与WindowsDNA紧密集成,具有强大的Web功能,它可以利用高端硬件平台以及最新网络和存储技术,可以为最大的Web站点和企业应用提供优良的扩展性和可靠性,使用户能够在Internet领域快速建立服务系统,为占领市场赢得宝贵的时间。同时,SQL Server 2000还为用户提供了重要的安全性功能的增强,为用户的数据安全提供了可靠的保证。另外,SQL Server 2000还为用户提供了重要的安全性功能的增强,为用户的数据安全提供了可靠的保证。另外,SQL Server 2000在数据库服务器自动管理技术方面处于数据库领域的领先地位,它可以使用户免去繁琐复杂的工作量,从而有精力处理更重要的问题,使用系统在商业战略上占得先机[4]。
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL语言结构简洁,功能强大,简单易学,得到了广泛的应用。如今无论是Oracle ,Informix,SQL server这些大型的数据库管理系统,还是微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。
1.5系统的开发环境
该系统所采用的技术源于Visual Studio.NET对Microsoft Office的引用,采用了当前流行的Microsoft SQL Server 2000数据库系统,前端开发工具为:ASP.NET,开发语言选择C#。
硬件环境
处理器:Intel Duo T5600
内存:1G
硬盘空间:120G
软件环境
服务器系统: WindowsNT/2000/XP(IIS);
后台数据库:SQL Server 2000;
客户端操作系统Windows98/NT/2000/XP
浏览器:Internet Explore 7
第2章 服务系统分析
2.1需求分析
需求分析是软件生命周期的一个重要阶段,它最根本的任务是确定为了满足用户的需要时系统必须要做什么。具体的说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展前景;必须仔细分析系统中的数据,既要分析系统中的数据流又要分析长期使用的数据存储[5]。
首先,作为服务器端的管理员能够对WEB内容进行创建和添加,并且还能够对数据进行修改与更新。对于客户端来讲,系统应该具备与客户进行实时交互的功能。客户可以浏览到WEB 数据,然后对感兴趣的信息自由选择不同格式的形式进行下载。这一基本功能就要求该系统具有动态网页特点,所以必须开发出动态、高性能的Web服务器端,且能实现复杂的Web应用。
其次,该系统必须有后台数据库支持。作为一般服务器要存储和处理大量的数据,这必然要消耗大量的系统资源,我们必须尽量减少系统开销。另外服务器的空间资源是有限的,网站工作时可能会产生大量的信息,这些数据不可能全部放系统文件夹下面否者会导致系统所占空间无限膨胀。最后在系统的安全性方面,要求对客户端的访问进行控制,防止系统资源被非法窃取以及外部对服务器的恶意损耗和攻击。以上几点都证明系统的后台要求一款高效率、安全性好的数据库支持。
最后,作为本技术的核心内容,该系统应具备自动化创建Office文档(其中包括Excel 、Word等文件)的功能。所谓自动化还具备对数据的自选型提取,与此同时能够对文档内容的更新与删除。为了遵循网络传输的基本协议,实现文件的下载功能,要求系统能够对生成的文档文件进行压缩处理,保证多任务多用户下系统的正常使用。这些功能都依赖于对Office的调用、对文件压缩控件的引用以及具体编程来实现。
通过对交互系统的总体需求的分析,我们明确了任务,清楚的知道了具体要做什么。
2.2系统结构图
随着Internet的渗透,数据库应用系统开发及实施的方法发生了重大的变化,从Client/Server体系的二层结构扩展到了由Web浏览器、应用服务器、数据库服务器组成的Browser/Server体系的三层结构。客户端需要一个Web浏览器,负责显示应用服务器端的运行结果,借助于Ajax、JavaScript等技术进行一些简单的客户端事务处理。应用服务器端负责接受远程或本地的页面请求,然后运行服务器端脚本,借助于ADO等中间部件把数据请求发送到DB Server上以获取相关数据,再把结果数据转化成Html及各种脚本传回客户端的Web浏览器。数据库服务器端负责管理数据库,处理数据更新及完成查询要求、运行存储过程。三层体系结构示意图如下:
数据库
服务端系统
http
http
信息处理
客户端引擎
ftp
ftp
Browser Server DB
图2.1 系统结构图
客户端(Brower):由普通的客户端添加了客户端引擎。当客户端向服务器端提交申请时,不是所有的用户请求都提交给服务器, 像—些数据验证和数据处理等都交给Ajax引擎自己来做,最大可能减少了冗余请求和影响对服务器造成的负担。
服务器端(Server):因为运用了Xml配置文档,使客户端的请求得到了个性化的处理。请求得到回应返回客户端时相应显示出来的就是个性化页面。而且在服务器端还配置了数据连接,当数据库端改变时,不用担心服务器端改变,通过数据连接来更改对数据库的操作。
数据库端(DB):存储数据库,保存用户的各种信息。通过ADO.NET与服务器端连接,进行事务操作[6]。
2.3工作流程图
通过对系统进行详细具体的分析之后,已经明确了系统的总体要求以及系统要实现的基本功能。但是要想使用户及有关的系统开发人员能够更加形象的了解这个系统的功能及其简单处理过程,需要一个清晰的图形化框图来描述系统的逻辑结构,让用户及其它人员形象的了解系统要完成的基本功能。
工作流程图是一个很好的工具,它是逻辑系统的图形表示。它是对系统的一次大大的压缩和简化,只考虑其中最主要的框架而不涉及具体的物理元素;只描述数据在系统各部分之间的流动和数据处理过程而不涉及系统功能的具体实现。因此它是软件设计的很好的出发点[7]。
本系统通过IE浏览器把主页的信息显示给用户。根据用户的要求,系统从数据库中查找到相关的信息加工成Office文件发送到客户端。通过以上工作流程分析,画出工作流程图,如图:
http传输
数据库
提取数据
发送信息
Microsoft Office
ICSharpCode.SharpZipLib
服务端系统
收到信息
浏览器
引用
用户
收到请求
发送请求
创建并压缩
指定目录
导出文件
图2.2 工作流程图
第3章 服务系统设计
3.1模块设计
模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块合起来组成一个整体,可以完成指定的功能,满足问题的要求。
采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易调试和测试,因而有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所以模块化能提高软件的可修改性[8]。
采用模块化应尽量做到模块独立,即希望设计这样的结构,使得每个模块完成一个相对独立的特定子功能,并且和其它模块之间的关系尽量简单。模块独立是好设计的关键,而设计又是决定软件质量的关键环节[9]。
人们在开发计算机软件的长期实践中积累了丰富的经验,总结这些经验得出了一些启发式规则,主要包括以下几个方面:
(1) 改进软件结构提高模块独立性;
(2) 模块规模应该适中;
(3) 深度,宽度,扇出和扇入都应适当;
(4) 模块的作用域应该在控制域之内;
(5) 力争降低模块接口的复杂程度;
(6) 设计单入口单出口的模块;
(7) 模块功能应该可以预测。
本系统完成的内容包括文章与图片的展示,Execl文件的生成,Word文件的生成,文件的压缩存放与文件的打包下载。根据完成的功能可以分为数据库连接模块,图片和文字展示模块,Excel生成模块,Word生成模块,文件压缩模块与文件传输模块。具体的系统模块图如图3.1所示:
数据模块
信息加工
文件生成
信息加工
文件生成
文件更新
文件压缩
文件读取
文件删除
文件存放
身分验证
文件传输
信息呈现
操作
数据库
压缩管理
Asp.NET平台
WEB模块
Word处理
Excel处理
图3.1 系统模块图
3.2数据库的建立
一个完整的系统要大量的数据,建立一个数据库来存储数据是非常重要的。本系统的数据库开发的工具采用的是SQL Server。新建数据库可以采用两种方法,包括使用企业管理器创建数据库和使用插寻分析器创建数据库,其中前者方法简单,初学者比较容易掌握[10]。
在企业管理器中直接创建数据库的步骤如下:
(1) 启动企业管理器。
(2) 在控制台目录中选择数据库节点。
(3) 在数据库节点上单击右键,并在弹出菜单中选择新建数据库,
和建立数据库一样,同样可以使企业管理器和通过编写SQL语句在查询分析器中执行来建立表。其中企业管理器提供了方便的图形化工具设计表窗口,在这个窗口可以轻松地创建和管理表,而使用SQL语句则相对有一些难度。
使用企业管理器创建一个数据库表的操作步骤如下:
(1) 打开企业管理器,在企业管理器中的树状目录窗口中展开需要创建新表的数据库。
(2) 单击表节点,此时该数据库中的表对象就会显示在右边的内容窗口中,然后执行操作打开表设计窗口。
(3) 在表设计窗口中定义数据表字段。
关于数据的提取和修改,可以同过编程对具体SQL语句进行加工来实现。详细内容会在第四章做出进一步的阐述。
3.3网络环境与环境下的压缩文件
系统以.NET作为开发平台,所以要对Microsoft .NET开发框架有一个整体的认识,如下图3.2所示:
Visual Studio.NET
C++
JScript
C#
VB
通用语言规范
ASP.NET
Windows
应用
网络
服务
网络
表单
ADO.NET
基础类库
通用语言运行时
图3.2 Microsoft .NET开发框架
从上图可以简要的了解.NET开发框架的几个主要组成部分:首先是整个开发框架的基础,即通用语言运行时以及它所提供的一组基础类库。在开发技术方面,.NET提供了全新的数据库访问技术ADO .NET,以及网络应用开发技术ASP .NET和Windows编程技术Win Forms。而其中的ASP.NET是下一代ASP(Active Server Page),是.NET构架的重要组成部分。超绝的性能加上微软的实力,可以预见不久ASP.NET将成为互联网开发的首选。
ASP.NET不仅仅是下一版本的Active Server Page (ASP),而且它是统一的Web开发平台,用来提供开发人员生成企业级Web应用程序所需的服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序。可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强该ASP应用程序的功能。
ASP.NET是一个已编译的、基于 .NET的环境,可以用任何与 .NET兼容的语言包括Visual Basic.NET、C#.NET 和JScript .NET创作应用程序。另外,任何ASP. NET应用程序都可以使用整个 .NET框架。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
ASP.NET的结构中, IIS(Internet Information Services)为Windows NT/2000/XP操作系统的一个组件,所有Web客户端和ASP.NET应用程序之间的联系都必须通过IIS来进行。ASP.NET应用程序是建立在.NET框架技术的基础上的,因此在这些应用程序中可以充分利用由.NET框架技术提供的各种特性(例如Web表单和Web服务),通过对这些特性的利用,体现.NET框架技术对RAD(Rapid Application Development)和OOP(Object-Oriented Programming)技术的支持,实现减少编程工作量和快速开发的目标[12]。
ASP.NET 是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的 Web 应用程序。与以前的 Web 开发模型相比,ASP.NET 提供了数个重要的优点:
(1) 增强的性能。ASP.NET 是在服务器上运行的编译好的公共语言运行库代码。与被解释的前辈不同,ASP.NET 可利用早期绑定、实时编译、本机优化和盒外缓存服务。这相当于在编写代码行之前提高了性能;
(2) 世界级的工具支持。ASP.NET 框架补充了 Visual Studio 集成开发环境中的大量工具箱和设计器。WYSIWYG 编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种;
(3) 威力和灵活性。由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平台的威力和灵活性。.NET 框架类库、消息处理和数据访问解决方案都可从 Web 无缝访问。ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割应用程序。另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的开发中的现有投资;
(4) 简易性。ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和站点配置。例如,ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件。另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发;
(5) 可管理性。ASP.NET 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 Web 应用程序。由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。此“零本地管理”哲学也扩展到了 ASP.NET 框架应用程序的部署。只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器。不需要重新启动服务器,即使是在部署或替换运行的编译代码时;
(6) 可缩放性和可用性。ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求;
(7) 自定义性和扩展性。ASP.NET 附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。实际上可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件。实现自定义身份验证或状态服务一直没有变得更容易;
(8) 安全性。借助内置的 Windows 身份验证和基于每个应用程序的配置,可证应用程序是安全的。
另外,系统要对文件进行压缩处理才能方便的提供下载服务。
在网络环境下,Zip是一种受人欢迎的数据传输和存储标准,因为它可以节省磁盘空间和网络带宽。典型的文本和数据库文件可以被压缩至它们原始大小的 10%。即使二进制文件不能进行同样的压缩,通常也可以获得 50% 的压缩比。
在存储文件或者通过网络发送文件时,使用 Zip 压缩可以节省空间和网络带宽。此外,还不会丢失经过 Zip 的文件夹的目录结构,这使其成为非常有用的压缩方案。C# 语言不具有任何使您可以操纵 Zip 文件的类,但是由于面向 .NET 的语言可以共享类实现,并且 J# 在 java.util.zip 命名空间中公开了类,因此您可以在 C# 代码中使用这些类[13]。
Zip文件的一个附加优点是单个文件可以包含多个文件,同时可以保留目录结构。这使您可以发送附加到电子邮件消息中的完整目录树,并且让收件人恢复原始文件结构。
Zip数据格式是开放的,并且不会涉及专利权或其他法律问题。开发人员可以自由地创建操纵 Zip 文件的应用程序,以及使用低级别 Zip 压缩算法来暂时减小他们自己的自定义数据的大小。Zip 数据规范的作者在名为 zlib 的库中向开发人员提供压缩和解压缩算法。Java 平台在 Java 开发工具包 (JDK) 的版本 1.1 中采用了该库,以构成 Java 存档 (JAR) 文件格式的基础,因此从 JDK 版本 1.1 开始,标准 Java 语言 API 就包含了操纵 Zip 文件所需的类。可以在 java.util.zip 命名空间下找到这些类。
3.4网络下的安全策略
在软件的实际应用中,系统的安全问题是必须考虑的内容。在ASP环境下的安全方案主要包括身份验证、授权与安全通信三个方面。任何成功的应用程序安全策略的基础都是稳固的身份验证和授权手段,以及提供机密数据的保密性和完整性的安全通讯。
身份验证(authentication)是一个标识应用程序客户端的过程,这里的客户端可能包括终端用户、服务、进程或计算机,通过了身份验证的客户端被称为主体。身份验证可以跨越应用程序的多个层发生。终端用户起初由Web应用程序进行身份验证,通常根据用户名和密码进行;随后终端用户的请求由中间层应用程序服务器和数据库服务器进行处理,这过程中也将进行身份验证以便验证并处理这些请求。
身份验证大体包括ASP.NET身份验证、Enterprise Services身份验证和SQL Server身份验证三种模式。其中ASP.NET身份验证模式包括Windows、Forms(窗体)、Passport(护照)和None(无)。
本系统采用Windows身份验证模式。使用这种身份验证模式时,ASP.NET依赖于IIS对用户进行验证,并创建一个Windows访问令牌来表示已通过验证的标识。
Cookies用于存储特定用户信息,它提供了web程序中一种有用的方式。多年以来,Javascript开发人员已经进行了有关cookie的大量工作。同样,ASP.NET通过System.Web空间名称也提供了cookie的访问。虽然不应该使用cookie来存储一些敏感性的数据,但是,它们是处理锁细数据的一个极好的选择。.NET System.Web空间名称包含三个类,可以使用它们来处理客户端的Cookies。
(1) HttpCookie:提供一个建立和操作独立HTTP cookies的安全类型的方式。
(2) HttpResponse:Cookies属性允许客户端cookies被操作。
(3) HttpRequest:Cookies属性允许访问客户端操作的cookies。
HttpResponse和HttpRequest对象的Cookies属性将返回一个HttpCookieCollection对象,它包含着,将单独的cookies添加到集合(collection)中,以及从集合(collection)获得一个单独的cookies。
HttpCookie类
HttpCookie类针对于客户存储之用而建立的单独cookies。一旦HttpCookie对象被建立,你可以将其添加到HttpResponse对象的Cookies属性中。同样的,你可以通过HttpRequest对象访问现有的cookies。HttpCookie类包含以下的公有属性:
Domain(域名):获得或设置与cookie有关的域名,可用于限制特定区域的cookie访问。
Expires(期限):获得或设置cookie的终止日期和时间,你可以将其设置为一个过去的日期以自动终止或者删除cookie。
Names(名称):获得或设置cookie名称。
Path(路径):获得或设置cookie的虚拟路径。这一属性允许你限制cookie范围,也就是说,访问cookie只能限制于一个特定的文件夹或者路径。设置这一属性限制为只能访问特定路径和该路径下的所有文件。
Secure(安全):发信号以表示是否使用Secure Sockets Layer (SSL)来发送cookie值。
Value(值):获得或设置一个单独的cookie值。
Values(信息):返回包含在cookie中的key/value的一个集合。
通过实例化HttpCookie类,系统可以对客户追加cookie,对cookie赋予用户的时间与IP地址等信息。这样系统可以进行身份验证,同过编成对用户的访问与请求加以限制,实现了保护系统安全的目的。
第4章 自动生成与下载技术的实现
4.1数据库的连接
4.1.1 ADO.NET模型简介
ADO.NET提供对SQL Server等数据源以及通过OLE DB和XML公开的数据源的一致访问。数据共享使用者应用程序可以使用ADO.NET来连接到这些数据源,并检索、操作和更新数据。
ADO.NET有效地从数据操作中将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ADO.NET包含用于连接到数据库、执行命令和检索结果的.NET Framework数据提供程序。你可以直接处理检索结果,或将其放入DataSet对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊的方式向用户公开。
ADO.NET的设计目的是从数据操作中分离出数据访问。ADO.NET的两个核心组件会完成此任务:DataSet和.NET Famework数据提供程序,后者是一组包括Connection、Command、DataReader和DataAdapter对象在内的组件。
通过ADO.NET访问数据库的一般步骤如下:
(1) 建立数据库连接对象(Connection对象)
(2) 打开数据库连接(Connection对象的Open方法)
(3) 建立数据库命令对象,指定命令对象所使用的连接对象(Command对象)
(4) 指定命令对象的命令属性(Command对象的CommandText属性)
(5) 执行命令(Command对象的方法)
(6) 操作返回结果
(7) 关闭数据库连接
4.1.2连接SQL Server数据库
数据访问中首先必须是建立到数据库的物理连接。ADO.NET使用Connection对象标识与一个数据库的物理连接。但实际上ADO
展开阅读全文