本书首先介绍怎样安装和使用SJSAS9.1(Sun Java System Application Server)和Tmocat网络服务器。系统、完整地介绍了servlet技术和JSP技术;汲取servlet和JSP各自优点,实现MVC模式。怎样使用session,cookies,JavaBean,表达式语言(EL),定制标签,标准标签库(JSTL)。使用Derby数据库引擎来实现JDBC;如何创建Web监听和过滤器;最后讨论了网络安全问题(SSL)。
封面图
目录
- 前言
- 第一篇 预 备 篇
- 第1章 HTML与表单1
- 1.1 HTML基础1
- 1.1.1 制作HTML文件的工具1
- 1.1.2 HTML文件结构1
- 1.1.3 HTML链接3
- 1.1.4 制作HTML表格4
- 1.1.5 HTML文件包括图像5
- 1.1.6 样式表6
- 1.2创建HTML表单7
- 1.2.1 创建表单7
- 1.2.2 文本框、密码框和隐藏域8
- 1.2.3 编写按钮8
- 1.2.4 复选框和单选钮9
- 1.2.5 组合框和列表框10
- 1.2.6 文本区域11
- 1.2.7 设置控制的tab顺序12
- 本章小结14
- 第2章 Servlet和JSP概述15
- 2.1 Servlet和JSP15
- 2.1.1 Servlet15
- 2.1.2 JSP16
- 2.2 为什么要创建动态网页17
- 2.3 Servlet的优势18
- 2.4 下载和安装Java19
- 2.5 下载和配置服务器20
- 2.5.1 SJSAS 9.120
- 2.5.2 Tomcat 6.0.18 22
- 2.6 Web应用25
- 2.6.1Web应用的目的25
- 2.6.2 Web应用结构26
- 2.7 创建一个简单的Web应用28
- 2.7.1 使用了包的Servlet28
- 2.7.2 使用包和辅助类的Servlet29
- 2.7.3 web.xml文件32
- 2.8 NetBean33
- 本章小结39
- 第3章 XML与web.xml40
- 3.1 XML引论40
- 3.1.1 XML基本语法40
- 3.1.2 XML Schema43
- 3.1.3 XSLT47
- 3.1.4 DTD50
- 3.2 部署描述文件(web.xml)52
- 3.3 举例说明web.xml文件中的元素54
- 3.3.1 给Servlet或JSP命名并定制URL54
- 3.3.2 禁止激活器Servlet 56
- 本章小结58
- 第二篇 Servlet技术
- 第4章 Servlet基础59
- 4.1 Servlet的基本结构59
- 4.1.1 Servlet概述 59
- 4.1.2 Servlet的基本结构60
- 4.1.3 输出HTML文本61
- 4.1.4 Servlet包61
- 4.1.5 Servlet配置和运行62
- 4.2 几个HTML工具函数63
- 4.3 Servlet生命史64
- 4.3.1 service方法64
- 4.3.2 doGet、doPost和doXxx方法65
- 4.3.3 init方法65
- 4.3.4 destroy方法67
- 4.4 Servlet查错68
- 4.5 实例:emailList 应用69
- 本章小结73
- 第5章 Servlet处理请求:表单数据和请
- 求头74
- 5.1 表单数据的作用74
- 5.2 Servlet怎样读取表单数据74
- 5.2.1 读取表单数据的各种方法 75
- 5.2.2 实例:读取3个表单变量76
- 5.2.3 实例:读取所有表单数据79
- 5.3 使用默认值处理参数遗漏或畸形82
- 5.4 过滤HTML中的特殊字符89
- 5.5 请求参数自动填入Java对象:
- 表单Bean94
- 5.6 遗漏数据或畸形数据重新显示表单98
- 5.6.1 重新显示的各种选项98
- 5.6.2 处理拍卖出价的Servlet99
- 5.7 在Servlet 中读请求头105
- 5.7.1 HTTP请求头概念105
- 5.7.2 在Servlet 中读请求头方法106
- 5.7.3 制作所有请求头的表格107
- 5.8 了解HTTP 1.1请求头意义108
- 5.9 送压缩网页110
- 5.10 区分不同浏览器类型113
- 5.11 根据用户所到达网址来改变网页115
- 本章小结117
- 第6章 HTTP响应;状态码和响应头118
- 6.1 设置状态码118
- 6.1.1 状态码概述118
- 6.1.2 设置任意状态码:setStatus119
- 6.1.3 设置302和404状态码:sendRedirct
- 和sendError119
- 6.2 HTTP 1.1状态码及其含义119
- 6.3 将用户重定向到指定浏览器主页的Servlet123
- 6.4 各种搜索引擎124
- 6.5 设置响应头129
- 6.6 常见响应头及其含义129
- 6.7 创建Excel Spreadsheets133
- 6.8 持久Servlet状态和自动刷新页面134
- 6.9 用Servlet生成JPEG图像142
- 6.10 下载MP3文件146
- 本章小结147
- 第7章 cookies和session148
- 7.1 cookies概述148
- 7.1.1 cookies的功能148
- 7.1.2 使用cookies应该注意的问题149
- 7.1.3 删除cookies150
- 7.2 发送和接收cookies151
- 7.2.1 发送cookies给用户151
- 7.2.2 读取保存在客户端的cookies153
- 7.3用cookies监测第一次到访者153
- 7.4 区分会话cookies与持久cookies155
- 7.5 cookies的基本辅助工具157
- 7.5.1 获取指定名字的cookies值157
- 7.5.2 自动保存cookies157
- 7.5.3 举例说明使用cookies辅助工具158
- 7.6 cookies的两个用途160
- 7.6.1 修正cookies值来追踪用户访问
- 次数160
- 7.6.2 用cookies记住用户喜好161
- 7.7 session概述164
- 7.8 会话状态跟踪基础167
- 7.9 会话状态跟踪API169
- 7.10 会话状态跟踪的3种方法170
- 7.11 可变对象与不可变对象172
- 7.11.1 不可变对象172
- 7.11.2 可变对象174
- 7.12 用购物车和会话状态跟踪建在线
- 商店176
- 7.12.1 创建前台176
- 7.12.2 处理订单178
- 7.12.3 后台工作:实现购物车和商品
- 分类182
- 本章小结186
- 第三篇 JSP技术
- 第8章 JSP基本语法187
- 8.1 JSP引论187
- 8.2 用脚本元素调用Java程序188
- 8.2.1 JSP模板文本189
- 8.2.2 JSP表达式189
- 8.2.3 scriptlets191
- 8.2.4 JSP声明193
- 8.3 JSP指令:page、include和taglib195
- 8.3.1 page指令195
- 8.3.2 include指令200
- 8.4 动作元素202
- 8.4.1 jsp:include动作202
- 8.4.2 jsp:param203
- 8.4.3 jsp:forward动作204
- 8.4.4 jsp:plugin动作205
- 8.4.5 jsp:fallback205
- 8.5 JSP预定义变量209
- 本章小结211
- 第9章 在JSP中使用JavaBean212
- 9.1 何谓JavaBean212
- 9.2 JSP使用JavaBean的基本方法213
- 9.2.1 jsp:useBean动作213
- 9.2.2 jsp:getProperty动作214
- 9.2.3 jsp:setProperty动作216
- 9.3 利用表单参数设置bean特性218
- 9.3.1 特性类型为String218
- 9.3.2 个别特性与请求参数联系起来221
- 9.3.3 把所有bean特性与请求参数联系
- 起来223
- 9.4 共享bean224
- 9.4.1 scope属性224
- 9.4.2 条件创建bean225
- 9.5 4种不同方式共享bean227
- 9.5.1 把bean类作为辅助类227
- 9.5.2 本页共享(scope="page ")228
- 9.5.3 请求共享(scope="request")230
- 9.5.4 会话共享(scope="session")231
- 9.5.5 应用共享(scope="application")232
- 本章小结233
- 第10章 整合Servlet和JSP(MVC)234
- 10.1 MVC模型概述234
- 10.1.1 为什么需要MVC234
- 10.1.2 MVC框架235
- 10.2 用RequestDispatcher来实现MVC235
- 10.3 MVC程序总结并举例说明238
- 10.3.1 请求共享238
- 10.3.2 会话共享240
- 10.3.3 应用共享243
- 10.4 有关MVC模型的3个问题247
- 10.4.1 最后网页怎样解释相对URL247
- 10.4.2 从JSP页面发出请求248
- 10.4.3 包含网页248
- 10.5 应用MVC模型:银行账户结余249
- 本章小结255
- 第11章 JSP的表达式语言256
- 11.1 表达式语言的概述256
- 11.1.1 为什么要引进表达式语言256
- 11.1.2 表达式语言的功能256
- 11.1.3 访问表达式语言257
- 11.2 忽略表达式语言估值257
- 11.3 访问作用域变量259
- 11.3.1 何谓作用域变量259
- 11.3.2 怎样访问作用域变量259
- 11.3.3 属性名的限制259
- 11.3.4 例题260
- 11.4 访问bean特性261
- 11.4.1 访问嵌套bean特性261
- 11.4.2 点操作符与数组操作符262
- 11.4.3 举例说明访问嵌套bean特性263
- 11.5 访问集合类数据266
- 11.5.1 访问数组、列表和映射266
- 11.5.2 举例说明访问集合类数据267
- 11.6 表达式语言的隐式对象268
- 11.7 运算操作符270
- 11.7.1 算术运算符270
- 11.7.2 关系运算符271
- 11.7.3 逻辑运算符271
- 11.7.4 空操作符271
- 11.8 条件估计表达式值272
- 本章小结275
- 第12章 自制标签276
- 12.1 自制标签库的3个成员276
- 12.1.1 自制标签句柄类276
- 12.1.2 TLD文件277
- 12.1.3 JSP文件278
- 12.2 给标签指定属性279
- 12.2.1 在句柄类中添加设置属性方法279
- 12.2.2 如何在TLD文件中声明属性280
- 12.2.3 JSP页面应用属性280
- 12.2.4 举例说明使用标签属性280
- 12.3 带标签体的自制标签284
- 12.4 创建Tag文件287
- 12.4.1 基于JSP的自制标签287
- 12.4.2 举例说明用标签文件创建简单
- 自制标签287
- 12.4.3 举例说明用标签文件创建带有
- 属性的自制标签288
- 12.4.4 举例说明用标签文件创建带有
- 标签体的自制标签289
- 12.5 操作标签体290
- 12.5.1 如何操作标签体290
- 12.5.2 过滤HTML的标签290
- 12.5.3 迭代自制标签体295
- 12.6 给标签属性赋动态值300
- 12.6.1 动态值为字符串301
- 12.6.2 动态值为复杂对象301
- 12.6.3 表格式标签301
- 12.7 创建表达式语言函数305
- 12.7.1 如何创建EL函数306
- 12.7.2 举例说明EL函数306
- 本章小结309
- 第13章 JSP标准标签库310
- 13.1 JSTL安装310
- 13.2 一般用途标签(c:out、c:set、
- c:remove和c:catch)311
- 13.2.1 c:out311
- 13.2.2 c:set 和c:remove标签312
- 13.2.3 c:catch标签313
- 13.3 循环标签(c:forEach、c:forTokens)314
- 13.4 条件标签316
- 13.4.1 c:if316
- 13.4.2 c:choose316
- 13.5 与URL相关的标签(c:import、c:url、c:param和c:redirect)318
- 13.5.1 c:import318
- 13.5.2 c:url和c:param标签320
- 13.5.3 c:redirect标签321
- 13.6 JSTL在购物篮中的应用322
- 13.6.1 顾客界面322
- 13.6.2 业务逻辑(JavaBean)322
- 13.6.3 Servlet控制器326
- 13.6.4 JSP文件329
- 本章小结333
- 第四篇 高 级 篇
- 第14章 数据库JDBC335
- 14.1 JDBC基础335
- 14.2 用JDBC-ODBC桥示例338
- 14.2.1 Northwind数据库准备338
- 14.2.2 NorthwindTest339
- 14.2.3 NorthwindServlet341
- 14.3 Derby数据库引擎344
- 14.3.1 设置环境变量(Windows)344
- 14.3.2 测试Derby数据库引擎345
- 14.4 使用Derby数据库引擎347
- 14.4.1 准备数据库347
- 14.4.2 MetaData350
- 14.4.3 操作数据库351
- 14.5 安装与测试MySQL352
- 14.5.1 安装MySQL352
- 14.5.2 测试MySQL352
- 14.5.3 通过JDBC连接来测试MySQL
- 数据库354
- 14.6 用预先准备好的查询语句355
- 14.6.1 辅助类355
- 14.6.2 用预先准备好的查询语句360
- 14.6.3 建立和使用存储过程364
- 14.7 商务交易366
- 14.8 数据库连接池370
- 14.8.1 为什么要创建数据库连接池370
- 14.8.2 怎样实现数据库连接池371
- 14.8.3 举例说明数据库连接池应用373
- 本章小结379
- 第15章 网络安全380
- 15.1 网络安全概述380
- 15.1.1 安全概述380
- 15.1.2 SJSAS 9.1几个重要的术语381
- 15.1.3 Tomcat怎样实现安全领域382
- 15.2 表单认证384
- 15.2.1 表单认证的8个步骤384
- 15.2.2 表单的认证各步细节385
- 15.2.3 举例说明表单认证391
- 15.3 BASIC认证398
- 15.3.1 BASIC认证概述398
- 15.3.2 举例说明 BASIC认证400
- 15.4 配置SSL403
- 15.4.1 SSL引论403
- 15.4.2 配置SSL404
- 15.5 声明安全与编程安全相结合406
- 15.6 全部用编程处理安全408
- 15.6.1 编程安全概述408
- 15.6.2 举例说明编程安全409
- 15.7 编程安全使用SSL412
- 15.7.1 编程安全使用SSL概况412
- 15.7.2 举例说明编程安全使用SSL412
- 本章小结415
- 第16章 Servlet和JSP的过滤器416
- 16.1 建立基本的过滤器416
- 16.1.1 建立一个实现filter接口的类417
- 16.1.2 doFilter方法417
- 16.1.3 调用FilterChain对象的doFilter
- 方法 418
- 16.1.4 对有关的Servlet和JSP页面注册
- 过滤器 418
- 16.1.5 禁用Servlet激活器420
- 16.2 举例说明(报告过滤器)420
- 16.3 记录访问日志423
- 16.3.1 从过滤器来访问Servlet上下文423
- 16.3.2 记录访问日志的过滤器424
- 16.4 用过滤器初始化参数425
- 16.4.1 操作初始化参数425
- 16.4.2 访问时间过滤器426
- 16.5 禁止网站访问的过滤器428
- 16.5.1 中断响应 428
- 16.5.2 禁止网站访问的过滤器429
- 16.6 修改响应432
- 16.6.1 HttpServletResponseWrapper432
- 16.6.2 可重用响应封装包433
- 16.6.3 替代过滤器434
- 16.6.4 压缩过滤器437
- 16.7 填补潜在的安全漏洞441
- 16.7.1 用dispatcher元素来配置过滤器441
- 16.7.2 填补潜在的安全漏洞442
- 本章小结446
- 第17章 Web应用事件监听器447
- 17.1 事件监听器概述447
- 17.2 监测Servlet上下文的建立和销毁448
- 17.3 监测Servlet上下文属性的变化452
- 17.4 监听会话创建和销毁458
- 17.4.1 概述458
- 17.4.2 举例说明:统计会话的监听器458
- 17.5 监视会话属性变化462
- 17.5.1 监视会话属性变化概述462
- 17.5.2 举例说明:监视iPhone订单463
- 17.6 对请求的监听器467
- 17.6.1 计算服务器请求的负荷467
- 17.6.2 终止请求频率收集471
- 17.7 使用多个监听器472
- 本章小结477
- 第18章 在线手机商店478
- 18.1 在线手机商店概况478
- 18.1.1 主页478
- 18.1.2 Web结构479
- 18.1.3 业务逻辑482
- 18.1.4 数据库484
- 18.1.5 处理数据库的Java类485
- 18.2 下载应用489
- 18.2.1 下载用户界面489
- 18.2.2 下载应用结构489
- 18.2.3 下载应用程序490
- 18.3 购物车应用494
- 18.3.1 购物车用户界面494
- 18.3.2 购物车结构495
- 18.3.3 购物车应用程序495
- 18.4 管理应用504
- 18.4.1 管理应用引论504
- 18.4.2 处理购物清单应用505
- 18.4.3 报告应用510
- 本章小结514
- 附录 缩写词列表515
- 参考文献517