第1篇 基础知识 2
第1章 搭建开发环境 2
1.1本书使用的各种软件的版本 2
1.2设置JDK 2
1.2.1JDK简介 2
1.2.2安装和配置JDK 3
1.2.3测试JDK 3
1.3架设Tomcat 4
1.3.1Tomcat简介 4
1.3.2安装和测试Tomcat 4
1.4Eclipse的搭建 6
1.4.1Eclipse简介 6
1.4.2安装和配置Eclipse 7
1.5下载和安装MySQL 8
1.6下载和安装JDBC for MySQL 9
1.7安装和运行本书的实例程序 9
本章小结 10
第2章 JDBC基础 11
2.1第一个JDBC程序 11
2.1.1操作数据库的一般步骤 11
2.1.2JDBC操作数据库的步骤 12
2.1.3JDBC执行SQL语句 13
2.2使用JDBC查询数据 15
2.2.1使用executeQuery查询数据 15
2.2.2使用execute查询数据 17
2.2.3处理多个结果集 18
2.3使用JDBC对数据库进行更新 19
2.3.1用execute方法执行混合形式的SQL语句 19
2.3.2用executeUpdate方法更新数据 23
2.3.3获得自增字段的值 23
2.4JDBC高级技术 24
2.4.1调用存储过程 25
2.4.2使用PreparedStatement对象执行动态SQL 26
2.4.3存取BLOB字段值 28
2.4.4事务管理 28
2.5获得元数据 29
2.5.1数据库元数据 30
2.5.2结果集元数据 31
2.5.3参数元数据 32
本章小结 33
第3章 一个简单的Java Web程序 34
3.1JSP与Servlet简介 4
3.2编写用于查询信息的Servlet 35
3.3编写用于输出查询结果的JSP页面 37
3.4编写用于输入查询信息的JSP页面 39
本章小结 40
第2篇 Java Web详解 42
第4章 Servlet开发基础 42
4.1在Tomcat中配置Web程序 42
4.1.1编写web.xml文件 42
4.1.2手工编写Servlet 44
4.1.3配置数据库连接池 47
4.2GenericServlet类与HttpServlet类 48
4.2.1service方法 48
4.2.2doXxx方法 50
4.2.3init和destroy方法 50
4.2.4getServletConfig与getS ervletInfo方法 53
4.2.5getLastModified方法 53
4.3ServletConfig接口 55
4.4ServletContext接口 56
4.4.1获取Web应用程序的初始化参数 56
4.4.2application域 59
4.4.3访问资源文件 59
4.4.4Web应用程序之间的访问 63
4.4.5ServletContext接口定义的其他的方法 64
本章小结 65
第5章 Servlet高级技术 66
5.1HttpServletResponse的应用 66
5.1.1产生响应状态行 66
5.1.2设置响应消息头 67
5.1.3用HTTP响应消息头传输中文信息 70
5.1.4禁止浏览器缓存当前Web页面 72
5.1.5网页定时刷新和定时跳转 74
5.1.6实现动态文件下载 75
5.2HttpServletRequest的应用 79
5.2.1获得HTTP请求行信息 79
5.2.2获得网络连接信息 80
5.2.3获得HTTP请求消息头 81
5.2.4客户端身份验证 81
5.3处理Cookie 84
5.3.1什么是Cookie 84
5.3.2Cookie类 85
5.3.3读写Cookie信息与Cookie的中文问题 86
5.4处理Session 89
5.4.1什么是Session 89
5.4.2HttpSession接口中的方法 90
5.4.3HttpRequestSession接口中的Session方法 91
5.4.4通过重写URL跟踪Session 92
本章小结 94
第6章 JSP基础 96
6.1认识JSP 96
6.1.1初次接触JSP 96
6.1.2编写简单的JSP程序 97
6.1.3改变JSP的访问路径 98
6.2JSP基本语法 98
6.2.1JSP表达式 98
6.2.2在JSP中嵌入Java代码 99
6.2.3JSP声明 101
6.2.4JSP中的注释 103
6.3JSP指令 103
6.3.1JSP指令简介 103
6.3.2page指令 104
6.3.3JSP页面中的异常处理 110
6.3.4include指令 109
6.4JSP的9个内置对象 110
6.4.1out对象 110
6.4.2request对象 114
6.4.3response对象 114
6.4.4page对象 114
6.4.5session对象 115
6.4.6application对象 115
6.4.7config对象 116
6.4.8exception对象 116
6.4.9pageContext对象 116
6.5JSP标签 117
6.5.1<jsp:include>标签 117
6.5.2<jsp:forward>标签 123
6.5.3<jsp:param>标签 124
6.5.4<jsp:useBean>标签 125
6.5.5<jsp.setProperty>标签 126
6.5.6<jsp:getProperty>标签 127
本章小结 128
第7章 表达式语言(EL) 129
7.1EL概述 129
7.2EL的基本应用 130
7.2.1在JSP页面中使用EL 130
7.2.2在标签属性中使用EL表达式 130
7.2.3使用isELignored属性禁止EL表达式 131
7.2.4在web.xml中禁止EL表达式 131
7.2.5在web.xml中禁止Java代码 132
7.3EL的内置对象 133
7.3.1内置对象与域对象 133
7.3.2获得域属性集合的内置对象 134
7.3.3pageContext内置对象 135
7.3.4获得请求参数集合的内置对象 135
7.3.5获得HTTP请求头消息集合的内置对象 136
7.3.6cookie内置对象 137
7.3.7initParam内置对象 137
7.4EL的基本语法 138
7.4.1EL中的标识符 138
7.4.2EL中的保留字 138
7.4.3EL中的常量 139
7.4.4EL中的变量 139
7.4.5EL中的枚举类型 140
7.4.6EL的错误处理机制 141
7.5EL中的运算符 142
7.5.1方括号运算符([])和点运算符(.) 142
7.5.2算术运算符 144
7.5.3关系运算符 145
7.5.4逻辑运算符 146
7.5.5empty运算符 147
7.5.6条件运算符 147
7.5.7圆括号运算符 147
7.5.8运算符的优先级 147
7.6EL自定义函数 148
7.6.1什么是EL自定义函数 148
7.6.2编写EL自定义函数的静态Java方法 148
7.6.3配置EL自定义函数 149
7.6.4使用EL自定义函数 150
7.6.5实现过滤HTML格式中的特殊字符的EL自定义函数 151
本章小结 154
第8章 Java Web国际化 155
8.1Web程序国际化的原理 155
8.2GMT、UTC和本地时间 159
8.3将本地时间转换成GMT 160
8.4将GMT转换成本地时间 162
本章小结 166
第9章 JSP标准标签库(JSTL) 167
9.1JSTL的5个组成部分 167
9.2建立JSTL的开发环境 167
9.3核心标签库 169
9.3.1<c:out>标签 169
9.3.2<c:set>标签 171
9.3.3<c:remove>标签 172
9.3.4<c:catch>标签 173
9.3.5<c:if>标签 173
9.3.6<c:choose>、<c:when>和<c:otherwise>标签 174
9.3.7<c:forEach>标签 175
9.3.8<c:forTokens>标签 185
9.3.9<c:param>标签 187
9.3.10<c:url>标签 187
9.3.11<c:redirect>标签 189
9.3.12<c:import>标签 189
9.4国际化标签库 191
9.4.1<fmt:setLocale>标签 191
9.4.2<fmt:bundle>标签 193
9.4.3<fmt:setBundle>标签 194
9.4.4<fmt:message>标签 194
9.4.5<fmt:param>标签 196
9.4.6<fmt:requestEncoding>标签 196
9.4.7<fmt:timeZone>标签 197
9.4.8<fmt:setTimeZone>标签 198
9.4.9<fmt:formatNumber>标签 199
9.4.10<fmt:parseNumber>标签 200
9.4.11<fmt:formatDate>标签 201
9.4.12<fmt:parseDate>标签 202
9.5数据库标签库 203
9.5.1<sql:setDataSource>标签 204
9.5.2<sql:query>标签 205
9.5.3<sql:update>标签 207
9.5.4<sql:transaction>标签 209
9.5.5<sql:param>标签 211
9.5.6<sql:dateParam>标签 211
9.6XML标签库 212
9.6.1<x:parse>标签 213
9.6.2使用Filter过滤XML文档 215
9.6.3<x:out>标签 218
9.6.4<x:set>标签 218
9.6.5XPath表达式的条件判断 219
9.6.6<x:if>标签 219
9.6.7<x:choose>、<x:when>和<x:otherwise>标签 220
9.6.8<x:forEach>标签 220
9.6.9<x:transform>标签 221
9.6.10<x:param>标签 224
9.7JSTL自定义函数 224
9.7.1fn:contains()函数 224
9.7.2fn:containsIgnoreCase()函数 225
9.7.3fn:startsWith()函数 225
9.7.4fn:endsWith()函数 225
9.7.5fn:escapeXml()函数 226
9.7.6fn:indexOf()函数 226
9.7.7fn:split()函数 226
9.7.8fn:join()函数 227
9.7.9fn:length()函数 227
9.7.10fn:replace()函数 228
9.7.11fn:substring()函数 228
9.7.12fn:substringAfter()函数 229
9.7.13fn:substringBefore()函数 229
9.7.14fn:toLowerCase()函数 230
9.7.15fn:toUpperCase()函数 230
9.7.16fn:trim()函数 230
本章小结 230
第10章 简单标签 231
10.1简单标签基础 231
10.1.1简单标签的基本原理 231
10.1.2SimpleTag接口 232
10.1.3JspFragment类 233
10.1.4简单标签中方法的调用顺序 234
10.2简单标签的应用实例 235
10.2.1迭代集合元素的简单标签 235
10.2.2修改标签体内容的简单标签 238
10.2.3使用JspFragment类型的属性 242
10.3简单标签和传统标签的相同点和不同点 245
本章小结 246
第11章 过滤器(Filter) 247
11.1过滤器入门 247
11.1.1Filter接口 247
11.1.2FilterChain接口 248
11.1.3FilterConfig接口 248
11.1.4注册过滤器 248
11.2过滤器的应用实例 250
11.2.1在过滤器中处理表单提交的信息 250
11.2.2上传文件的过滤器 258
本章小结 265
第12章 Servlet监听器 266
12.1Servlet监听器的接口 266
12.2监听域对象的创建和销毁 267
12.2.1ServletContextListener接口 267
12.2.2HttpSessionListener接口 268
12.2.3ServletRequestListener接口 268
12.2.4监听域创建和销毁事件演示 268
12.2.5使用域对象监听器统计在线人数 272
12.3监听域对象的属性 273
12.4监听HttpSession对象的状态 274
12.4.1HttpSessionBindingListener接口 275
12.4.2HttpSessionActivationListener接口 275
12.4.3监听HttpSession对象的状态的综合实例 275
本章小结 278
第3篇 SSH框架 280
第13章 Struts 2入门 280
13.1Struts 2简介 280
13.1.1Struts 2的MVC模式 280
13.1.2Struts 2的下载和安装 280
13.2编写第一个Struts 2程序 281
13.3模型驱动 286
本章小结 288
第14章 类型转换 289
14.1Struts 2的内置类型转换器 289
14.2Struts 2的类型转换器 289
14.2.1使用类型转换器进行类型映射 289
14.2.2集合类型转换器 293
14.2.3确定集合元素的数据类型 295
14.3类型转换的异常处理 296
本章小结 297
第15章 拦截器 298
15.1拦截器基础 298
15.1.1拦截器简介 298
15.1.2配置拦截器 298
15.1.3使用拦截器 299
15.1.4设置拦截器参数 300
15.1.5默认拦截器 300
15.2Struts 2的内置拦截器 301
15.3内置拦截器应用举例 303
15.4拦截器的高级技术 307
15.4.1自定义拦截器 307
15.4.2结果监听器 310
本章小结 311
第16章 输入校验 312
16.1Struts 2的服务器端校验 312
16.1.1使用validate方法进行服务器端校验 312
16.1.2使用validateXxx方法进行服务器端校验 315
16.2使用validation框架进行输入校验 316
16.2.1字段校验器 316
16.2.2非字段校验器 318
16.2.3使用<s:fielderror>标签显示出错信息 319
16.2.4客户端校验 319
16.3validation框架的内置校验器 320
16.3.1转换与日期校验器 321
16.3.2双精度浮点数与电子邮件地址校验器 321
16.3.3表达式与字段表达式校验器 322
16.3.4整数与正则表达式校验器 322
16.3.5必填与必填字符串校验器 323
16.3.6字符串长度与网址校验器 324
本章小结 324
第17章 文件的上传和下载 325
17.1用Struts 2上传单个文件 325
17.2用Struts 2上传多个文件 329
17.3文件下载 331
本章小结 334
第18章 Struts 2国际化 335
18.1Struts 2的资源文件 335
18.1.1资源文件的命名规则 335
18.1.2全局资源文件 335
18.1.3访问国际化信息的方式 336
18.1.4在国际化信息中使用占位符 339
18.1.5在国际化信息中使用EL 339
18.2资源文件的作用范围和搜索范围 340
18.2.1包范围资源文件 340
18.2.2接口范围资源文件 341
18.2.3Action基类范围资源文件 341
18.2.4Action范围资源文件 342
本章小结 343
第19章 整合Hibernate 344
19.1Hibernate概述 344
19.2Hibernate开发入门 344
19.2.1Hibernate的下载和安装 344
19.2.2编写第一个基于Hibernate框架的程序 345
19.2.3Session对象的应用 350
19.2.4标准查询API 351
19.2.5HQL技术 352
19.3整合Struts 2与Hibernate 353
本章小结 355
第20章 整合Spring 356
20.1Spring概述 356
20.2Spring开发入门 356
20.2.1Spring的下载和安装 357
20.2.2Ioc模式概述 357
20.2.3编写第一个基于Spring框架的程序 359
20.2.4装配JavaBean 361
20.3整合Struts 2、Spring与Hibernate 363
本章小结 369
第4篇 项目实战 372
第21章 用户注册与登录系统 372
21.1系统概述 372
21.2数据库设计 372
21.3实现数据持久化层 373
21.3.1编写User类 373
21.3.2编写Common类 373
21.4实现数据访问层和业务逻辑层 374
21.4.1编写DAOSupport类 374
21.4.2编写UserDAO类 374
21.4.3编写UserService类 375
21.5实现处理用户请求的Servlet 376
21.5.1编写CommonServlet类 376
21.5.2编写LoginServlet类 380
21.5.3编写RegisterServlet类 381
21.5.4编写EntryServlet类 382
21.5.5注册FormFilter类 382
21.6实现Web表现层 383
21.6.1安装prototype组件 383
21.6.2编写login.jsp页面 383
21.6.3编写register.jsp页面 385
21.6.4编写main.jsp页面 386
21.7其他功能 386
21.7.1使用MD5算法对字符串进行加密 386
21.7.2中文图像验证码 387
本章小结 388
第22章 电子相册系统 389
22.1系统概述 389
22.2数据库设计 390
22.3实现数据持久层与数据访问层 391
22.3.1编写数据持久层组件 391
22.3.2编写数据访问层的AlbumDAO类 392
22.3.3编写数据访问层的PhotoDAO类 395
22.4实现业务逻辑层 397
22.4.1编写AlbumService类 397
22.4.2编写PhotoService类 399
22.5实现处理用户请求的Servlet 400
22.5.1编写CommonServlet类 400
22.5.2创建相册 401
22.5.3删除相册 401
22.5.4获得当前用户创建的所有相册 402
22.5.5获得指定相册的内容 403
22.5.6上传照片 403
22.5.7删除照片 404
22.5.8浏览指定的照片 404
22.6实现Web表现层 406
22.6.1电子相册系统的主页面 406
22.6.2建立相册的JSP页面 407
22.6.3修改相册属性的JSP页面 407
22.6.4显示相册中照片的JSP页面 408
22.6.5上传照片的JSP页面 410
本章小结 411
第23章 Blog系统 412
23.1系统概述 412
23.2数据库设计 413
23.3实现数据持久层组件 414
23.3.1编写User类 414
23.3.2编写Blog类 415
23.3.3编写Reply类 416
23.3.4配置Hibernate 416
23.4实现数据访问层组件 417
23.4.1编写DAOSupport类 417
23.4.2编写操作用户信息的DAO组件 417
23.4.3编写操作Blog信息的DAO组件 418
23.4.4编写操作回复信息的DAO类 420
23.5实现业务逻辑层组件 421
23.5.1编写与用户相关的Service组件 421
23.5.2编写与Blog相关的Service组件 423
23.5.3编写与回复相关的Service组件 426
23.5.4编写ServiceManager类 427
23.6配置Spring 428
23.7安装和配置FCKEditor组件 431
23.8实现Action类与Web表现层组件 432
23.8.1编写ModelAction类 432
23.8.2用户注册 433
23.8.3用户登录 434
23.8.4实现Blog系统的主页面 435
23.8.5发布与编辑Blog信息 437
23.8.6添加与显示回复信息 439
本章小结 440
实例索引 441