首页>参考读物>计算机科学与技术>安全

Servlet与JSP权威指南
作者 : (美)Marty Hall
出版日期 : 2002-10-01
ISBN : 7-111-10828-0
定价 : 55.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 540
开本 : 16开
原书名 : More Servlets and JavaServer Pages
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书介绍作为Java平台基础的servlet和JSP技术,书中将这两种技术结合起来进行了完整的描述。本书涵盖了最新的servlet 2.3和JSP 1.2标准,并展示了如何应用最先进的servlet和JSP技术,还详细说明了如何从Internet上下载各种开发工具包、服务器、资源并安装设置它们。
主要内容包括:服务器的设置和配置、基本servlet和JSP程序设计、使用和部署Web应用、Web应用的安全性、servlet和JSP的主要新功能、新标记库功能。
本书既适合有经验的servlet和JSP程序设计人员,又适合于此技术的初学者,但前提是应熟悉基本的Java程序设计语言。

图书前言

假如你的公司希望开展网上销售。公司有一个提供每项物品的价格和库存状况的数据库。但是,这个数据库不能使用HTTP(Web浏览器使用的协议),也不能输出HTML(Web浏览器所需的格式)。怎么办呢?如果用户确定了要买某些东西,你怎样才能采集到这些信息呢?你希望依据访问者的爱好和兴趣定制你的站点,怎样才能完成此项工作呢?你希望用户能看到他们以前的购物情况,但不希望这些信息暴露给别的访问者,怎样实施这类安全措施呢?如果你的站点很受欢迎,你可能会希望压缩页面以减少带宽。但怎样才能做到这一点而又不会使大约30%的访问者(他们的浏览器不支持这种压缩)不能访问你的站点?所有这些情况都需要一个程序作为浏览器和服务器端资源之间的中介。本书将讲述怎样将Java平台用于这种用途。
“等等,”你说,“你不是已经写过这样一本书了吗?”是的,2000年5月,Sun Microsystems出版社和Prentice Hall发行了本人的第二本专著《Core Servlets and JavaServer Pages》。这本书的成功超出了所有人的预料,第一年就销售了100 000部,被翻译成保加利亚语、汉语、捷克语、法语、德语、希伯来语、日语、韩语、波兰语、俄语以及西班牙语,并且被Amazon.com(亚马逊书店)选为2001年5本主要的计算机程序设计书籍之一。更好的是,我收到了无数的邀请,请我为业内开发人员举办短期培训班,讲课是我非常乐意做的事。尽管不得不拒绝了大多数邀请,但我还是在澳大利亚、加拿大、日本、菲律宾以及美国的许多地方讲授了servlet(Java服务器程序)和JSP的课程。非常有趣!我喜欢。
自那时起,servlet和JSP的应用以一种极快的速度不断发展。Java 2平台成了一种供开发电子商务应用、动态Web站点及Web兼容的应用和服务的可选技术。servlet和JSP仍然是这个平台的基础,它们提供了Web客户机和服务器端应用程序之间的连接。实际上,Windows的所有主要Web服务器、Unix(包括Linux)、MacOS、VMS以及许多大型机操作系统或者天生地或者借助插件手段,现在都支持servlet和JSP技术。只要进行少量的配置,就可以在Microsoft IIS、iPlanet/Netscape Enterprise Server、Apache Web Server、IBM WebSphere、BEA WebLogic以及许多别的服务器上运行servlet和JSP了。商业的和资源开放的servlet及JSP引擎的性能得到了极大的提高。
而且,这个领域还在不断地高速发展。如:
Sun不再进行正式的servlet和JSP参考实现产品的开发。替代产品为Apache Tomcat,这是一个由来自许多不同机构的人员组成的团体研制的源码开放的产品。
与servlet和JSP页面相关的Web应用的使用已经极大地增加了。
实施Web应用安全性的可移植机制已经开始取代以前使用的专门针对服务器的机制。
发布了servlet规范的2.3版(2001年8月)。此规范中的新功能包括servlet和JSP过滤器、应用程序生存期事件处理程序,以及对现有API和部署描述符文件(web.xml)进行的大量增加和修改。
发布了JSP规范的1.2版(也是在2001年8月)。这个版本允许绑定事件监听程序与标记库,允许指定基于XML的应用程序来检查使用了定制标记页面的语法,并且提供了使你的定制标记循环得更有效且处理错误更容易的接口。JSP 1.2还对现有的API和TLD文件格式作了许多较小的更改和添加。
XML作为一种数据交换语言已经树立了牢固的地位。servlet和JSP页面把它用于配置文件。标记库验证程序可利用它来检验定制标记语法。JSP页面可以完全用XML来表达。
2000年至2001年间,JSR-052专家组协商提出了JSP的一个标准标记库。2001年11月,他们发布了这个库的初期访问版本1.2,称为JSTL(JSP Standard Tag Library)。这个库为简单循环、各种数据结构之上的迭代、有条件地计算内容,以及不用直接脚本代码访问对象提供了标准标记。
嗬,这么多的变化。这些新特性都非常有用,但有没有一个能够了解所有这些新特性的单一所在呢?这就是我要撰写本书的原因,本书将向开发人员介绍这些新特性。如果你不熟悉基本的servlet和JSP开发,也不要担忧。本书开始时将会进行详细介绍。
本书的对象
本书主要针对两类读者。
第一类读者熟悉基本的servlet和JSP开发,希望掌握如何利用上面介绍的所有新功能。
但是,如果你不熟悉这个技术。也没有必要先去学习旧版servlet和JSP,然后再来学习本书。只要你熟悉基本的Java程序设计语言,就可以归为本书的第二类读者。本书一开始提供了servlet和JSP程序设计基础的详细回顾,介绍了servlet 2.3和JSP 1.2规范的环境。此外,如果篇幅有限,不能介绍某些基本开发的要点时,还引用了《Core Servlets and JavaServer Pages》一书的某些提供详细介绍的段落,并把这些段落放在http://www.moreservlets.com上供联机查阅。事实上,我在此Web站点上放置了《Core Servlets and JavaServer Pages》一书的完整文本(PDF格式)。
虽然本书既适合有经验的servlet和JSP程序设计人员又适合此技术的初学者,但还是要假定你熟悉基本的Java程序设计。你不必是一个有经验的Java开发人员,但如果对Java程序设计语言毫无了解,就不适合使用本书。servlet和JSP技术首先是Java程序设计语言的一个应用。如果你不了解Java语言,就不能应用它。因此,如果对Java开发毫无了解,应该找一本好的入门书(如《Thinking in Java》、《Core Java》或《Core Web Programming》等)来学习。在对Java有个基本了解后再来学习本书。
本书的独到之处
本书有四个特点,使它有别于类似书籍:
整体介绍servlet和JSP。这两种技术是紧密相关的,应该把它们结合起来学习和使用。
实际的代码。完整、能运行、文档化的程序对于学习是很重要的,本书提供了大量的程序源代码。
循序渐进的介绍。将复杂的任务分解成用实际例子说明的简单步骤。
服务器的详细配置和使用说明。提供了大量具体的快速入门例子。
整体介绍servlet和JSP
《Core Servlets and JavaServer Pages》的基本观点之一是servlet和JSP应该结合起来学习(和使用!),而不应该把它们分开来。毕竟,它们不是两种完全不同的技术,JSP仅仅是编写servlet的一种不同的方式。如果不了解servlet程序设计,就不能在servlet是一种比JSP更好的选择时选用它,不能利用MVC体系结构集成servlet和JSP,不能理解复杂的JSP结构,也不能理解JSP脚本元素怎样工作(因为它们实际上仅仅是servlet代码)。如果不了解JSP开发,就不能在JSP较之servlet技术是一种更好的选择时利用JSP,不能利用MVC体系结构,即使对于几乎由静态HTML组成的页面,你也只能使用print语句。
本书极为强调整体的方法。Web应用程序允许把servlet和JSP页面结合进一个单独的文件或目录。定制URL、初始化参数、预装载设置以及部署描述符文件的会话超时等同地适用于servlet和JSP页;声明的安全性等同地适用于这两种技术;新的过滤功能和事件监听程序也适用于这两种技术。JSTL(JSP标准标记库)的jx部分主要是依据JSP页显示由servlet建立的数据的基础。这样就将servlet和JSP结合起来了。
实际代码
对于概念介绍来说,小的代码段是非常有用的。本书中有大量的小代码段。但是,对于真正理解如何使用各种技术,还需在完整的实际程序中来了解它们。这些实际程序并不很巨大,它们只是一些具有各种成分、可以实际运行的程序。书中提供了大量这样的程序,它们全都是文档化的、供自由使用的,可以从www.moreservlets.com中得到。
循序渐进的介绍
在我还是一名研究生时(很久以前还没有Java时),我遇到一个算法教授,他在班上说自己是一个循序渐进介绍方法的信徒。我在想,是不是所有人都这样?当然不是。多数教师肯定是以这种办法讲授简单的东西,但这个教授对于高度理论化的概念也说,“首先你应该这样,然后应该那样。”其他教师则不一定这样讲授课程,我们的课本有时也不这样。不过,这种讲授方法确实对我有很大的帮助。
如果这样一种方法即使是对于理论性的课程也很有用处,那么对于实用性的课程(就像本书中所介绍的这些内容)就会更有好处了。
服务器的详细配置和使用
在开始尝试学习服务器端的程序设计时,我弄来了很多书籍、正式的说明书和一些联机文章。它们几乎毫无例外的都这样说“因为这项技术是可移植的,我们的介绍不专门针对某种服务器。”这样一来,我甚至连入门都感到困难。我东查西找,好不容易下载了一个服务器,编写了程序。但是怎样编译它?把它放在何处?怎样调用它呢?
servlet和JSP的代码是可移植的。其API是标准化的。但服务器的结构和组织并不是标准的。放置代码的目录在ServletExec上和在JRun上不同。用Tomcat设置的SSL不同于用其他服务器设置的SSL。这些细节都很重要。
但是,并不是说本书是针对某个特定的服务器的。我只是说当某项内容需要针对服务器的专有知识时,这样说是重要的。此外,专门的例子很有用处。因此,在说明某个需要特定服务器信息的内容(如放置某个Web应用的目录)时,我首先会说明各服务器一般遵循的模式。然后,就最为流行的三种服务器(Apache Tomcat、Macromedia/Allaire JRun和New Atlanta ServletExec)给出非常详细的说明,这三种服务器对于桌面系统开发来说是可以免费得到的。
本书的结构
本书由五个部分组成:
第一部分:基础知识。服务器设置和配置,基本servlet程序设计,基本JSP程序设计。
第二部分:Web应用。使用和部署Web应用,用web.xml控制行为,一个较大的例子。
第三部分:Web应用的安全性。声明的安全性,程序设计安全性,SSL。
第四部分:servlet和JSP的主要新功能。servlet和JSP过滤器,应用程序生存期事件监听程序。
第五部分:新标记库功能。JSP 1.2的新标记库功能,JSTL(JSP标准标记库)。
第一部分:基础知识
服务器设置和配置。
下载JDK。
获得开发服务器。
配置和测试服务器。
部署和访问HTML和JSP页面。
建立开发环境。
部署和访问servlet。
简化servlet和JSP的部署。
基本servlet程序设计。
servlet较其他类似技术的优越之处。
基本servlet结构和生存期。
servlet初始化参数。
访问表单数据。
HTTP 1.1请求头、响应头和状态代码。
标准CGI变量的servlet等价物。
servlet中的cookie。
会话跟踪。
基本JSP程序设计。
了解JSP的好处。
利用JSP表达式、scriptlet和声明调用Java代码。
构造由JSP页产生的Servlet。
在JSP文档中包含文件和Java程序(applet)。
利用JSP使用JavaBeans。
建立定制的JSP标记库。
组合servlet和JSP:Model View Controller(Model 2)体系结构。
第二部分:Web应用
使用和部署Web应用。
向服务器注册Web应用。
组织Web应用。
在WAR文件中部署应用。
记录Web应用对共享库的依赖关系。
处理相对URL。
在Web应用间共享数据。
用web.xml控制Web应用的行为。
定制URL。
关闭缺省的URL。
初始化servlet和JSP页。
预装载servlet和JSP页。
对servlet和JSP页声明过滤器。
指定欢迎页和错误页。
限制对Web资源的访问。
控制会话超时。
Web应用的文档化。
指定MIME类型。
定位标记库描述符文件。
声明事件监听程序。
访问J2EE资源。
定义和使用一个较大的Web应用。
Web应用中组件之间的交互。
对每个用户数据使用会话。
对多用户数据使用servlet环境。
管理由多个servlet和JSP页访问的信息。
消除Web应用名的依赖性。
第三部分:Web应用的安全性
声明的安全性。
了解Web应用安全性的主要方面。
用HTML表单验证用户。
使用BASIC HTTP验证。
在Tomcat、JRun和ServletExec中定义口令。
用security-constraint元素指定受保护的资源。
利用login-config指定验证方法。
指定使用SSL。
配置Tomcat使用SSL。
可编程的安全性。
组合容器管理及可编程的安全性。
使用isUserInRole方法。
使用getRemoteUser方法。
使用getUserPrincipal方法。
编程控制安全性的各个方面。
使用SSL及可编程安全性。
第四部分:servlet和JSP的新功能
servlet和JSP过滤器。
设计基本过滤器。
读取请求数据。
访问servlet环境。
初始化过滤器。
阻塞servlet或JSP响应。
修改servlet或JSP响应。
为调试和记录日志使用过滤器。
使用过滤器监控站点访问。
使用过滤器替换串。
使用过滤器压缩响应。
应用程序生存期事件监听程序。
了解一般的事件处理策略。
监控servlet环境的初始化和关闭。
设置应用程序范围的值。
检测servlet环境的属性中的变化。
识别HTTP会话的建立和消除。
分析全部会话的使用情况。
观察会话属性的变化。
跟踪某个电子商务站点的购买情况。 使用多个协同监听程序。
将监听程序封装在JSP标记库中。
第五部分:新标记库功能
JSP 1.2的新标记库特性。
转换TLD文件为新的格式。
绑定生存期事件监听程序与标记库。
用TagLibraryValidator检查定制标记的语法。
在验证程序中对XML(SAX)使用简单的API。
用TryCatchFinally接口处理错误。
修改方法返回值的名称。
不建立BodyContent的循环。
在TLD文件中声明脚本变量。
JSP标准标记库(JSTL)。
下载和安装标准JSP标记库。
不使用Java语法读取属性。
不使用Java语法访问bean属性。
循环指定的次数。
在不同的数据结构上迭代。
检查迭代状态。
用基于串的记号进行迭代。
根据条件求表达式的值。
使用JSTL表达式语言设置属性、返回值并声明脚本变量。
约定
本书用黑体字指出用户的输入,而命令行提示可能为一般的提示(Prompt>)或者指出它们所应用的操作系统(Dos>)。例如,下列两行表示“Some Output”为“java SomeProgram”在任一平台上执行的结果。
prompt> java SomeProgram
Some Output
除非是专门针对Windows操作系统,否则路径就像在URL中一样使用正斜杠。例如,在提到“请看install_dir/bin”(不确定操作系统)时,将使用正斜杠,但在提到“C:\Windows\Temp”(专指Windows)时,使用反斜杠。
重要的标准技术用专门的格式表示,如下例所示。
重要方法  应该特别注意“重要方法”段落中的内容。它们指出了应该总是或几乎总是使用的技术。
“重要说明”和“重要警告”也以类似的方式给出。
关于Web站点
本书的相关站点是 http://www.moreservlets.com/。这个免费站点包括:
下载本书中给出的所有例子的代码,这些代码可以下载且可以不加限制地使用。
PDF格式的《Core Servlets and JavaServer Pages》一书的完整文本。
servlet和 JSP软件的最新下载站点。
本书中提到的所有URL的链接。
本书中未曾考虑到的一些信息。
关于servlet和 JSP短训班的报导。
书籍的添加、更新和新闻。

