到应用中,实现了次编写,到处实现。
而且更为重要的是,如果遵循些良好的设计原则的话,就可以把表示和内容相分离,创造出高质量的可以复用的易于维护和修改的应用程序。
比方说,在文档中如果嵌入过多的代码,就会导致开发出来的应用非常复杂难以阅读不容易复用,而且对以后的维护和修改也会造成困难。
事实上,在的论坛中,经常可以看到些提问,代码很长,可以逻辑却不是很清晰,大量的和代码混杂在起,让人看得头雾水。
这就是随意开发的弊端。
早期的动态网页主要采用,公共网关接口技术,你可以使用不同的语言编写程序,如或等。
虽然技术发展成熟且功能强大,但由于编程困难效率低下修改复杂等缺点,所以有逐渐被取代的趋势。
在所有的新技术中,具备更高效更容易编程功能更强更安全和具有良好的可移植性,因而被许多人认为是未来最有发展前途的动态网站技术。
与相似,支持请求响应模型。
当个客户向服务器递交个请求时,服务器把请求送给,负责处理请求并生成响应,然后送给服务器,再由服务器发送给客户。
与不同的是,没有生成新的进程,而是与处于同进程中。
它通过使用线程技术,减小了服务器的开销。
处理请求的过程是这样的当收到来自客户端的请求后,调用方法,该方法中先判断到来的请求是什么类型的,然后调用相应的处理方法并生成响应。
别看这么复杂,其实简单说来就是个类。
与般类的不同之处是,这个类运行在个容器内,可以提供管理和对象生命周期管理。
因而当你使用的时候,你可以得到平台的所有好处,包括安全性管理使用访问数据库以及跨平台的能力。
而且,使用线程,因而可以开发出效率更高的应用。
技术是的个关键技术,它在更高级的层次上抽象。
它可以让常规静态与动态产生的内容相结合,看起来像个网页,却作为来运行。
现在有许多商业应用服务器支持技术,比如等等。
使用比用更简单。
如果你有个支持的服务器,并且有个文件,你可以把它放倒任何静态文件可以放置的位置,不用编译,不用打包,也不用进行的设置,就可以像访问普通网页那样访问它,服务器会自动帮你做好其他的工作。
文件看起来就像个普通静态文件,只不过里面包含了些代码。
它使用的后缀,用来告诉服务器这个文件需要特殊的处理。
当我们访问个页面的时候,这个文件首先会被引擎翻译为个源文件,其实就是个,并进行编译,然后像其他样,由引擎来处理。
引擎装载这个类,处理来自客户的请求,并把结果返回给客户,如下图所示图调用页面的流程以后再有客户访问这个页面的时候,只要该文件没有发生过更改,引擎就直接调用已经装载的。
如果已经做过修改的话,那就会再次执行以上过程,翻译编译并装载。
其实这就是所谓的第人惩罚。
因为首次访问的时候要执行系列以上的过程,所以会耗费些时间以后的访问就不会这样了。
提供了种强有力的,用这个可以访问关于请求会话和应用程序的所有信息。
将和页面组合起来使用,可以把应用程序的逻辑部分和外观呈现部分清楚地分开换句话,利用这个方式可以对模型视图和控制器这三种角色分别使用最合适的组件类型。
过滤器和监听器是种类,它使得服务器的功能可扩展至处理请求和生成应答。
它是用定义的类和接口实现的。
由两个程序包组成程序包包含独立于协议的类和接口,而程序包则提供特定的扩展的实用程序类。
的实质是实现了接口的类,行身份验证,而且多数页面都需要访问控制。
在现实生活中,它可能会包含更多的页面,例如,用于访问共享文档档案事件表的页面和用于管理的组页面等。
由于应用程序在不断地发展变化,因此可能变得很难作为纯应用程序来维护。
例如,很容易忘记在新页面中包含访问控制代码。
很明显,这种应用程序可以从使用页面与组件类型的组合中受益,其中组件类型由用于角色的规范所定义。
下面看下主要的要求,并了解如何将他们映射到适当的组件类型上数据库访问应该是抽象的,从而避免料接应用程序中多个部分的特定数据模式或数据库引擎模型角色中的可以用来完成这种认知。
数据库访问必须在应用程序启动时可用于所有其他的部分应用程序生命周期时间监听器是用了该任务的完美的组件类型。
只有通过验证的用户才允许使用应用程序过滤器可以完成访问控制以满足该要求。
用代码进行请求处理效果最佳作为控制器正符合需要。
必须很容易改编外观呈现这正是的反光点,也就是作为视图。
将监听器和过滤器混合起来,就将页面对复杂逻辑的需求降到了最低。
将这些代码放置到类中后,就可以使用普通的编译程序和调试程序来修复潜在的问题。
使用集中处理请求将作为所有应用程序请求的公共入口时,可以获得对应用程序页面流的整体控制。
可以根据所请求行为的结果来决定要生成的应答类型,例如,为所有失败的请求返回公共的页面,或者根据发出请求的客户端返回不同的应答等。
在些使用程序类的帮助下,还可以提供诸如输入验证准备之类的服务,而且通常会鼓励使用更有效率的方法来请求处理。
当使用作为控制器时,必须处理下列基本要求所有处理请求必须传递到单独的控制器中。
必须能够区分请求,以便进行不同类型的处理。
下面是其他些你可能希望支持的功能,即使并非所有应用程序都要求扩展应用程序以便以更灵活的方式支持新类型的请求处理。
在不修改代码的情况下改变应用程序页面流的机制。
当然,你可以自己开发满足这些要求的,但是已经有开源式了,他们可以满足所有这些要求,甚至还有更多的功能。
将应用程序请求映射到使用控制器的第个要求是所有请求必须都经过该。
该要求可以通过多种方式来满足。
如果你以前曾经使用过,那么你可能习惯于用以开头的来调用。
这是由公司的所引入的个约定,是在推出标准之前第个支持的产品。
今天,大部分容器都支持这个约定,即使规范中并没有正式的定义。
实现是直接完成或通过扩展个支持类来完成的。
该接口定义了容器用来管理和与之交互的方法。
用于处理请求的般情况下都会扩展类。
该类实现了接口,并提供了使用处理的附加方法。
的生命周期容器管理生命周期的所有方面。
它根据需要创建类的实例将请求传递给实例进行处理,最终删除实例。
对于来说,容器会在生命周期的适当时间调用方法。
除了和方法之外,还有些对应于其他方法的方法和。
般情况下不用实现这些方法,因为类已经用适用于大多数的方法考虑到了和请求,而且和这两种方法很少用在应用程序中。
容器只为每个创建个实例非常重要。
这意味着必须是线程安全的即,能够同时处理多个请求,每个处理都通过代码作为单独的线程来执行。
如果只在和方法中修改参考的对象,而且只在请求处理方法中读取他们,那么不用丧失任何细节就可以满足关于实例变量的这个要求。
编译和安装要编译,必须首先确保文件包含着环境变量中所有类。
该文件将随所有的容器起发布。
中包含了个名为的文件,位于目录中。
在平台中,应在中包含文件。
读取请求传递到和方法的参数之是实现了接口的对象。
该接口定义的方法可提供对关于请求的许多信息的访问。
生成应答除应答对象之外,容器还将实现接口的对象作为传递给和方法。
该接口定义了为应答行为体获取数序程序或流的方法。
它还定义了设置应答状态代码和首部的方法。
使用过滤器和监听器规范内定义了两种组件类型过滤器和监听器。
这两种类型是在规范中引入的,因此,如果你使用的是不支持该版本规范的容器,恐怕就不能继续学习了。
过滤器过滤器是种组件,可以解释对页面或静态页面的请求以及发送给客户端之前的应答。
这样可以很容易地将应用于所有请求的任务集中在起,例如访问控制登录和内容的开销或应用提供的服务等。
过滤器对请求与应答的行为体和首部具有完全访问权限,因此还可以执行各种转换。
例如,如果请求首部指出客户端可以处理压缩的应答,那么过滤器就可以压缩应答的行为体。
过滤器可以应用在特定上,或匹配种模式的所有请求上,例如以相同的路径元素开头或具有相同扩展名的。
监听器监听器允许应用程序对特定事件做出回应。
之前,只能处理会话属性绑定事件在添加对象或从会话中删除对象时。
实现监听器的方式是用保存为会话属性使用方法的对象实现接口。
随着规范的版本中新接口的引入,可以为环境和会话生命周期事件以及激活和钝化事件容器用来暂时将会话状态保存在磁盘上或将会话移植到另个服务器上创建监听器。
使用新的会话属性事件监听器还可以在个位置上处理所有会话的属性绑定事件,而不是在每个会话中防止单独的监听器对象。
新类型的监听器遵循的是标准事件模型。
换句话说,监听器是实现了个或多个监听器接口的类。
接口定义的






























1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。
