前言
第Ⅰ部分 基本JSP脚本
第1章 第一个JavaServer Page
1.1 对Web需要知道些什么
1.1.1 Web开发者的观点
1.1.2 Web页面
1.1.3 技术的发展
1.2 JavaServer Pages怎样工作
1.3 JavaServer Pages的基本构建块
1.3.1 声明
1.3.2 表达式
1.3.3 Java方法:使用声明和表达式
1.3.4 小脚本
1.4 如何测试JSP文档
1.5 关于测试JSP文档的更多信息
1.5.1 找到一个远程服务器
1.5.2 理解服务器的目录结构
1.6 例子:一个旋转横幅的广告
1.7 JSP的注释标记
1.8 小结
第2章 使用JSP脚本元素
2.1 作用域和生存期概念
2.1.1 类范围的名字和局限于方法的名字
2.1.2 局限于方法的名字可以隐藏类范围的名字
2.2 小脚本与声明
2.2.1 JSP与Servlet
2.3 在声明和小脚本中变量的作用域
2.4 在声明和小脚本中变量的生存期
2.5 作用域、生存期和方法调用
2.5.1 发生了什么
2.5.2 参数传递
2.5.3 一个方法如何打印部分响应内容
2.6 小结
第3章 隐式对象
3.1 Java中的类、对象和方法
3.2 混合JSP标记、HTML标记和Java语句
3.3 JSP中的隐式对象
3.3.1 请求对象
3.3.2 方法、远程地址和远程主机
3.3.3 地区和语言
3.3.4 表单和请求参数
3.3.5 响应对象
3.3.6 隐式输出对象
3.3.7 HTTP会话
3.3.8 session对象
3.3.9 application对象
3.3.10 config对象
3.3.11 page对象
3.3.12 pageContext对象
3.3.13 exception对象
3.4 小结
第4章 JSP指令
4.1 什么是指令
4.2 include指令
4.2.1 嵌套include指令
4.2.2 修改包含文件
4.2.3 一些其他的缺陷
4.3 page指令
4.3.1 import属性
4.3.2 errorPage和isErrorPage属性
4.3.3 session属性
4.3.4 info属性
4.3.5 language属性
4.3.6 contentType属性
4.3.7 isThreadSafe属性
4.3.8 buffer属性
4.3.9 autoFlush属性
4.3.10 extends属性
4.4 使用page指令的一个例子
4.4.1 jspInit和jspDestroy方法
4.5 tablib指令
4.6 小结
第5章 从Servlet中可学到什么
5.1 Servlet
5.1.1 一个更有趣的Servlet
5.2 一个JSP变成一个Servlet
5.3 声明
5.4 include指令
5.5 从Servlet中得到调试帮助
5.6 小结
第6章 标准动作
6.1 动作标记语法
6.2 include动作
6.3 include指令与include动作
6.3.1 Servlet代码
6.3.2 修改被包含的页面
6.3.3 使变量名是可区分的
6.3.4 Servlet和其他的动态内容
6.3.5 JSP有效范围和include动作
6.3.6 当流出时所发生的动作
6.4 param动作
6.5 forward动作
6.6 plugin动作
6.6.1 plugin动作的属性
6.6.2 更多的属性
6.6.3 plugin动作的子标记
6.6.4 使用名字属性
6.7 小结
第7章 案例学习:一个简单的Web小窗口
7.1 主页面
7.1.1 定制的主页面
7.1.2 帮助者文件
7.2 定制页面
7.2.1 包含帮助者文件
7.2.2 客户端脚本
7.2.3 HTML表单
7.3 提交更改
7.4 小结
第Ⅱ部分 JavaBeans及其应用
第8章 使用JavaBeans
8.1 什么是JavaBeans
8.2 Bean的属性
8.3 useBean动作
8.3.1 class属性
8.3.2 id属性
8.3.3 Bean范围
8.3.4 Bean范围实验
8.3.5 其他useBean属性
8.3.6 非空的useBean标记
8.3.7 编译和重新编译Bean类
8.4 setProperty和getProterty动作
8.4.1 使用来自HTML表单的值
8.4.2 setProperty和getProterty动作的属性
8.4.3 Indexed属性
8.4.4 示例:用来自Bean的值填充一个表单
8.4.5 为什么对setProperty和getProterty感到烦恼
8.5 小结
第9章 案例学习:Tic-Tac-Toe
9.1 Tic-Tac-Toe Web站点
9.2 部分代码概览
9.3 可以参加
9.4 开始游戏
9.4.1 对参加者意味着什么
9.4.2 组成比赛
9.4.3 一对参加者
9.4.4 负荷
9.4.5 login.jsp的其他元素
9.5 棋盘
9.6 参加游戏
9.6.1 线程安全性
9.6.2 实现移动
9.6.3 工作类
9.6.4 退出
9.7 小结
第Ⅲ部分 使用数据库和JavaServer Pages
第10章 与数据库交互
10.1 数据库和服务器
10.2 创建一个连接
10.3 一个简单的数据库页面
10.3.1 更新数据库
10.3.2 查询数据库
10.4 当页面第一次被加载时连接
10.5 使用JavaBeans
10.6 使用一个可滚动的结果集
10.7 与一个在线数据库交互
10.8 使用数据库事务
10.9 小结
第11章 案例学习:一个在线消息板
11.1 消息板Web站点
11.2 帮助者代码
11.3 消息板的数据库
11.3.1 访问数据库
11.3.2 创建数据库表
11.3.3 MESSAGETREE表
11.3.4 连接到数据库
11.4 创建和维护用户信息
11.4.1 work Bean
11.4.2 创建一个新用户
11.4.3 登录
11.4.4 退出
11.5 创建和维护关于消息的信息
11.5.1 浏览单个消息
11.5.2 浏览消息集合(查找结果)
11.5.3 浏览消息集合(消息的线程)
11.5.4 发布消息
11.5.5 删除消息
11.6 小结
第Ⅳ部分 高级议题
第12章 配置一个Web应用
12.1 一个简单的Web应用
12.1.1 创建目录
12.1.2 配置JSP容器
12.2 一个更实际的Web应用
12.3 创建一个Web档案文件
12.3.1 Java档案文件
12.3.2 Web档案文件
12.4 小结
第13章 创建定制标记
13.1 什么是标记
13.2 配置定制标记
13.3 创建一个简单的定制标记
13.3.1 定义标记
13.3.2 标记处理器类
13.3.3 doStartTag 和doEndTag方法
13.4 具有属性的标记
13.5 必要的属性
13.6 属性值和运行时表达式
13.7 包含(或不包含)标记的体
13.7.1 有实体的标记
13.7.2 跳过标记体
13.7.3 其他bodycontent选项
13.8 处理标记的实体
13.9 多次处理实体
13.10 Body标记的生存期
13.11 设置Page变量的值
13.12 定义VariableInfo对象的其他方法
13.13 嵌套标记
13.14 深层嵌套
13.15 小结
第14章 案例学习:一个Web购物车
14.1 从用户观点看购物车
14.2 购物车数据库
14.3 订购表单
14.3.1 重复的标记处理器
14.3.2 逐个操作项目的标记处理器
14.4 一个详细页面
14.4.1 来自客户端脚本的帮助
14.4.2 在详细页面上的包含文件
14.5 校验页面
14.5.1 重复的标记处理器
14.5.2 逐项操作的标记处理器
14.5.3 用户提供的表单信息
14.6 保存订单
14.7 小结
附录A 配套光盘内容
附录B 超文本传输协议
附录C 用Windows中的Access配置数据库