作者简介

(美)Marty Hall:暂无简介

图书目录

第一部分 基础知识
第1章  服务器设置和配置 1
1.1  下载Java开发工具包(JDK) 2
1.2  为桌面系统下载一个服务器 2
1.3  更改端口及配置其他服务器设置 4
1.3.1  Apache Tomcat 4
1.3.2  Allaire/Macromedia JRun 5
1.3.3  New Atlanta ServletExec 7
1.4  测试服务器 7
1.5  简单的HTML和JSP页测试 8
1.6  设置开发环境 11
1.6.1  建立开发目录 11
1.6.2  制作启动和停止服务器的快捷方式 11
1.6.3  设置CLASSPATH 12
1.6.4  寻找或安装servlet和JSP API文档 13
1.7  编译和测试某些简单的servlet 13
1.7.1  测试1:不使用程序包的servlet 14
1.7.2  测试2:使用程序包的servlet 15
1.7.3  测试3:使用程序包和实用程序的
servlet 16
1.8  建立一种简化的部署方法 18
1.8.1  复制到某个快捷方式或符号链接 19
1.8.2  使用javac的-d选项 19
1.8.3  让IDE负责部署 19
1.8.4  使用ant或类似的工具 20
1.9  缺省Web应用部署目录汇总 20
1.9.1  Tomcat 20
1.9.2  JRun 21
1.9.3  ServletExec 22
第2章  基本servlet程序设计快速入门 23
2.1  servlet较“传统”CGI的优越之处 25
2.1.1  有效性 25
2.1.2  方便性 25
2.1.3  功能强 25
2.1.4  可移植性 26
2.1.5  安全性 26
2.1.6  廉价 26
2.2  基本servlet结构 26
2.2.1  生成纯文本的servlet 27
2.2.2  生成HTML的servlet 28
2.2.3  servlet打包 30
2.2.4  简单的用HTML建立的实用程序 31
2.3  servlet的生存期 33
2.3.1  init方法 33
2.3.2  service方法 35
2.3.3  doGet、doPost和doXxx方法 36
2.3.4  SingleThreadModel接口 36
2.3.5  destroy方法 37
2.4  客户机请求:表单数据 37
2.4.1  从CGI程序中读取表单数据 37
2.4.2  从servlet中读取表单数据 38
2.4.3  例子:读取三个明确的参数 38
2.4.4  过滤查询数据 41
2.5  客户机请求:HTTP请求头 41
2.5.1  从servlet读取请求头 42
2.5.2  例子:构造一个所有请求头的表 43
2.5.3  理解HTTP 1.1请求头 45
2.6  标准CGI变量的servlet等价物 48
2.7  服务器响应:HTTP状态代码 50
2.7.1  指定状态代码 50
2.7.2  HTTP 1.1状态代码 51
2.7.3  各种搜索引擎的前端 55
2.8  服务器响应:HTTP响应头 60
2.8.1  从servlet中设置响应头 60
2.8.2  了解HTTP 1.1响应头 61
2.9  cookie 65
2.9.1  cookie的好处 65
2.9.2  cookie的某些问题 66
2.9.3  servlet cookie API 67
2.9.4  设置和读取cookie的例子 69
2.9.5  基本cookie实用程序 73
2.10  会话跟踪 75
2.10.1  会话跟踪的需求 75
2.10.2  会话跟踪API 76
2.10.3  终止会话 79
2.10.4  显示每个客户机访问计数的servlet 80
2.10.5  一个简化的购物车应用 81
第3章  基本JSP程序设计快速入门 85
3.1  JSP综述 86
3.2  JSP的优点 87
3.2.1  与ASP或ColdFusion比较 87
3.2.2  与PHP比较 87
3.2.3  与纯servlet比较 87
3.2.4  与JavaScript比较 88
3.3  利用JSP脚本元素调用代码 88
3.3.1  表达式 89
3.3.2  scriptlet 93
3.3.3  声明 96
3.3.4  预定义变量 99
3.4  构造自动生成的servlet:JSP页指令 100
3.4.1  import属性 101
3.4.2  contentType属性 103
3.4.3  isThreadSafe属性 105
3.4.4  session属性 106
3.4.5  buffer属性 106
3.4.6  autoflush属性 106
3.4.7  extends属性 107
3.4.8  info属性 107
3.4.9  errorPage属性 107
3.4.10  isErrorPage属性 107
3.4.11  language属性 107
3.4.12  pageEncoding属性 108
3.4.13  指令的XML语法 108
3.5  在JSP文档中包含文件和 applet 108
3.5.1  在页转换时包含文件:include指令 108
3.5.2  在请求时包含页:jsp:include动作 109
3.5.3  基于Java插件包含applet 111
3.6  对JSP使用JavaBeans 118
3.6.1  基本bean的使用 119
3.6.2  例子:StringBean 121
3.6.3  设置bean属性 122
3.6.4  共享bean 127
3.7  定义定制的JSP标记库 130
3.7.1  构成标记库的组件 131
3.7.2  定义基本标记 134
3.7.3  给标记分配属性 139
3.7.4  包含标记体 143
3.7.5  有选择地包含标记体 147
3.7.6  操纵标记体 150
3.7.7  多次包含或操纵标记体 153
3.7.8  使用嵌套的标记 156
3.8  集成servlet和JSP:MVC体系结构 162
3.8.1  发送请求 163
3.8.2  例子:网上旅游代理 166
3.8.3  从JSP页中发送请求 174
第二部分  Web应用
第4章  使用和部署Web应用 177
4.1  注册Web应用 178
4.1.1  对Tomcat注册一个Web应用 179
4.1.2  对JRun注册Web应用 182
4.1.3  对ServletExec注册一个Web应用 184
4.2  Web应用的结构 186
4.2.1  各种文件类型的位置 187
4.2.2  样例层次结构 189
4.3  在WAR文件中部署Web应用 190
4.4  记录对服务器库的依赖关系 191
4.4.1  建立一个清单文件 191
4.4.2  清单文件的内容 192
4.5  处理Web应用中的相对URL 193
4.6  在Web应用之间共享数据 196
第5章  用web.xml控制Web应用的行为 203
5.1  定义头和根元素 204
5.2  部署描述符文件内的元素次序 205
5.3  分配名称和定制的URL 206
5.3.1  分配名称 206
5.3.2  定义定制的URL 208
5.3.3  命名JSP页面 210
5.4  禁止激活器 servlet 212
5.4.1  重新映射/servlet/ URL模式 212
5.4.2  全局禁止激活器:Tomcat 214
5.4.3  全局禁止激活器:JRun 216
5.5  初始化和预装载servlet与JSP页面 216
5.5.1  分配servlet初始化参数 216
5.5.2  分配JSP初始化参数 218
5.5.3  提供应用范围内的初始化参数 221
5.5.4  在服务器启动时装载servlet 221
5.6  声明过滤器 222
5.7  指定欢迎页 224
5.8  指定处理错误的页面 225
5.8.1  error-code元素 225
5.8.2  exception-type元素 227
5.9  提供安全性 229
5.9.1  指定验证的方法 229
5.9.2  限制对Web资源的访问 231
5.9.3  分配角色名 233
5.10  控制会话超时 233
5.11  Web应用的文档化 234
5.12  关联文件与MIME类型 234
5.13  定位TLD 235
5.14  指定应用事件监听程序 235
5.15  J2EE元素 236
第6章  Web应用样例:网上船舶商店 239
6.1  通用配置文件 240
6.2  顶层页面 242
6.3  第二层页面 245
6.4  物品项的显示servlet 249
6.5  购买的显示页面 256
第三部分  Web应用的安全性
第7章  声明性的安全性 261
7.1  基于表单的验证 262
7.1.1  设置用户名、口令和角色 264
7.1.2  告诉服务器验证类型并指定登录和
登录失败页面的位置 266
7.1.3  建立登录页面 267
7.1.4  建立报告登录失败的页面 268
7.1.5  指定受口令保护的URL 268
7.1.6  指定只对SSL有效的URL 270
7.1.7  关闭激活器servlet 272
7.2  例子:基于表单的验证 273
7.2.1  主页 273
7.2.2  部署描述符文件 273
7.2.3  口令文件 276
7.2.4  登录和登录失败页面 277
7.2.5  investing目录 278
7.2.6  ssl目录 280
7.2.7  admin目录 284
7.2.8  重定向器servlet 285
7.2.9  无保护的页面 286
7.3  BASIC验证 288
7.3.1  设置用户名、口令和角色 289
7.3.2  告诉服务器你正在使用BASIC验证
并指定域名 290
7.3.3  指定受口令保护的URL 290
7.3.4  指定只对SSL有效的URL 290
7.4  例子:BASIC验证 290
7.4.1  主页 291
7.4.2  部署描述符文件 292
7.4.3  口令文件 293
7.4.4  财政计划 294
7.4.5  业务计划 295
7.4.6  重定向servlet 296
7.5  配置Tomcat使用SSL 297
第8章  可编程的安全性 303
8.1  组合容器管理的及可编程的安全性 304
8.2  例子:组合容器管理的及可编程的
安全性 306
8.3  编程处理所有的安全性 310
8.4  例子:编程处理所有的安全性 311
8.5  使用可编程安全性及SSL 314
8.5.1  确定是否正在使用SSL 314
8.5.2  重定向非SSL的请求 314
8.5.3  查找密钥位数 315
8.5.4  查找加密算法 315
8.5.5  访问客户机的X509证书 315
8.6  例子:可编程的安全性和SSL 316
第四部分  servlet和JSP的新功能
第9章  servlet和JSP过滤器 319
9.1  建立基本过滤器 320
9.1.1  建立一个实现Filter接口的类 321
9.1.2  将过滤行为放入doFilter方法 322
9.1.3  调用FilterChain对象的doFilter方法 322
9.1.4  对适当的servlet和JSP页面注册过
滤器 322
9.1.5  禁用激活器servlet 323
9.2  样例:报告过滤器 325
9.3  从过滤器中访问servlet环境 330
9.4  例子:日志记录过滤器 331
9.5  利用过滤器的初始化参数 333
9.6  例子:访问时的过滤器 334
9.7  阻塞响应 337
9.8  例子:禁止站点过滤器 337
9.9  修改响应 343
9.10  例子:替换过滤器 345
9.10.1  通用替换过滤器 345
9.10.2  一个特殊的替换过滤器 348
9.11  例子:压缩过滤器 351
9.12  完整的过滤器部署描述符文件 356
第10章  应用事件框架 361
10.1  监控servlet环境的建立和消除 363
10.2  例子:初始化最经常使用的数据 364
10.3  检测servlet环境属性中的改变 370
10.4  例子:监控最常用的数据的改变 370
10.5  用标记库封装监听程序 378
10.6  例子:封装公司名监听程序 380
10.7  识别会话的建立和消除 386
10.8  例子:对会话进行计数的监听程序 387
10.9  监视会话属性中的改变 393
10.10  例子:监控游艇对象 394
10.11  使用多个协同监听程序 400
10.11.1  跟踪日用特价物品的订单 400
10.11.2  重置日用特价物品订单计数 407
10.12  完整的事件部署描述符文件 411
第五部分  新标记库功能
第11章  JSP 1.2中的新标记库功能 417
11.1  使用新标记库描述符文件格式 418
11.1.1  新的DOCTYPE声明 418
11.1.2  重命名的元素 419
11.1.3  新元素 420
11.1.4  汇总 420
11.2  将监听程序与标记库一起打包 421
11.2.1  跟踪活动的会话 422
11.2.2  测试会话计数 428
11.3  利用TagLibraryValidator检查语法 431
11.3.1  例子:跟踪标记结构 433
11.3.2  例子:实施标记嵌套次序 437
11.4  补充知识:用SAX 2.0分析XML 446
11.4.1  安装和设置 446
11.4.2  分析 447
11.5  用TryCatchFinally接口处理异常 448
11.6  返回值的新名称 452
11.7  循环而不生成BodyContent 452
11.7.1  JSP 1.1循环标记 453
11.7.2  JSP 1.2循环标记 456
11.8  在TLD文件中引入脚本变量 458
第12章  JSP标准标记库 459
12.1  使用JSTL:综述 460
12.1.1  jr和jx库 460
12.1.2  forEach循环标记 461
12.1.3  forTokens循环标记 462
12.1.4  根据条件求值的标记 462
12.1.5  表达式语言支持标记 463
12.2  安装和配置JSTL 464
12.2.1  下载JSTL文件 464
12.2.2  访问JSTL文档资料 464
12.2.3  使JSTL类对服务器有效 465
12.2.4  将JSTL TLD文件放入WEB-INF
目录 465
12.2.5  建立TLD文件位置的别名 465
12.2.6  在web.xml中定义表达式语言 466
12.2.7  下载和安装XML分析程序 467
12.3  用forEach标记进行循环 467
12.3.1  对直接数字值进行循环 467
12.3.2  用指定的步长进行循环 470
12.3.3  对数组进行循环 475
12.3.4  对枚举类型进行循环 479
12.3.5  对串中的项进行循环 482
12.3.6  对多种数据类型进行循环 485
12.4  访问循环状态 493
12.5  用forTokens标记进行循环 495
12.5.1  一个简单的记号循环 497
12.5.2  嵌套的记号循环 498
12.6  对项进行条件求值 502
12.6.1  if标记 503
12.6.2  choose、when和otherwise标记 505
12.6.3  带choose标记的set标记的用法 508
12.7  使用表达式语言 511
12.7.1  set标记 512
12.7.2  expr标记 513
12.7.3  declare标记 516
附录  服务器的组织和结构 519

教学资源推荐
作者: 周学广 等
作者: 桂小林 编著
作者: 邹德清 代炜琦 金海 著
作者: [英]Ross J.Anderson
参考读物推荐
作者: 魏强,王文海,程鹏 著
作者: [美]克里斯·桑德斯(Chris Sanders) 杰森·史密斯(Jason Smith)著
作者: 李燕 林卫华 杨春明 秦志华 赖胜枢 著
作者: [美]威廉·普拉尔(William Futral) 詹姆斯·格林(James Greene)著