第1章 Web开发工具的安装与使用 1
1.1 JDK的安装 1
1.2 Tomcat的安装和配置 2
1.2.1 下载Tomeat 3
1.2.2 修改context.xml和server.xml 3
1.2.3 修改tomcat-users.xml 4
1.2.4 启动和关闭Tomcat 4
1.2.5 Tomeat的目录结构 5
1.3 Eclipse的安装与使用 6
1.3.1 Eclipse的历史 6
1.3.2 Eclipse的架构 6
1.3.3 Eclipse版本说明 7
1.3.4 Eclipse的下载与安装 7
1.3.5 Eclipse的汉化 8
1.3.6 Eclipse的启动 8
1.3.7 Eclipse界面说明 9
1.3.8 Eclipse构建路径调整 12
1.3.9 Eclipse编译器调整 13
1.4 实例:Eclipse开发Java应用程序 13
1.4.1 新建Java项目 13
1.4.2 新建HelloWorld类 14
1.4.3 增加属性与方法 15
1.4.4 格式化源程序 17
1.4.5 运行输出 17
1.4.6 调试代码 17
1.5 MyEclipse 18
1.5.1 MyEclipse概述 18
1.5.2 MyEclipse的下载 19
1.5.3 MyEclipse安装 19
1.5.4 在MyEclipse中配置Tomcat服务器 20
1.6 更多参考信息 21
第2章 Web编程技术基础 22
2.1 Intemet的起源 22
2.1.1 TCP/IP协议 23
2.1.2 TCP/IP的四层结构 23
2.1.3 Application层常用协议 24
2.2 WWW 25
2.2.1 URL 25
2.2.2 HTML 26
2.2.3 HTTP 26
2.2.4 Web服务器 26
2.2.5 浏览器 27
2.3 Web动态编程 28
2.4 Servlet 29
2.5 实例:JavaWeb服务器 29
2.5.1 目标 30
2.5.2 新建Java项目 30
2.5.3 新建Java文件 30
2.5.4 运行输出 33
2.6 更多参考信息 34
第3章 Servlet编程 35
3.1 Servlet的发展 35
3.2 Servlet的结构 35
3.2.1 javax.servlet.Servlet 36
3.2.2 javax.servlet GenericServlet 37
3.2.3 javax.servlet.http.HttpServlet 37
3.3 实例(一):编写Servlt 38
3.3.1 目标 38
3.3.2 编写Servlet源程序 38
3.3.3 建立Java Web应用目录结构 39
3.3.4 编写web.xml文件 39
3.3.5 运行Servlet 40
3.4 实例(二):使用MyEclipse开发Servlet 40
3.4.1 目标 40
3.4.2 新建WebProject 40
3.4.3 新建Servlet文件 43
3.4.4 程序解释 45
3.4.5 部署Web应用程序 45
3.4.6 运行输出 48
3.4.7 Servlet文件调试 48
3.5 Servlet生命周期描述 49
3.6 实例(三):Servlet获取初始化的参数 50
3.6.1 目标 50
3.6.2 新建GetlnitParameterServlet类 50
3.6.3 运行输出 52
3.6.4 程序解释 52
3.7 实例(四):Servlet获取服务器的运行参数 52
3.7.1 目标 52
3.7.2 新建GetServerlnfoServlet类 52
3.7.3 运行输出 54
3.7.4 程序解释 54
3.8 实例(五):Servlet获得头信息 55
3.8.1 目标 55
3.8.2 新建GetHeaderlnfoServlet类 55
3.8.3 运行输出 56
3.8.4 程序解释 57
3.9更多参考信息 57
第4章 Servlet处理表单数据 58
4.1 HTML表单 58
4.1.1 Form 58
4.1.2 lnputtext 59
4.1.3 lnput password 59
4.1.4 lnput radio 59
4.1.5 lnput checkbox 60
4.1.6 Select单选 60
4.1.7 Select多选 61
4.1.8 Textarea 61
4.1.9 Submit按钮 62
4.1.10 Reset按钮 63
4.2 Servlet接收HTML表单信息 63
4.3 实例(一):Servlet处理HTML表单数据(1) 63
4.3.1 目标 63
4.3.2 新建webproject2项目 64
4.3.3 新建LoginFormServlet 64
4.3.4 运行输出 65
4.3.5 程序解释 66
4.3.6 解决表单中文参数乱码问题 66
4.4 实例(二):Servlet处理HTML表单数据(2) 67
4.4.1 目标 67
4.4.2 新建login.htm 67
4.4.3 新建LoginServlet.java 69
4.4.4 运行输出 70
4.4.5 程序解释 70
4.5实例(三):网络调查表(1) 70
4.5.1 目标 70
4.5.2 新建survey.htm 70
4.5.3 新建SurveyServlet 73
4.5.4 运行输出 74
4.5.5 程序解释 75
4.6 实例(四):网络调查表(2) 76
4.6.1 目标 76
4.6.2 新建survey2.htm 76
4.6.3 新建SurveyServlet2 77
4.6.4 运行输出 78
4.6.5 程序解释 79
4.7 客户端验证表单输入内容 79
4.8 实例(五):HTML表单增加JavaScript验证 79
4.8.1 目标 79
4.8.2 新建login2.htm 79
4.8.3 运行输出 80
4.8.4 程序解释 81
4.9 JSValidation验证框架 81
4.9.1 下载JSValidation 82
4.9.2 validation-config.xml解释 82
4.10 实例(六):使用JSValidation验证框架 84
4.10.1 目标 84
4.10.2 JSvalidation配置 84
4.10.3 编写survey3.htm 85
4.10.4 编写validation-config.xml文件 85
4.10.5 运行输出 86
4.10.6 程序解释 87
4.11 FCKeditor 87
4.11.1 FCKeditor主要功能特性 87
4.11.2 下载FCKeditor 88
4.11.3 FCKeditor的使用 88
4.12 实例(七):使用FCKeditor 89
4.12.1 新建fckeditordemo项目 89
4.12.2 新建addContent.htm 90
4.12.3 新建AddContentServlet 91
4.12.4 运行输出 92
4.12.5 FCKeditor类说明 92
4.12.6 FCKeditor组件文件精简 93
4.13 更多参考信息 94
第5章 JDBC、连接池与数据源 95
5.1 JDBC的历史 95
5.2 JDBC概述 96
5.3 JDBC驱动程序 97
5.4 实例(一):安装和配置Oracle的JDBC驱动程序 97
5.4.1 目标&c 7
5.4.2 获得Oracle驱动程序 97
5.4.3 配置Oracle驱动程序 97
5.5 JDBC编程 98
5.5.1 建立数据库连接 98
5.5.2 向数据库中提交SOL 99
5.5.3 处理数据库返回的结果 100
5.5.4 释放数据库连接 101
5.6 实例(二):JDBC操作Oracle数据库的例子 102
5.6.1 目标 102
5.6.2 建表 102
5.6.3 新建项目与JDBCExample.java文件 102
5.7 实例(三):网络留言本V1.0 104
5.7.1 目标 104
5.7.2 建表与建序列 104
5.7.3 新建guestbook项目 105
5.7.4 项目核心文件列表 106
5.7.5 修改validation-framework.is文件 106
5.7.6 编辑jsvalidation-config.xml 106
5.7.7 编辑addMessage.htm 107
5.7.8 编辑StringUtil.java 109
5.7.9 编辑AddMessageServlet.java 110
5.7.10 编辑GetMessagesServlet.java 112
5.7.11 运行输出 114
5.8 数据库连接池 115
5.9 实例(四):编写JDBC连接池程序 116
5.9.1 目标 16
5.9.2 待解决的核心问题 117
5.9.3 新建pooling项目 117
5.9.4 编辑dbpoolproperties 117
5.9.5 编辑ConnectionPool.java 117
5.9.6 编辑ConnectionPoolTest.java 120
5.9.7 运行输出 121
5.9.8 程序待改进的地方 121
5.10 JDBC数据源 122
5.11 实例(五):配置Tomcat的连接池和数据源 122
5.12 实例(六):网络留言本V1.1 123
5.12.1 目标 123
5.12.2 新建guestbook2项目 123
5.12.3 修改JavaBuildPath 124
5.12.4 修改validation-framework.js文件 124
5.12.5 修改addMessage.htm文件 124
5.12.6 修改AddMessageServlet.java 124
5.12.7 修改GetMessagesServlet.java 125
5.12.8 运行输出 125
5.13 CommonsDbUtils 126
5.13.1 DbUtils类 126
5.13.2 ResultSetHandler接口 127
5.13.3 MapListHandler类 127
5.13.4 BeanListHandler类 127
5.13.5 QueryRunner类 127
5.13.6 DbUtil使用例子 128
5.14 实例(七):网络留言本V1.2 131
5.14.1 目标 131
5.14.2 新建guestbook3项目 131
5.14.3 修改addMessage.htm文件 131
5.14.4 修改AddMessageServlet.java 131
5.14.5 修改GetMessagesServlet.java 133
5.14.6 运行输出 135
5.15 更多内容 135
第6章 Servlet处理Cookie 136
6.1 Cookie是什么 136
6.2 Cookie的典型应用 137
6.2.1 实现“记住我功能 137
6.2.2 定制个性化页面 138
6.2.3 记录用户访问动作 138
6.3 Cookie的运行机制 139
6.4 使用Cookie的注意事项 139
6.5 Cookie编程 139
6.5.1 生成Cookie对象 139
6.5.2 设定Cookie对象有效期 140
6.5.3 设定Cookie对象的路径与域名 140
6.5.4 发送Cookie对象 140
6.5.5 读取Cookie对象 141
6.5.6 修改Cookie 141
6.5.7 删除Cookie 142
6.6 实例:Servlet中Cookie的编程 142
6.6.1 目标 142
6.6.2 新建项目 142
6.6.3 编辑cookielnput.htm 142
6.6.4 编辑SetCookiesServlet.java 143
6.6.5 编辑GetCookiesServlet.java 144
6.6.6 运行输出 145
第7章 Servlet会话编程 147
7.1 会话是什么 147
7.2 会话的典型应用 148
7.2.1 网店中的购物车功能 148
7.2.2 用户权限控制 148
7.2.3 跨Servlet/JSP传递参数 149
7.3 会话的底层实现方式 149
7.4 Servlet会话编程 149
7.5 实例(一):演示会话对象的使用 150
7.5.1 目标 150
7.5.2 新建项目 150
7.5.3 编辑DemoSessionServlet 151
7.5.4 运行输出 152
7.6 实例(二):使用会话实现网络购物车 153
7.6.1 目标 153
7.6.2 功能说明 153
7.6.3 新建项目 154
7.6.4 编辑Cartltem.java 154
7.6.5 编辑ShoppingCart.java 155
7.6.6 编辑AddShoppingCartServlet.java 157
7.6.7 编辑GetShoppingCartServlet.java 159
7.6.8 编辑displayltems.htm 161
7.6.9 运行输出 163
7.6.10 需要改进的地方 164
第8章 JavaServer Pages(JSP) 165
8.1 JavaServerPages的起源 165
8.2 JSP与Servlet的关系 165
8.3 实例(一):开发第一个JSP页面 166
8.3.1 目标 166
8.3.2 新建Webproject项目 166
8.3.3 新建first.jsp文件 166
8.3.4 JSP页面的可视化编辑 167
8.3.5 运行输出 168
8.3.6 代码解释 168
8.4 JSP内部运行机制 169
8.5 JSP语法 173
8.5.1 JSP代码注释 173
8.5.2 指令(Directive)标记 174
8.5.3 声明(Declaration)标记 176
8.5.4 Scriptlet标记 177
8.5.5 表达式(Expression)标记 177
8.6 实例(二):JSP语法演示 177
8.6.1 目标 177
8.6.2 新建JSP文件 177
8.6.3 运行输出 179
8.7 动作(action) 179
8.7.1 <sp:incluce>动作 180
8.7.2 <sp:forward>动作 181
8.8 JSP内置对象 182
8.8.1 out对象 182
8.8.2 request对象 183
8.8.3 response对象 183
8.8.4 session对象 183
8.8.5 application对象 183
8.8.6 page对象 184
8.8.7 pageContext对象 184
8.8.8 exception对象 185
8.8.9 config对象 185
8.9 实例(三):网页计数器V1.0 185
8.9.1 目标 185
8.9.2 编辑count.lsp页面 186
8.9.3 程序解释 186
8.9.4 运行输出 186
8.10 实例(四):网页计数器V1.1 187
8.10.1 目标 187
8.10.2 准备数字图形文件 187
8.10.3 编辑count2.jsp页面 187
8.10.4 编辑CountFileHandler.java 188
8.10.5 运行输出 189
8.11 实例(五):Web应用错误处理解决方案 189
8.11.1 目标 189
8.11.2 HTTP常见错误代码 190
8.11.3 设置webxml 190
8.11.4 运行输出 192
8.12 实例(六):网络留言本V1.3 192
8.12.1 目标&1c 2
8.12.2 新建guestbook4项目 192
8.12.3 项目核心文件列表 193
8.12.4 编辑header.1sp 193
8.12.5 编辑footer.htm 194
8.12.6 编辑addMessage.lsp 194
8.12.7 编辑addMessageHandler.jsp 196
8.12.8 编辑getMessages.jsp 197
8.12.9 运行输出 199
8.13 更多参考信息 199
第9章 JavaBeans 200
9.1 引入JavaBeans 200
9.2 JavaBeans的编写 201
9.3 useBean动作 202
9.4 setProperty动作 203
9.5 getProperty动作 203
9.6 JavaBeans对象的作用范围 203
9.6.1 page Scope 204
9.6.2 request Scope 204
9.6.3 session Scope 205
9.6.4 application Scope 205
9.7 使用JavaBeans的好处 206
9.8 实例(一):JSP页面使用JavaBeans 207
9.8.1 目标 207
9.8.2 新建项目 207
9.8.3 新建Book.java 207
9.8.4 编辑book.htm 207
9.8.5 编辑displayBook.jsp 208
9.8.6 运行输出 209
9.9 实例(二):网络留言本V1.4 209
9.9.1 目标 209
9.9.2 新建guestbook5项目 209
9.9.3 项目核心文件列表 210
9.9.4 新建OracleUtil.lava 210
9.9.5 新建Guestbook.java 212
9.9.6 修改addMessageHandler.jsp 213
9.9.7 编辑getMessages.jsp 214
9.9.8 运行输出 216
9.9.9 项目需要改进的地方 216
9.10 CommonsBeanUtils 216
9.10.1 CommonsBeanUtils的下载 217
9.10.2 实例(三):使用BeanUtils的例子 217
9.10.3 访问JavaBeans属性 223
9.10.4 设定JavaBeans属性 224
9.10.5 复制JavaBeans对象的属性 224
9.10.6 动态创建JavaBeans对象 224
9.10.7 ResultSetDynaClass 226
9.10.8 RowSetDynaClass 227
9.10.9 RowSetDynaClass与MapListHandler的比较 228
9.11 更多参考信息 229
第10章 MVC模式 230
10.1 JSPModel1 230
10.2 JSPModel2 231
10.3 MVC架构模式 232
10.3.1 视图 232
10.3.2 模型 232
10.3.3 控制器 232
10.3.4 MVC的优缺点 233
10.4 实例:网络留言本V1.5 233
10.4.1 目标 233
10.4.2 新建guestbook6项目 233
10.4.3 项目核心文件列表 234
10.4.4 修改AddMessageServlet.java 234
10.4.5 修改GetMessagesServlet.java 236
10.4.6 修改addMessage.jsp 236
10.4.7 修改GetMessages.jsp 237
10.4.8 新建addResult.jsp 237
10.4.9 运行输出 237
10.4.10 程序运行流程分析 237
10.4.11 两种转向的区别 238
10.5 基于MVC的Web开发框架 240
10.5.1 Struts 240
10.5.2 WebWork 240
10.5.3 SpringMVC 240
10.6 更多参考信息 241
第11章 JSP Expression Language 242
11.1 JSPEL的基本用法 242
11.2 JSPEL运算符 243
11.3 使用JSPEL读取JavaBeans属性 243
11.4 JSPEL内置对象 245
11.4.1 作用范围相关对象 245
11.4.2 param或paramValues对象 245
11.4.3 header或headerValues对象 245
11.4.4 cookie内置对象 245
11.4.5 initParam对象 246
11.4.6 pageContext对象 246
11.5 设定JSP不使用JSPEL 246
11.6 实例:演示JSPEL的用法 246
11.6.1 目的 246
11.6.2 新建Web项目 247
11.6.3 编辑elExample1.jsp 247
11.6.4 编辑elExample2.jsp 248
11.6.5 编辑elExample3.jsp 250
11.6.6 编辑elExample4.jsp 251
11.6.7 编辑elExample5.jsp 252
11.6.8 编辑elExample6.jsp 254
11.6.9 编辑elExample7.jsp 255
11.6.10 编辑elExample8.jsp 257
11.6.11 编辑elExample9.jsp 258
11.6.12 编辑elExample10.jsp 258
11.6.13 修改webxml 259
第12章 定制标记库 260
12.1 定制标记库概述 260
12.2 实例(一):编写测量代码运行时间的定制标记 261
12.2.1 目标 261
12.2.2 新建Web项目 261
12.2.3 编辑TimerTag.lava 261
12.2.4 编辑util.tld文件 263
12.2.5 编辑timerTag.jsp 263
12.2.6 运行输出 264
12.3 为定制标记增加属性 264
12.4 实例(二):编写显示日期时间的标记 265
12.4.1 目标 265
12.4.2 编辑DateTimeTag.java 265
12.4.3 修改uti1.tld文件 266
12.4.4 编辑dateTimeTag.lsp 267
12.4.5 运行输出 267
12.5 实例(三):编写循环执行的定制标记 267
12.5.1 目标 267
12.5.2 编辑LoopTag.java 268
12.5.3 修改util.tld 268
12.5.4 编辑loopTag.jsp 269
12.5.5 运行输出 269
12.6 定制标记运行原理 270
12.6.1 JspTag接口 270
12.6.2 Tag接口 270
12.6.3 lterationTag接口 271
12.6.4 TagSupport类 271
12.7 BodyTag接口 272
12.8 BodyTagSuppo类 273
12.9 实例(四):编写过滤HTML代码的标记 274
12.9.1 目标 274
12.9.2 编辑FilterHtmlTag.java 274
12.9.3 修改util.tld 275
12.9.4 运行输出 275
12.10 脚本变量 276
12.10.1 使用TagExtralnfo的方式 276
12.10.2 设置<variable>元素 277
12.10.3 两种设置脚本变量的比较 278
12.11 实例(五):编写使用Cookie的定制标记 278
12.11.1 目标 278
12.11.2 编辑CookieTag.java 278
12.11.3 编辑CookieTei.java 279
12.11.4 修改tld文件 280
12.11.5 编辑cookieTag.jsp 280
12.11.6 运行输出 281
12.12 SimpleTag 281
12.13 SimpleTagSupport 282
12.14 实例(六):编写实现过滤HTML的标记V1.1 282
12.14.1 目标 282
12.14.2 编辑FilterHtmlSimpleTag.java 282
12.14.3 配置TLD文件 283
12.14.4 编辑filterHtmlSimpleTag.jsp 283
12.14.5 运行输出 284
12.15 标记处理类编写小结 284
12.16 Tag文件 285
12.16.1 编写Tag文件 285
12.16.2 Tag文件可以使用的指令 286
12.17 标记库打包 291
12.18 常用开源定制标记库介绍 292
12.18.1 JSTL 292
12.18.2 Jakarta Taglibs 292
12.18.3 Display tag 292
第13章 JSTL 294
13.1 JSTL概述 294
13.2 下载安装JSTL 295
13.3 Core标记库 296
13.3.1 <c:out>标记 296
13.3.2 <c:set>标记 297
13.3.3 <c:remove>标记 298
13.3.4 <c:catch>标记 299
13.3.5 <c.if>标记 300
13.3.6 <c.choose>标记 300
13.3.7 <c:when>标记 301
13.3.8 <c:otherwise> 301
13.3.9 <c:forEach>标记 302
13.3.10 <c:forTokens>标记 304
13.3.11 <c:import>标记 305
13.3.12 <c:url>标记 306
13.3.13 <c:redirect>标记 307
13.4 Format标记库 308
13.4.1 国际化 308
13.4.2 <fmt:setLocale>标记 308
13.4.3 <fmt:setTimeZone>标记 309
13.4.4 <fmt:timeZone>标记 309
13.4.5 <fmt:formatDate>标记 310
13.4.6 <fmt:parseDate>标记 311
13.4.7 <fmt:formatNumber>标记 312
13.4.8 <fmt:parseNumber>标记 314
13.4.9 <fmt:setBundle>标记 315
13.4.10 <fmt:bundle>标记 316
13.4.11 <fmt:message>标记 316
13.4.12 <fmt:param>标记 318
13.4.13 <fmt:requestEncoding>标记 318
13.5 XML标记库 318
13.5.1 <x:parse>标记 319
13.5.2 <x:transform>标记 321
13.6 SQL标记库 323
13.6.1 <sql:setDataSource>标记 323
13.6.2 <sgl:query>标记 324
13.6.3 <sql:param>标记 326
13.6.4 <sgl:dateParam>标记 326
13.6.5 <sql:update>标记 327
13.6.6 <sgl:transaction>标记 329
13.7 Functions标记库 330
13.8 实例:网络留言本V1.6 331
13.8.1 目标 331
13.8.2 新建guestbook7项目 332
13.8.3 修改header.jsp 332
13.8.4 修改addMessage.jsp 332
13.8.5 修改addResult.jsp 332
13.8.6 修改getMessages.jsp 333
13.8.7 运行输出 334
13.9 更多参考信息 334
第14章 Servlet监听器 335
14.1 概述 335
14.2 HttpSession监听器接口 335
14.2.1 HttpSessionListener 335
14.2.2 HttpSessionAttributeListener 336
14.2.3 HttpSessionBindingListener 336
14.2.4 HttpSessionActivationListener 337
14.3 实例:统计网站在线人数 337
14.3.1 目标 337
14.3.2 新建项目 337
14.3.3 编辑CounterListener.java 337
14.3.4 编辑web.xml 338
14.3.5 编辑display.jsp 338
14.3.6 运行输出 339
14.4 ServletContext监听器接口 339
14.4.1 ServletContextListener 339
14.4.2 ServletContextAttributeListener 339
14.5 HttpServletRequest监听器 340
14.5.1 ServletRequestListener 340
14.5.2 ServietRequestAttributeListener 340
第15章 Servlet过滤器 342
15.1 概述 342
15.2 javax.servlet.Filter接口 343
15.2.1 init()方法 343
15.2.2 destroy()方法 343
15.2.3 doFilter()方法 344
15.3 配置过滤器 344
15.4 过滤器的用途 344
15.5 实例(一):使用过滤器设定传输参数编码 345
15.5.1 目标 345
15.5.2 新建项目 345
15.5.3 编辑EncodingFilter.java 345
15.5.4 编辑web.xml 346
15.5.5 编辑index.jsp 346
15.5.6 运行输出 347
15.6 实例(二):网络留言本V1.7 348
15.6.1 目标 348
15.6.2 新增admin表 348
15.6.3 新建guestbook8项目 348
15.6.4 编辑AdminUserServlet.java 349
15.6.5 编辑AuthenticationFilter.java 351
15.6.6 编辑ManageServlet.java 352
15.6.7 编辑login.jsp 354
15.6.8 修改validation-config.xml 355
15.6.9 编辑loginFail.jsp 355
15.6.10 编辑list.jsp 356
15.6.11 编辑edit.jsp 357
15.6.12 编辑updateResult.jsp 358
15.6.13 编辑deleteResult.1sp 359
15.6.14 修改web.xml 359
15.6.15 运行输出 360
第16章 文件上传与邮件发送 361
16.1 文件上传 361
16.2 实例(一):使用FileUpload实现文件上传 362
16.2.1 目的 362
16.2.2 新建webproject12项目 362
16.2.3 编辑uploadFile.jsp 362
16.2.4 编辑UploadServlet.java 363
16.2.5 编辑uploadResult.jsp 365
16.2.6 修改webxml文件 365
16.2.7 程序运行 365
16.3 JavaMail 366
16.3.1 JavaMail下载与安装 367
16.3.2 JavaMail核心类 367
16.4 实例(二):编写邮件发送程序V1.0 369
16.4.1 目标 369
16.4.2 编辑SendMail.java 369
16.4.3 程序运行 370
16.5 实例(三):编写邮件发送程序V1.1 370
16.5.1 目标 370
16.5.2 下载ApacheCommonsEmail组件 370
16.5.3 编辑sendMail.jsp 370
16.5.4 编辑SendMailServlet.java 371
16.5.5 编辑sendResult.jsp 372
16.5.6 运行输出 372
16.6 实例(四):编写邮件发送程序V1.2 373
16.6.1 目标 373
16.6.2 编辑SendAttachmentMajlServlet.java 373
16.6.3 新建sendAttachmentMail.jsp 375
16.6.4 修改web.xml文件 375
16.6.5 程序运行 376
16.7 更多参考信息 376
第17章 DAO设计模式与分页显示 377
17.1 DAO设计模式 377
17.1.1 DAO模式的实现 377
17.1.2 DAO模式的优势 380
17.2 分页显示 381
17.2.1 Displaytag标记库 381
17.2.2 超大记录数的分页显示 385
17.2.3 Pager标记库 391
17.3 实例:网络留言本V1.8 393
17.3.1 目标 393
17.3.2 新建guestbook9项目 393
17.3.3 修改GuestbookDAO.java 394
17.3.4 修改GuestbookDAOJdbc.java 394
17.3.5 编写Admin.java 394
17.3.6 编写AdminDAO.java 395
17.3.7 编写AdminDAOJdbc.java 395
17.3.8 修改AddMessageServlet.java 396
17.3.9 修改GetMessagesServlet.java 397
17.3.10 修改AdminUserServlet.java 398
17.3.11 修改ManageServlet.java 398
17.3.12 修改list.jsP 401
17.3.13 修改getMessages.jsp 401
17.3.14 修改webxml 403
17.3.15 运行输出 403
17.4 更多的参考信息 403
第18章 解决中文乱码 404
18.1 字符集与编码方法 404
18.1.1 字符集 404
18.1.2 字符编码 404
18.1.3 ASCII 405
18.1.4 ISO8859-1 406
18.1.5 GB2312 406
18.1.6 GBK 406
18.1.7 GB18030 407
18.1.8 BIG5 407
18.1.9 Unicode 407
18.2 Java中字符的表示与处理 409
18.3 JavaWeb编程中文乱码解决方法 409
18.3.1 调用JSP页面显示乱码 409
18.3.2 调用Servlet页面显示乱码 410
18.3.3 POST表单传递参数乱码 411
18.3.4 URI方式传递参数乱码 412
18.3.5 Properties文件乱码 413
18.4 更多参考信息 413
第19章 Web应用与web.xml 414
19.1 Web应用 414
19.1.1 Web应用的目录结构 414
19.1.2 Web应用打包 415
19.2 web.xml文件 416
19.2.1 web.xml的元素说明 417
19.2.2 Web应用初始化 420