理论部分 2
第1章 解析XML 2
1.1 DOM技术 2
1.2 DOM编程 2
1.2.1 DOM接口 3
1.2.2 使用DOM读取XML文件 5
1.3 SAX技术 7
1.4 SAX编程 7
1.4.1 SAX常用接口 7
1.4.2 SAX实现方法 11
1.4.3 使用SAX解析XML 13
1.5 SAX和DOM比较 16
1.6 选择DOM和SAX 16
第2章 EL表达式 18
2.1 EL概述 18
2.1.1 EL的基本语法 18
2.1.2 EL的特点 19
2.2 与低版本的环境兼容——禁用EL 19
2.2.1 使用斜杠“\”符号 19
2.2.2 使用page指令 19
2.2.3 在web.xml文件中配置<el-ignored>元素 20
2.3 保留关键字 20
2.4 EL运算符及其优先级 20
2.4.1 通过EL访问数据 21
2.4.2 在EL中执行算术运算 22
2.4.3 在EL中判断对象是否为空 23
2.4.4 在EL中执行逻辑关系运算 24
2.4.5 在EL中执行条件运算 25
2.5 EL的隐含对象 26
2.5.1 页面上下文对象 26
2.5.2 访问作用域范围的隐含对象 28
2.5.3 访问环境信息的隐含对象 29
第3章 自定义标签 33
3.1 标签库 33
3.1.1 标签的形式 34
3.1.2 Tag接口 34
3.1.3 IterationTag接口 35
3.1.4 Body Tag接口 37
3.2 标签库描述符 38
3.2.1 <taglib>元素 39
3.2.2 <validator>元素 40
3.2.3 <listener>元素 40
3.2.4 <tag>元素 41
3.2.5 <tag-file>元素 43
3.2.6 <function>元素 44
3.3 简单标签的开发 45
3.3.1 SimpleTag接口 46
3.3.2 实例:<welcome>标签 46
第4章 JSP标准标签 49
4.1 JSTL介绍和编程举例 49
4.1.1 JSTL介绍 49
4.1.2 JSTL编程举例 50
4.2 一般用途的标签 51
4.2.1 <c:out> 52
4.2.2 <c:set> 54
4.2.3 <c:remove> 56
4.2.4 <c:catch> 58
4.3 条件标签 59
4.3.1 <c:if> 60
4.3.2 <c:choose> 60
4.3.3 <c:when> 61
4.3.4 <c:otherwise> 62
第5章 过滤器与监听器 64
5.1 过滤器 64
5.2 实现一个Servlet过滤器 65
5.2.1 编写实现类的程序 65
5.2.2 配置发布Servlet过滤器 66
5.3 ServletRequest和ServletResponse的包装类 67
5.4 用Servlet过滤器过滤文本信息 68
5.4.1 输出流管理类 68
5.4.2 编写Servlet过滤器 69
5.4.3 编写JSp和Servlet文件 71
5.5 Servlet监听器简介 76
5.5.1 监听服务器ServletContext对象 76
5.5.2 监听客户会话 77
5.5.3 监听客户请求 78
第6章 连接池与数据源 80
6.1 连接池 80
6.1.1 连接池原理 80
6.1.2 连接池关键问题分析 80
6.1.3 连接池的实现 82
6.2 数据源及JNDI 84
6.2.1 什么是数据源 84
6.2.2 什么是JNDI 84
6.2.3 为什么要用JDNI 85
6.2.4 JNDI的架构与实现 85
6.2.5 JNDI工作原理 86
第7章 文件上传下载与图片水印 92
7.1 jspSmartUpload组件简介 92
7.2 jspSmartUpload组件的核心类 93
7.2.1 保存信息的File类 93
7.2.2 存储文件的Files类 94
7.2.3 提供表单信息的Request类 95
7.2.4 组件的核心SmartUpload类 95
7.2.5 情景应用:采用jspSmartUpload组件操作文件 98
7.3 图片水印和文字 101
第8章 Web服务 105
8.1 Web服务的产生背景和发展 105
8.1.1 问题的产生 105
8.1.2 传统的解决方案 105
8.1.3 Web服务应运而生 106
8.2 Web服务简介 106
8.2.1 什么是Web服务 106
8.2.2 Web服务模型 107
8.3 体系结构概览 109
8.3.1 Web服务协议栈 109
8.3.2 网络层 111
8.3.3 基于XML消息传递的分布式计算 112
8.4 Web服务的创建和部署 113
8.4.1 创建Web Service工程 113
8.4.2 运行向导 114
8.4.3 创建服务方法类 115
8.4.4 部署项目 116
8.4.5 测试 116
上机部分 120
上机1 解析XML 120
第1阶段 指导 120
指导1 制作人员信息表 120
指导2 显示人员信息表 122
第2阶段 练习 124
练习1 制作课程表 124
练习2 显示课程信息 124
上机2 EL表达式 125
第1阶段 指导 125
指导1 获取表单数据 125
指导2 使用JSTL+EL循环打印消息 126
第2阶段 练习 127
练习1 使用EL表达式实现注册消息确认 127
练习2 输出不同范围内的值 128
上机3 自定义标签 129
第1阶段 指导 129
指导 自定义一个迭代标签 129
第2阶段 练习 131
练习 编写一个<max>标签 131
上机4 JSP标准标签 132
第1阶段 指导 132
指导1 猜字母游戏 132
指导2 用户登录 133
第2阶段 练习 135
练习1 用户注册 135
练习2 给用户注册程序添加异常处理 135
上机5 过滤器与事件监听 137
第1阶段 指导 137
指导1 在线人数统计 137
指导2 限定客户端IP地址 142
第2阶段 练习 145
练习1 监听session 145
练习2 统一编码 145
上机6 连接池与数据源 146
第1阶段 指导 146
指导 用连接池连接SQL Server 146
第2阶段 练习 148
练习 测试JNDI、JDBC、ODBC的性能 148
上机7 文件上传下载与图片水印 149
第1阶段 指导 149
指导 实现文件上传功能 149
第2阶段 练习 151
练习 给图片添加水印 151
上机8 Web服务AOP 153
第一阶段 指导 153
指导1 使用AOP实现登录日志记录功能 153
指导2 使用异常通知 155
第二阶段 练习 156
练习1 在删除部门时记录日志信息 156
练习2 在删除员工时记录日志信息 156
附录部分 158
附录1 Jetty 158
附录1.1 Jetty的基本组成 158
附录1.1.1 Jetty的基本架构 158
附录1.1.2 Handler的体系结构 159
附录1.2 Jetty的工作方式 160
附录1.2.1 Jetty的启动过程 160
附录1.2.2 接受请求 160
附录1.2.3 基于H TT P协议工作 161
附录1.2.4 基于AJP工作 162
附录1.2.5 基于NIO方式工作 164
附录1.2.6 处理请求 164
附录1.3 与其他服务器集成 166
附录1.3.1 与Jboss集成 166
附录1.3.2 与Tomcat的比较 166
附录1.4 性能与总结 167
附录1.4.1 性能比较 167
附录1.4.2 特性比较 168
附录1.4.3 总结 168
附录2 Apache服务器 169
附录2.1 Apache概述 169
附录2.2 Apache服务器的安装 169
附录2.3 Apache服务器的基本配置 170
附录2.3.1 常规配置指令 170
附录2.3.2 性能配置指令 172
附录2.3.3 日志配置指令 173
附录2.3.4 容器与访问控制指令 174
附录2.3.5 其他配置指令 177
附录2.4 配置虚拟主机 179
附录2.4.1 基于主机名的虚拟主机 179
附录2.4.2 基于IP地址的虚拟主机 183
附录2.5 Apache服务器的启停与测试 185
附录2.5.1 启动Apache服务器 185
附录2.5.2 重启Apache服务器 185
附录2.5.3 停止Apache服务器 185
附录2.5.4 开机时自动启动Apache服务器 185
附录2.5.5 测试Apache服务器 186
附录2.6 图形化配置Apache服务器 186
附录2.6.1 “主”选项卡 186
附录2.6.2 “虚拟主机”选项卡 187
附录2.6.3 “服务器”选项卡 192
附录2.6.4 “调整性能”选项卡 193
附录3 Web开发框架分析 194
附录3.1 Web开发框架介绍 194
附录3.2 Tapestry 194
附录3.3 WebWork 196
附录3.4 其他开发框架 197
附录3.5 Web开发框架总结 197
参考文献 198