第1章 了解JSP
1.1 Internet和www基础
1.1.1 关于Internet
1.1.2 关于WWW
1.1.3 网络浏览器和网络服务器程序
1.1.4 应用程序服务器软件
1.1.5 组件、容器和连接程序
1.2 Java的优点
1.2.1 了解Java
1.2.2 Java虚拟机
1.2.3 Java术语
1.3 JSP和servlets
1.4 让Java开始工作
第2章 建立JSP页面
2.1 如何起步
2.1.1 Hello World
2.1.2 获取用户请求
2.1.3 翻译JSP页面
2.2 查看源代码
2.2.1 JRun
2.2.2 Resin
2.2.3 Jakarta项目
2.3 理解访问模型
2.3.1 Model1
2.3.2 Model2
2.4 理解模型-视图-控制器(MVC)模式
2.4.1 模型-视图-控制器(MVC)设计模式历史简介
2.4.2 WYSIWYG示例
2.4.3 Web应用程序示例
2.5 指令
2.5.1 page指令
2.5.2 include指令
2.5.3 taglib指令
2.6 在代码中加入注释
2.6.1 源代码的注释
2.6.2 隐藏的注释
2.7 编码技巧
2.7.1 使用层叠样式表(CSS)
2.7.2 保持整齐的JavaScript和JSP
2.7.3 使用XHTML
第3章 使用脚本元素
3.1 使用表达式(expression)
3.1.1 在表达式中使用字符串
3.1.2 在表达式中使用方法和构造函数
3.2 使用声明(declarations)
3.2.1 Java的原始数据类型
3.2.2 Java的操作符
3.2 3 在JSP中创建计数器
3.2.4 使用JSP声明创建表
3.3 使用小脚本
第4章 使用可用对象
4.1 理解对象
4.2 理解JSP的隐含对象
4.2.1 理解对象实例化
4.2.2 把JSP关联到servlet,CGI和 HTTP
4.2.3 理解Java Reflection API
4.2.4 理解继承
4.2.5 使用exception对象
4.2.6 显示所有隐含对象的类层次结构
4.2.7 理解封装
4.2.8 使用Reflection机制内省隐含对象
4.2.9 理解范围(scope)
4.2.10 理解JSP隐含对象的范围
第5章 使用Beans
5.1 理解JavaBeans
5.1.1 存取(accessor)/修改(mutator)方法和无参数构造函数
5.1.2 编写自己的JavaBeans
5.1.3 使用JSP标准动作和JavaBeans
5.2 在JSP中使用JavaBeans
5.2.1 在JSP中创建计数器
5.2.2 用JSP生成随机引用器
5.2.3 用JSP创建消息板的网络应用
5.3 小结
第6章 连接页面
6.1 理解URL
6.1.1 URL的构造
6.1.2 协议:request.getScheme()
6.1.3 服务器名称:request.getServerName()
6.1.4 端口号:request.getServerPort()
6.1.5 脚本名称:request.getRequestURI()
6.1.6 文件名和扩展名:request.getServletPath()
6.1.7 查询字符串:request.GetQueryString()
6.1.8 HTML书签:用户端功能
6.2 使用GET方法
6.3 使用查询字符串
6.3.1 生成查询字符串
6.3.2 处理查询字符串
6.3.3 URL中的转义
6.4 使用<jsp:forward>标记把JSP链接到HTML,JSP和Servlets
6.4.1 转向到HTML页面和JSP页面
6.4.2 转向到Servlets
第7章 使用表单
7.1 使用表单控件
7.1.1 <Form>标记
7.1.2 <INPUT>标记
7.1.3 <TEXTAREA>标记
7.1.4 <SELECT>标记(下拉式列表)
7.2 处理表单数据
7.3 验证表单内容以及动态组建表单
7.4 理解框架
7.4.1 什么时候使用框架
7.4.2 使用框架的问题
7.5 小结
第8章 与数据库交互
8.1 JDBC数据访问模型
8.1.1 类型1:JDBC-ODBC桥和ODBC驱动程序
8.1.2 类型2:本地API部分Java驱动程序
8.1.3 类型3:JDBC-Net纯Java驱动程序
8.1.4 类型4:本地协议纯Java驱动程序
8.2 SuperBookmarks.com
8.2.1 创建数据库
8.2.2 连接数据库
8.2.3 执行SQL语句
8.3 小结
第9章 保护你的应用程序
9.1 理解安全性关系的问题
9.1.1 保护你的服务器
9.1.2 保护你的数据
9.1.3 保护你的用户
9.1.4 保护你的应用程序
9.2 验证方法
9.2.1 使用自己的验证方法
9.2.2 基于表单的验证
9.2.3 用HTTP协议验证
9.3 目录服务
9.3.1 Java名字和目录接口(JNDI)
9.3.2 LDAP集成
9.4 实现访问控制
9.4.1 使用文本文件验证
9.4.2 使用LDAP验证
9.4.3 使用Servlet2.2保护网络程序
第10章 管理会话状态
10.1 理解会话状态的管理
10.2 使用会话范围
10.2.1 在会话范围中加入简单的值
10.2.2 在会话范围中保存复杂类型数据
10.2.3 管理会话
10.3 使用加强的URLs(改写)
10.4 使用cookies
10.5 使用表单的隐藏字段
10.6 小结
第11章 集成Email
11.1 开始
11.2 使用JavaMail API
11.2.1 创建javax.mail.Session
11.2.2 使用javax.mail.Transport
11.2.3 javax.mail.Message的组成
11.2.4 连接javax.mail.Store
11.2.5 使用javax.mail.Folder
11.2.6 ColdMail.com:一个JSP和JavaMail例子的研究
11.2.7 扩展标记介绍
11.3 小结
第12章 开发定制标记
12.1 理解定制标记
12.1.1 定义标记
12.1.2 CFML标记
12.2 开发简单的标记:没有属性和主体内容
12.2.1 获取JSP和servlet的API
12.2.2 一个基本标记处理程序
12.2.3 Tag和BodyTag接口
12.2.4 TagSupport与BodyTagSupport类
12.2.5 编写第一个标记处理程序
12.3 开发复杂的标记:增加属性和整理主体内容
12.3.1 检索和格式联合化内容的标记
12.4 已有的JSP标记库方案
12.4.1 Allaire公司的JRun标记库
12.4.2 Orionserver的Orion标记库
12.4.3 Jakarta的标记库方案
12.5 小结
第13章 使用企业级JavaBean
13.1 EJB的基本原理
13.1.1 容器
13.1.2 远程接口
13.1.3 本地接口
13.1.4 Bean的实现
13.2 会话Bean
13.2.1 无状态会话Bean
13.2.2 有状态会话Bean
13.3 实体Bean
13.3.1 基于容器的持续性管理
13.3.2 基于Bean的持续性管理
13.3.3 实体Bean示例
13.4 实现企业级JavaBean
13.4.1 使用实体Bean
13.4.2 使用无状态会话Bean
13.4.3 使用有状态会话Bean
13.5 小结
第14章 错误处理
14.1 理解错误处理
14.2 实现异常处理
14.2.1 try代码块
14.2.2 catch子句
14.2.3 finally语句块
14.2.4 异常的传递
14.2.5 运行时异常
14.2.6 抛出异常
14.3 使用错误页面
14.4 小结
第15章 调试和排错
15.1 容器错误
15.1.1 容器的兼容性问题
15.1.2 配置JSPs、Beans和servlets
15.1.3 端口冲突
15.1.4 属性和配置文件
15.1.5 使用日志
15.2 Java虚拟机错误
15.2.1 OutOfMemoryError错误
15.2.2 NullPointerException异常
15.2.3 NoClassDefFoundError错误
15.2.4 JSP容器不响应
15.2.5 华生医生(Dr.Watsons)异常和内核转储(Core dumps)
15.3 数据库错误
15.3.1 选择最好的JDBC驱动程序
15.3.2 性能检测工具
15.4 使用集成开发环境(IDE)编写和调试JSP页面
附录A JSP语法
A.1 JSP指令
A.1.1 <%%>
A.1.2 <%——%>
A.1.3 <%1%>
A.1.4 <%=%>
A.1.5 <%@include%>
A.1.6 <%@page%>
A.1.7 <%@taglib%>
A.2 JSP标记
A.2.1 <jsp:fallback>
A.2.2 <jsp:forward>
A.2.3 <jsp:getPropetty>
A.2.4 <jsp:include>
A.2.5 <jsp:param>
A.2.6 <jsp:params>
A.2.7 <jsp:plugin>
A.2.8 <jsp:setProperty>
A.2.9 <jsp:useBean>
附录B 常见的JSP服务器
B.1 JRun
B.2 Orion Server
B.3 Resin
B.4 ServletExec 3.0
B.5 Tomcat
附录C 使用Java方法获取CGI环境变量
C.1 列出HTTP头信息