

























1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。
共基础上的应用框架从而为他们的产品提供可重用服务的基本架构。
框架是经典的构建购买命题。
如果你独立构建它那当你可以独立完成的时候你就会理解它,但是你又花费了多长时间来用之自如呢如果你购买了它,你必须得克服学习曲线并且学习它将话费你大约多长时间这里没有明确的答案,因此许多专家会认为,例如这样的框架能提供比全新的开发更显著的投资回报,特别是对大型项目来说尤为显著。
其它类型的框架框架的思想不仅仅用于应用程序也可以应用于组件。
通过这些,我们以前也提到过些可以与在起使用的框架。
其中包括搜索引擎,工具包,验证器,以及标签库等等。
就像应用框架样,这些工具也提供了些可以用在用户的定制组件之中的半成品。
些框架已经呗限定于专门的开发环境之中。
而以及本文中涉及的其他框架却不是这样的。
你可以在各种各样的开发环境中来使用例如甚至在中都可以使用。
只要是可以用来开发的工具都可以用来开发。
使用的技术使用的应用开发基于大量的其它技术。
这些技术并不专属于而是针对所有应用的。
开发人员之所以使用之类的框架的个原因是为了隐藏在以及之类技术后面的繁琐细节。
作为个开发人员,你并不需要完全了解的所有相关知识,但是它们有助于解决比较麻烦的问题。
超文本传输协议当两个国家质检进行交涉时,外交官们总是遵循定的正式协议。
设计外交协议的主要目的是避免误会从而防止谈判破裂。
同样,当两台计算机需要进行会话时,它们也要遵循个正式协议。
这个协议定义数据如何传输以及到达后如何进行解码。
应用程序使用协议从而在运行浏览器的计算机和运行的服务器的程序之间传输数据。
很多服务器应用程序使用之外的其他协议。
这些协议中的大多数是计算机之间的持久性连接。
应用服务器可以清楚的知道是谁什么时候连接的并截止到何时中断的连接。
因为它们知道每个连接的状态甚至每个使用它的人,这就是所谓的状态协议。
与此相反,被认为是个无状态协议。
可以接受来自于各种客户的各种请求并且可以提供些响应,即使这个响应仅仅是个。
没有大量的协议和连接持久性,无状态协议可以处理大量的请求。
这就是可以被数量如此巨大的计算机使用的原因之。
成为通用标准的原因之是简单性。
个请求看起来就像个平常的文本文档。
这使应用程序创建请求变得相当容易。
你甚至可以通过标准的程序比如说来手动发送请求。
当响应返回时,开发人员也可以直接在文本文档中读到其中的内容。
请求的首行包含方法,其后是请求的来源地址和版本。
可以没有也可以有多个。
头向服务器提供额外的信息。
可以包括浏览器的类型和版本,可接受的文档类型,浏览器的,仅仅为了个名等等。
在这种请求方法中,和是最流行的。
当服务器接收到请求,服务器会马上产生个响应。
响应的首行称为状态行包含了协议的版本,字符型状态,以及该状态的简短描述。
紧随状态行其后,服务器将返回组类似于请求头的响应头。
按我们所描述的,并不会在请求之间保留状态信息。
服务器接受请求,发出响应,并且顺利的处理文本请求。
尽管是简单与快捷的,但是无状态的协议并不适合于需要跟踪用户状态的动态应用。
和重写是两种应用于请求之间跟踪用户状态的方式。
是种用户电脑上的特殊信息包。
重写是在页面地址中存储个特殊的标记从而让服务器可以用它来跟踪用户。
这两种方法都不是完美的,而且使用哪个都意味着开发工程时需要进行额外的工作。
对其本身来说,标准的服务器并不需要发送动态内容。
它主要是使用请求来定位并在相应中返回文件资源。
通常这里的文件使用超文本语言,格式化以及显示它们。
页面通常包含些到其他页面的超连接,或者说些其他内容比如图片视频等等。
用户点击链接产生个新的请求,同时开始了个新的处理过程。
标准服务器对于静态内容和图片的处理相当好,但处理动态内容时需要外力的帮助。
定义中的静态内容直接来自于文本或数据文件,例如或文件。
这些文件可以随时改变,但通过浏览器请求时却不能自动改变。
相反,从另方面来说,动态内容是临时产生的,它是针对浏览器的个典型的个别请求的响应。
公共网关接口首个广泛使用动态内容的标准是通用网关接口。
使用环境变量,标准的输入输出等标准的操作系统特征,在的方法有两种访问器是用来读个状态的修改器是用来修改状态的。
修改器方法般以小写的后跟属性名来命名的。
属姓名的首字母必须大写。
其返回值类型般为因为修改器只能改变属性值,所以无返回值类型。
属性简单的修改器在其方法体中可能只有个参数,该参数可以是任何类型。
修改器有时候也可根据其前缀称为设置器。
相似的设计模式也应用于访问器方法的创建。
访问器方法般以小写的为前缀,后跟属性名来命名的。
属性名的首字母必须大写。
返回值类型必须与对应的修改器方法的参数类型匹配。
属性简单的访问器在其方法体中不能接受任何参数。
毋庸置疑访问其经常被称为获取器。
例如对类型的属性的访问器方法体可能为如果访问器返回个逻辑值,会有个变体模式。
代替使用小写的,逻辑属性的访问器可以使用,前缀后跟属性名。
属性名的首字母必须大写。
返回值必须是个逻辑值不管是型还是型。
逻辑访问器在其方法体中不能接受任何参数。
例如,对属性的布尔型访问器的方法体可能为在使用时,规范的方法体标识扮演了极为重要的角色。
其他组件可以使用的反射并且通过查找前缀为的方法来发现的属性。
如果组件发现个这样的标识,那它就知道这个方法可以用来访问或者改变的属性。
公司引入是为组件服务的,但是它们已经用在了开发的各个方面,甚至包括应用。
当公司的工程师开发出标签的扩展类时,也开始设计它们以和起运行。
个页面的动态数据可以使用来进行传递,并且标签可以用的属性来定制页面的输出。
来源于服务器之间,以及和主机系统之间创建桥接和网关。
其他应用可以看到传递过来的请求并创建个定制的响应。
当个服务器收到个对程序的请求时,服务器运行程序并向提供它请求里面所包含的信息。
程序开始运行后将输出返回给服务器。
服务器把相应发送给浏览器。
定义了套关于什么信息将作为环境变量传递以及它希望如何使用标准的输入输出。
就像样,是灵活和易于实现的,并且已经有大量成型的程序。
程序的主要缺点是每个请求对应个新副本。
这是个相对昂贵的处理方法对大容量站点来说每分钟的数千个请求可能会使站点瘫痪。
另个缺点是依赖于平台。
为个操作系统写的不能在其他操作系统上使用。
公司的平台直接解决了程序的两个主要缺点。
首先比程序提供更好的性能和资源利用。
其次,的次编写,随处运行的特性意味着可以在存在虚拟机的操作系统间随意移动。
类似于个微型服务器。
它接受请求并产生响应。
但是,与常规服务器不同的是,是专门用来帮助开发人员创建动态应用的。
自身是如同其他任何个类,需要编译成字节码文件的类。
访问特定服务的,但它仍然是个运行于程序之中的对象并可以利用所有的资产。
为了使常规服务器能访问,被安放在个容器中。
容器连接服务器。
每个都可以声明它想处理哪种。
当符合条件的请求到达服务器的时候,服务器将请求传递给容器,容器则调用。
但是与程序不同,并不是每个请求都会创建新的。
旦容器实例化了个,它就仅为每个新的请求创建个新的线程。
线程比程序的服务器话费要少很多。
旦被创建,使用它处理额外的请求仅带来很小的额外开支。
开发人员可以使用方法保持对昂贵资源的引用,比如连接数据库或者接口等等,以便它们可以在不同的请求之间进行共享资源。
获得这些资源需要好肥几秒钟的时间这比大多数网上冲浪的人的最长等待时间要长些。
的另个好处是,它可以多线程运行,开发人员必须特别注意确保是线程安全的。
对于程序虽然前进了大步,但它也不是无敌的。
为了产生响应,开发人员仍然使用大量的语句来生成。
代码如下在中产生响应是很正常的。
也有些库来帮助你产生,但是随着应用的日益复杂化,开发人员脱离了设计师的身份。
与此同时,给出这种选择,大多数项目经理更喜欢选择将团队分成几个小组来工作。
他们喜欢设计人员处理表示层的工作,与此同时工程师则侧重于业务逻辑。
单独使用的场合下鼓励混合标记和业务逻辑,这让分组工作变得困难。
为了解决这个问题,公司提出了个将脚本和模板技术结合到个组件中的服务器页面技术。
为构建页面,开发人员开始用以前创建页面的方式来创建页面,使用语法。
为了在页面中引用动态内容,开发人员还将脚本元素置入页面之中。
脚本元素是些标记语言压缩了可以被识别的逻辑。
你可以在页面中简单的识别出被压缩在对标记中的脚本元素。
为了让大家容易识别页面,文件的扩展名须为。
当个客户请求页面时,容器将页面翻译成源代码文件并将它编译成类文件就像你从零开始写个文件样。
运行的时候,容器也可以检测出文件对应的类文件的最后更新时间。
如果文件在上次编译之后被修改过,容器将再次翻译和编译文件。
项目经理现在可以将表示层工作分配给开发人员,而开发人员将会被分配些业务逻辑工作。
定要记住最重要的是页面其实就是个
