深入体验Java Web开发内幕 高级特性
作者:张孝祥 等编著
出版时间:2007
内容简介
本书是《深入体验Java Web开发内幕——核心基础》的姊妹篇,Java Web开发的初学者在阅读本书前,应该先学习《深入体验Java Web开发内幕——核心基础》。 本书详细阐述了Java Web应用开发中的各种高级特性——Apache文件上传组件的源码分析及应用和编写原理,Servlet过滤器、监听器的原理及高级应用,开发国际化的Web应用,EL表达式语言,Tag(自定义标签)、Simple Tag(简单标签)和Tag File(标签文件)的开发与应用、JSTL(标准标签库)的应用,WEB安全域、Tomcat服务器的配置和管理平台,JSP文档,以及Servlet 2.4规范的应用程序部署描述符。 本书适合所有Web应用的开发人员、Java程序员在工作和学习中参考阅读,也适合作为相关专业本科生、研究生的学习参考资料,也可作为相关培训机构的培训教材。
目录
第1章 文件上传组件的应用与编写
1.1 准备实验环境
1.2 APACHE文件上传组件应用
1.2.1 查看API文档
1.2.2 DISK FILEUPLOAD类
1.2.3 FILEITEM类
1.2.4 FILEUPLOAD EXCEPTION类
1.2.5 文件上传编程实例
动手体验:使用APACHE文件上传组件
脚下留心
1.3 APACHE文件上传组件的源码赏析
1.3.1 APACHE文件上传组件的类工作关系
1.3.2 APACHE文件上传组件的核心编程问题
1.3.3 MULTIPARTSTREAM类
1.3.4 DEFERREDFILEOUTUTSTREAM类
1.3.5 DEFERREDFILETEM类
1.3.6 Default fileitem factory类
1.3.7 Disk file upload
第2章 Filter(过滤器)
2.1 准备实验环境
2.2 Filter应用入门
2.2.1 Filter的基本工作原理
2.2.2 Filter链
2.2.3 Filter接口
2.2.4 FilterChain接口
2.2.5 FilterConfig接口
2.2.6 编写与编译Filter程序
动手休验:编写与编译Filter程序
2.2.7 Filter的注册与运行
动手体验:注册与运行Filter程序
2.2.8 Filter的运行过程分析
2.2.9 用Filter实现对资源的集中访问保护
动手体验:用Filter程序实现静态HTML页面的访问保护
2.3 Filter的高级应用
2.3.1 在Filter程序中修改请求和响应消息的原理
2.3.2 HttpSeRVvletRequestWrapper类
2.3.3 用Filter实现文件上传请求的透明处理
动手体验:包装“multipart/fORM—data”类型的请求消息
2.3.4 HttpSeRvletResponseWrapper类
2.3.5 用Filter实现响应正文的压缩
动手体验:查看压缩Filer程序的运行效果
2.3.6 Filter链的应用
动手体验:了解Filter链的运行过程
2.4 思考与实践
第3章 ServIet事件监听器
3.1 概述
3.2 监听域对象的创建和销毁
3.2.1 ServletContextListener接口
3.2.2 HttpSessionListeneR接口
3.2.3 SetvletRequestListener接口
3.2.4 域对象事件监听器的综合案例
动手体验:域对象事件监听器
3.2.5 统计当前在线人数的编程实例
3.3 监听域对象中的属性变更
3.3.1 监听对象的属性事件监听器接口
3.3.2 域对象属性事件监听器的综合案例
动手体验:域对象的属性事件监听器
3.4 感知Session绑定的事件监听器
3.4.1 HttpSessionBindingListener接口
3.4.2 HttpSessionActivationListener接口
3.4.3 感知Session绑定的综合案例
3.5 思考与实践
第4章 开发国际化的Web程序
4.1 国际化与本地化概述
动手体验:建立对国际化和本地化的直观认识
4.2 与国际化相关的Java类
4.2.1 Locale类
动手体验:Locale类方法的应用实例
4.2.2 DateFormat类
动手体验:对日期/时间进行本地格式化
动手体验:对日期/时间进行本地化解析
4.2.3 NumberFormat类
动手体验:对数值进行本地格式化
动手体验:对数值字符串进行本地化解析
4.2.4 MessageFormat类
4.2.5 ResourceBundle类
动手体验:使用native2ascii程序转换字符编码
动手体验:从资源包中读取资源信息
4.2.6 ResourceBundle类的扩展应用
动手体验:使用自定义的ResourceBundle的子类管理资源信息
4.3 Web应用的国际化
4.3.1获取Web应用中的本地信息
动手体验:获得客户端支持的本地信息
4.3.2 Web应用的国际化举例
动手体验:Web应用的国际化
第5章 表达式语言(EL)
5.1 准备实验环境
5.2 EL概述
5.3 EL的基本应用
5.3.1 JSP标签的属性值中使用EL表达式
5.3.2 JSP模板中使用EL表达式
5.3.3 忽略JSP页面的EL表达式
5.3.4 使JSP页面的脚本元素无效
5.4 隐含对象
5.4.1 隐含对象与域属性
5.4.2 pageContext隐含对象
5.4.3 代表特定域属性集合的隐含对象
5.4.4 代表请求参数集合的隐含对象
5.4.5 代表HTTP请求消息头集合的隐含对象
5.4.6 cookie隐含对象
5.4.7 initParam隐含对象
5.5 EL的基础语法
5.5.1 EL中的标识符
5.5.2 EL中的保留字
5.5.3 EL中的常量
5.5.4 EL中的变量
5.5.5 EL的处理错误机制
5.6 EL中的运算符
5.6.1 方括号运算符([])和点运算符(.)多学两招
5.6.2 算术运算符
5.6.3 比较运算符
5.6.4 逻辑运算符
5.6.5 empty运算符
5.6.6 条件运算符
5.6.7 圆括号运算符
5.6.8 运算符的优先级
5.7 EL自定义函数
5.7.1 什么是EL自定义函数
5.7.2 编写用做EL自定义函数的Java方法
5.7.3 在标签库描述符文件中描述EL自定义函数
5.7.4 在JSP页面导入和使用EL自定义函数
5.7.5 EL自定义函数的执行流程总结
第6章 自定义标签的开发与使用
6.1 白定义标签入门
6.1.1 什么是自定义标签
6.1.2 自定义标签的应用形式
6.1.3 入门自定义标签的开发和调用
动手体验:开发用于显示客户端IP地址的自定义标签
多学两招:自定义标签与JavaBean的区别
6.1.4 自定义标签的功能及其基本原理
6.1.5 自定义标签API
6.2 自定义标签的基本应用
6.2.1 TAg接口
6.2.2 控制是否执行标签体内容
动手体验:显示用户信息的自定义标签
6.2.3 控制是否执行JSP页面的内容
动手体验:阻止执行JSP页面内容的自定义标签
6.3 自定义标签的属性
6.3.1 定义标签属性
动手体验:为自定义标签增加属性
6.3.2 动态属性值的应用
动手体验:用JSP动态元素设置标签的属性
6.3.3 动态属性的应用
动手体验:利用自定义标签的动态属性生成下拉列表框
6.4 迭代标签
6.4.1 Iteratioffrag接口
6.4.2 迭代标签的应用与编程原理
动手体验:用自定义标签迭代输出集合中的元素
6.5 深入自定义标签的运行原理
6.5.1 自定义标签的运行原理
多学两招
6.5.2 Tomcat中的自定义标签的缓存分析
动手体验:验证自定义标签的缓存
指点迷津
6.5.3 Tomcat中自定义标签的线程安全问题
动手体验:分析自定义标签的线程安全问题
指点迷津
6.6 用自定义标签定义JSP脚本变量
6.6.1 用自定义标签定义JSF脚本变量
6.6.2 在TLD文件中定义JSP脚本变量
动手体验:用TLD文件定义脚本变量
6.6.3 用TagExtralnfo类定义JSP脚本变量
动手体验:使用TagExtraInfo类定义脚本变量
多想一想:使用TLD文件和使用TagExTaInfO类定义脚本变量的区别
动手体验:编写功能与标签相同的自定义标签
6.7 处理标签体内容
6.7.1 BodyTag接口
6.7.2 BodyContent类
动手体验:BodyTag接口的简单应用
6.7.3 解析BodyTag接口的工作原理
6.7.4 BodyTag接口的编程实例
动手体验:对HTML特殊字符进行转义的自定义标签
6.7.5 标签体类型
动手体验:理解tagdependent类型的含义
8.2 JSTL概述
8.2.1 JSTL简介
8.2.2 安装和测试JSTL
8.3 核心标签库
8.3.1 标签
8.3.2 标签
8.3.3 标签
8.3.4 标签
8.3.5 标签
8.3.6 标签
8.3.7 标签
8.3.8 标签
8.3.9 URL相关的标签概述
8.3.10 标签
8.3.11 标签
8.3.12 标签
8.3.13 标签
8.4 国际化标签
8.4.1 国际化标签库概述
8.4.2 标签
8.4.3 标签
8.4.4 标签
8.4.5 标签
8.4.6 标签
8.4.7 标签
8.4.8 标签
8.4.9
8.4.10 标签
8.4.11 标签
8.4.12 标签
8.4.13 标签
8.5 数据库标签
8.5.1 标签
8.5.2 标签
8.5.3 标签
8.5.4 标签
8.5.5 标签
8.5.6 标签
8.6 XML标签
8.6.1 XML标签概述
8.6.2 标签
8.6.3 标签
8.6.4 标签
8.6.5 XML选择标签和迭代标签概述
8.6.6 标签
8.6.7 标签
8.6.8 标签
8.6.9 标签
8.6.10 标签
8.7 JSTL函数
8.7.1 fn:toLowerCase函数
8.7.2 fn:toUpperCase函数
8.7.3 fn:tfim函数
8.7.4 fn:escapeXml函数
8.7.5 fn:length函数
8.7.6 fn:split函数
8.7.7 fn:join函数
8.7.8 fn:indexOf函数
8.7.9 fn:contains函数
8.7.10 FN:containsIgnoreCase函数
8.7.11 fn:startsWith函数
8.7.12 fn:endsWith函数
8.7.13 fn:replace函数
8.7.14 fn:substring函数
8.7.15 fn:substringAfter函数
8.7.16 fn:substringBefore函数
8.8 思考与实践
第9章 Web安全域
9.1 安全域概述
9.1.1 安全域的实现过程
9.1.2 安全域的应用实例
9.2 设置Wleb资源的安全约束
9.2.1 在web.xml文件中配置安全约束
9.2.2 配置访问者的登录验证方式
9.3 Wleb服务器的安全域
9.3.1 tomcat服务器中的安全域
9.3.2 设置Tomcat服务器的内存域
9.3.3 设置Tomcat服务器的JDBC域
第10章 Tomcat的配置和管理平台
10.1 安装tamcat的系统配置和管理平台
10.1.1 设置tomcat的配置和管理平台的用户权限
10.1.2 登录tomcat的配置和管理平台
10.2 tomcat的系统配置平台
10.2.1 tomcat Server目录
10.2.2 Resources目录
10.2.3 IJser Definition目录
10.3 Tomcat的web应用程序管理平台
第11章 JSP文档
11.1 JSP文档概述
11.2 JSP文档
11.2.1 标识JSP文档
11.2.2 JSP文档的语法概述
11.2.3 名称空间声明
11.2.4 JSP文档的一些执行细节
11.3 JSP文档元素
11.3.1 元素
11.3.2 元素
11.3.3 元素
11.3.4 元素
11.3.5 元素
11.3.6 元素
11.3.7 元素
11.3.8 元素
11.3.9 JSP文档的模板内容
11.4 JSP页面的XML视图
11.5 xML语法格式的标签文件
附录A 应用程序部署描述符