名师讲坛:Java Web开发实战经典基础篇.pdf

名师讲坛:Java Web开发实战经典基础篇.pdf
 

书籍描述

编辑推荐
《名师讲坛:Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)》精彩视频:32小时全真教学培训视频,市场价值1000元;案例教学:30个案例分析;丰富实例:300个小实例、源程序;教学支持:详尽电子教案。

作者简介
李兴华:著名JAVA培训讲师,JAVA EE高端培训讲师,北京魔乐科技(MLDN软件实训中心)教学总监,中科软通系统架构师,火车票网技术总监,北京伟仕嘉禾科技发展有限公司系统架构师,8年软件开发经验,5年高端培训经验,先后为40多家大中型企业做过培训,在JAVA培训方面享有很高的知名度。

王月清:江苏泰州人,中科软通CEO兼人事总监,E商联盟主席,易维博科技术总监,是一位在IT领域拥有十几年实践经 验的资深专业人士。主持开发过多个大型计算机系统,并研发了具有通用意义的web验证框架、灵活的自定义表单系统、文件传 输系统等。拥有自己的知识产权。

目录
目 录

第1部分 Web开发前奏

第1章 Java Web开发简介 2
1.1 Web发展历程 2
1.2 企业开发架构 6
1.3 Java EE架构 7
1.4 Java EE核心设计模式 10
1.5 Struts开发框架 11
1.6 本章摘要 12
第2章 HTML、JavaScript简介 13
视频讲解:1小时45分钟
2.1 服务器与浏览器 13
2.2 HTML简介 14
2.2.1 HTML元素概览 14
2.2.2 创建显示Web页 16
2.2.3 创建表单Web页 19
2.3 JavaScript简介 21
2.3.1 JavaScript的基本语法 21
2.3.2 事件处理 29
2.3.3 window对象 35
2.4 本章摘要 40
2.5 开发实战讲解 40
第3章 XML简介 41
视频讲解:2小时16分钟
3.1 认识XML 41
3.2 XML解析 48
3.2.1 DOM解析操作 48
3.2.2 SAX解析操作 57
3.2.3 XML解析的好帮手:JDOM 60
3.2.4 最出色的解析工具:DOM4J 64
3.3 使用JavaScript操作DOM 67
3.4 本章摘要 71
3.5 开发实战讲解(基于Oracle
数据库) 71
第4章 Tomcat服务器的安装及配置 73
视频讲解:1小时04分钟
4.1 Web容器简介 73
4.2 Tomcat简介 74
4.3 Tomcat服务器的下载及配置 75
4.3.1 Tomcat下载 75
4.3.2 Tomcat安装 75
4.3.3 服务器配置 78
4.4 编写第一个JSP文件 82
4.5 交互性 85
4.6 本章摘要 86


第2部分 Web基础开发
第5章 JSP基础语法 88
视频讲解:2小时11分钟
5.1 JSP注释 88
5.2 Scriptlet 89
5.2.1 第一种Scriptlet:<%%> 89
5.2.2 第二种Scriptlet:<%!%> 90
5.2.3 第三种Scriptlet:<%=%> 91
5.3 scriptlet标签 95
5.4 page指令 95
5.4.1 设置页面的MIME 96
5.4.2 设置文件编码 100
5.4.3 错误页的设置 101
5.4.4 数据库连接操作 103
5.5 包含指令 107
5.5.1 静态包含 107
5.5.2 动态包含 109
5.6 跳转指令 113
5.7 实例操作:用户登录程序
实现 (JSP+JDBC实现) 114
5.7.1 创建数据库表 115
5.7.2 程序实现思路 115
5.7.3 程序实现 116
5.8 本章摘要 119
5.9 开发实战讲解(基于Oracle
数据库) 120
第6章 JSP内置对象 121
视频讲解:3小时42分钟
6.1 JSP内置对象概览 121
6.2 4种属性范围 122
6.2.1 page属性范围(pageContext) 123
6.2.2 request属性范围 125
6.2.3 session属性范围 127
6.2.4 application属性范围 129
6.2.5 深入研究page属性范围 131
6.3 request对象 132
6.3.1 乱码解决 133
6.3.2 接收请求参数 135
6.3.3 显示全部的头信息 141
6.3.4 角色验证 142
6.3.5 其他操作 144
6.4 response对象 145
6.4.1 设置头信息 146
6.4.2 页面跳转 148
6.4.3 操作Cookie 150
6.5 session对象 154
6.5.1 取得Session Id 155
6.5.2 登录及注销 157
6.5.3 判断新用户 160
6.5.4 取得用户的操作时间 161
6.6 application对象 162
6.6.1 取得虚拟目录对应的绝对路径 162
6.6.2 范例讲解:网站计数器 165
6.6.3 查看application范围的属性 167
6.7 Web安全性及config对象 168
6.7.1 Web安全性 168
6.7.2 config对象 170
6.8 out对象 171
6.9 pageContext对象 172
6.10 本章摘要 174
6.11 开发实战讲解(基于Oracle
数据库) 175
第7章 JavaBean 182
视频讲解:2小时11分钟
7.1 JavaBean简介 182
7.2 在JSP中使用JavaBean 184
7.2.1 Web开发的标准目录结构 184
7.2.2 使用JSP的page指令导入
所需要的JavaBean 185
7.2.3 使用 指令 186
7.3 JavaBean与表单 188
7.4 设置属性: 190
7.4.1 设置指定的属性 191
7.4.2 指定设置属性的参数 192
7.4.3 为属性设置具体内容 192
7.5 取得属性: 193
7.6 JavaBean的保存范围 194
7.6.1 page范围的JavaBean 194
7.6.2 request范围的JavaBean 195
7.6.3 session范围的JavaBean 196
7.6.4 application范围的JavaBean 197
7.7 JavaBean的删除 197
7.8 实例操作:注册验证 198
7.9 DAO设计模式 202
7.9.1 DAO设计模式简介 202
7.9.2 DAO开发 204
7.9.3 JSP调用DAO 214
7.10 本章摘要 217
7.11 开发实战讲解(基于Oracle
数据库) 218
第8章 文件上传 223
视频讲解:1小时30分钟
8.1 SmartUpload上传组件 223
8.1.1 上传单个文件 224

8.1.2 混合表单 225
8.1.3 为上传文件自动命名 226
8.1.4 批量上传 229
8.2 FileUpload 230
8.2.1 使用FileUpload接收上传内容 232
8.2.2 保存上传内容 235
8.2.3 开发FileUpload组件的专属
操作类 237
8.3 本章摘要 242
8.4 开发实战讲解(基于Oracle
数据库) 243

第3部分 Web高级开发

第9章 Servlet程序开发 248
视频讲解:4小时08分钟
9.1 Servlet简介 248
9.2 永远的“HelloWorld”:第一个
Servlet程序 249
9.3 Servlet与表单 253
9.4 Servlet生命周期 255
9.5 取得初始化配置信息 259
9.6 取得其他内置对象 260
9.6.1 取得HttpSession实例 260
9.6.2 取得ServletContext实例 261
9.7 Servlet跳转 263
9.7.1 客户端跳转 263
9.7.2 服务器端跳转 264
9.8 Web开发模式:Mode I与
Mode II 266
9.8.1 Mode I 266
9.8.2 Mode II:Model-View-Controller 267
9.9 实例操作:MVC设计模式
应用 269
9.10 过滤器 277
9.10.1 过滤器的基本概念 277
9.10.2 实现过滤器 278
9.10.3 过滤器的应用 281
9.11 监听器 283
9.11.1 对application监听 284
9.11.2 对session监听 287
9.11.3 对request监听 292
9.11.4 监听器实例——在线人员统计 295
9.12 本章摘要 298
9.13 开发实战讲解(基于Oracle
数据库) 298
第10章 表达式语言 305
视频讲解:1小时07分钟
10.1 表达式语言简介 305
10.2 表达式语言的内置对象 306
10.2.1 访问4种属性范围的内容 307
10.2.2 调用内置对象操作 308
10.2.3 接收请求参数 309
10.3 集合操作 311
10.4 在MVC中应用表达式语言 313
10.5 运算符 318
10.6 本章摘要 322
10.7 开发实战讲解(基于Oracle
数据库) 322
第11章 Tomcat数据源 326
视频讲解:23分钟
11.1 数据源操作原理 326
11.2 在Tomcat中使用数据库
连接池 327
11.3 查找数据源 329
11.4 本章摘要 331
第12章 JSP标签编程 332
视频讲解:2小时04分钟
12.1 标签编程简介 332
12.2 定义一个简单的标签——
空标签 333
12.3 定义有属性的标签 336
12.4 TagSupport类 339
12.5 定义有标签体的标签库 342
12.6 开发迭代标签 345
12.7 BodyTagSupport类 348
12.8 TagExtraInfo类和
VariableInfo类 350
12.9 使用BodyTagSupport开发
迭代输出 352
12.10 简单标签 355
12.11 DynamicAttributes接口 361
12.12 本章摘要 363
第13章 JSP标准标签库 364
视频讲解:2小时04分钟
13.1 JSTL简介 364
13.2 安装JSTL 1.2 365
13.3 核心标签库 367
13.3.1 标签 368
目 录

第1部分 Web开发前奏

第1章 Java Web开发简介 2
1.1 Web发展历程 2
1.2 企业开发架构 6
1.3 Java EE架构 7
1.4 Java EE核心设计模式 10
1.5 Struts开发框架 11
1.6 本章摘要 12
第2章 HTML、JavaScript简介 13
视频讲解:1小时45分钟
2.1 服务器与浏览器 13
2.2 HTML简介 14
2.2.1 HTML元素概览 14
2.2.2 创建显示Web页 16
2.2.3 创建表单Web页 19
2.3 JavaScript简介 21
2.3.1 JavaScript的基本语法 21
2.3.2 事件处理 29
2.3.3 window对象 35
2.4 本章摘要 40
2.5 开发实战练习 40
第3章 XML简介 41
视频讲解:2小时16分钟
3.1 认识XML 41
3.2 XML解析 48
3.2.1 DOM解析操作 48
3.2.2 SAX解析操作 57
3.2.3 XML解析的好帮手:JDOM 60
3.2.4 最出色的解析工具:DOM4J 64
3.3 使用JavaScript操作DOM 67
3.4 本章摘要 72
3.5 开发实战练习(基于Oracle
数据库) 73
第4章 Tomcat服务器的安装及配置 75
视频讲解:1小时04分钟
4.1 Web容器简介 75
4.2 Tomcat简介 76
4.3 Tomcat服务器的下载及配置 77
4.3.1 Tomcat下载 77
4.3.2 Tomcat安装 77
4.3.3 服务器配置 80
4.4 编写第一个JSP文件 84
4.5 交互性 87
4.6 本章摘要 88


第2部分 Web基础开发
第5章 JSP基础语法 90
视频讲解:2小时11分钟
5.1 JSP注释 90
5.2 Scriptlet 91
5.2.1 第一种Scriptlet:<%%> 91
5.2.2 第二种Scriptlet:<%!%> 92
5.2.3 第三种Scriptlet:<%=%> 93
5.3 scriptlet标签 97
5.4 page指令 97
5.4.1 设置页面的MIME 98
5.4.2 设置文件编码 102
5.4.3 错误页的设置 103
5.4.4 数据库连接操作 105
5.5 包含指令 109
5.5.1 静态包含 109
5.5.2 动态包含 111
5.6 跳转指令 115
5.7 实例操作:用户登录程序
实现 (JSP+JDBC实现) 116
5.7.1 创建数据库表 117
5.7.2 程序实现思路 117
5.7.3 程序实现 118
5.8 本章摘要 121
5.9 开发实战练习(基于Oracle
数据库) 122
第6章 JSP内置对象 123
视频讲解:3小时42分钟
6.1 JSP内置对象概览 123
6.2 4种属性范围 124
6.2.1 page属性范围(pageContext) 125
6.2.2 request属性范围 127
6.2.3 session属性范围 129
6.2.4 application属性范围 131
6.2.5 深入研究page属性范围 133
6.3 request对象 134
6.3.1 乱码解决 135
6.3.2 接收请求参数 137
6.3.3 显示全部的头信息 143
6.3.4 角色验证 144
6.3.5 其他操作 146
6.4 response对象 147
6.4.1 设置头信息 148
6.4.2 页面跳转 150
6.4.3 操作Cookie 152
6.5 session对象 156
6.5.1 取得Session Id 157
6.5.2 登录及注销 159
6.5.3 判断新用户 162
6.5.4 取得用户的操作时间 163
6.6 application对象 164
6.6.1 取得虚拟目录对应的绝对路径 164
6.6.2 范例讲解:网站计数器 167
6.6.3 查看application范围的属性 169
6.7 Web安全性及config对象 170
6.7.1 Web安全性 170
6.7.2 config对象 172
6.8 out对象 173
6.9 pageContext对象 174
6.10 本章摘要 176
6.11 开发实战练习(基于Oracle
数据库) 177
第7章 JavaBean 184
视频讲解:2小时11分钟
7.1 JavaBean简介 184
7.2 在JSP中使用JavaBean 186
7.2.1 Web开发的标准目录结构 186
7.2.2 使用JSP的page指令导入
所需要的JavaBean 187
7.2.3 使用 指令 188
7.3 JavaBean与表单 190
7.4 设置属性: 192
7.4.1 设置指定的属性 193
7.4.2 指定设置属性的参数 194
7.4.3 为属性设置具体内容 194
7.5 取得属性: 195
7.6 JavaBean的保存范围 196
7.6.1 page范围的JavaBean 196
7.6.2 request范围的JavaBean 197
7.6.3 session范围的JavaBean 198
7.6.4 application范围的JavaBean 199
7.7 JavaBean的删除 199
7.8 实例操作:注册验证 200
7.9 DAO设计模式 204
7.9.1 DAO设计模式简介 204
7.9.2 DAO开发 206
7.9.3 JSP调用DAO 216
7.10 本章摘要 219
7.11 开发实战练习(基于Oracle
数据库) 220
第8章 文件上传 225
视频讲解:1小时30分钟
8.1 SmartUpload上传组件 225
8.1.1 上传单个文件 226

8.1.2 混合表单 227
8.1.3 为上传文件自动命名 228
8.1.4 批量上传 231
8.2 FileUpload 232
8.2.1 使用FileUpload接收上传内容 234
8.2.2 保存上传内容 237
8.2.3 开发FileUpload组件的专属
操作类 239
8.3 本章摘要 244
8.4 开发实战练习(基于Oracle
数据库) 245

第3部分 Web高级开发

第9章 Servlet程序开发 250
视频讲解:4小时08分钟
9.1 Servlet简介 250
9.2 永远的“HelloWorld”:第一个
Servlet程序 251
9.3 Servlet与表单 255
9.4 Servlet生命周期 257
9.5 取得初始化配置信息 261
9.6 取得其他内置对象 262
9.6.1 取得HttpSession实例 262
9.6.2 取得ServletContext实例 263
9.7 Servlet跳转 265
9.7.1 客户端跳转 265
9.7.2 服务器端跳转 266
9.8 Web开发模式:Mode I与
Mode II 268
9.8.1 Mode I 268
9.8.2 Mode II:Model-View-Controller 269
9.9 实例操作:MVC设计模式
应用 271
9.10 过滤器 279
9.10.1 过滤器的基本概念 279
9.10.2 实现过滤器 280
9.10.3 过滤器的应用 283
9.11 监听器 285
9.11.1 对application监听 286
9.11.2 对session监听 289
9.11.3 对request监听 294
9.11.4 监听器实例——在线人员统计 297
9.12 本章摘要 300
9.13 开发实战练习(基于Oracle
数据库) 300
第10章 表达式语言 307
视频讲解:1小时07分钟
10.1 表达式语言简介 307
10.2 表达式语言的内置对象 308
10.2.1 访问4种属性范围的内容 309
10.2.2 调用内置对象操作 310
10.2.3 接收请求参数 311
10.3 集合操作 313
10.4 在MVC中应用表达式语言 315
10.5 运算符 320
10.6 本章摘要 324
10.7 开发实战练习(基于Oracle
数据库) 324
第11章 Tomcat数据源 328
视频讲解:23分钟
11.1 数据源操作原理 328
11.2 在Tomcat中使用数据库
连接池 329
11.3 查找数据源 331
11.4 本章摘要 333
第12章 JSP标签编程 334
视频讲解:2小时04分钟
12.1 标签编程简介 334
12.2 定义一个简单的标签——
空标签 335
12.3 定义有属性的标签 338
12.4 TagSupport类 341
12.5 定义有标签体的标签库 344
12.6 开发迭代标签 347
12.7 BodyTagSupport类 350
12.8 TagExtraInfo类和
VariableInfo类 352
12.9 使用BodyTagSupport开发
迭代输出 354
12.10 简单标签 357
12.11 DynamicAttributes接口 363
12.12 本章摘要 365
第13章 JSP标准标签库 366
视频讲解:2小时04分钟
13.1 JSTL简介 366
13.2 安装JSTL 1.2 367
13.3 核心标签库 369
13.3.1 标签 370
13.3.2 标签 371
13.3.3 标签 373
13.3.4 标签 374
13.3.5 标签 375
13.3.6
标签 376
13.3.7 标签 378
13.3.8 标签 381
13.3.9 标签 382
13.3.10 标签 383
13.3.11 标签 384
13.4 国际化标签库 385
13.4.1 标签 386
13.4.2 标签 387
13.4.3 读取资源文件 388
13.4.4 数字格式化标签 391
13.4.5 日期时间格式化标签 394
13.4.6 设置时区 397
13.5 SQL标签库 398
13.5.1 标签 398
13.5.2 数据库操作标签 399
13.5.3 事务处理 404
13.6 XML标签库 405
13.6.1 XPath简介 406
13.6.2 标签 407
13.6.3 标签 407
13.6.4 标签 408
13.6.5 标签 409
13.6.6
标签 410
13.6.7 标签 412
13.7 函数标签库 413
13.8 本章摘要 415
13.9 开发实战练习(基于Oracle
数据库) 415
第14章 Ajax开发技术 417
视频讲解:1小时21分钟
14.1 Ajax技术简介 417
14.2 XMLHttpRequest对象 418
14.3 第一个Ajax程序 420
14.4 异步验证 421
14.5 返回XML数据 425
14.6 本章摘要 427
14.7 开发实战练习(基于Oracle
数据库) 428



第4部分 框架开发

第15章 Struts基础开发 436
视频讲解:42分钟
15.1 Struts简介 436
15.2 配置Struts开发环境 437
15.3 开发第一个Struts程序 441
15.4 Struts工作原理 446
15.5 深入Struts应用 447
15.6 本章摘要 450
15.7 开发实战练习(基于Oracle
数据库) 451
第16章 Struts常用标签库 453
视频讲解:1小时26分钟
16.1 Struts标签库简介 453
16.2 Bean标签 454
16.2.1 标签 454
16.2.2 标签 456
16.2.3 资源访问标签 457
16.2.4 标签 460
16.2.5 标签 461
16.2.6 标签 462
16.2.7 国际化与 标签 463
16.3 Logic标签 465
16.3.1
标签 466
16.3.2
标签 467
16.3.3 关系运算标签 468
16.3.4 标签 470
16.3.5 重定向标签: 472

16.4 Html标签 474
16.4.1 标签 474
16.4.2
标签 475
16.4.3 标签 476
16.4.4 标签 476
16.4.5 标签 477
16.4.6 按钮标签 477
16.4.7 实例:编写基本表单 477
16.4.8 复选框标签 480
16.4.9 下拉列表框 484
16.5 本章摘要 487
16.6 开发实战练习(基于Oracle
数据库) 487
第17章 Struts高级开发 489
视频讲解:1小时32分钟
17.1 Struts多人开发 489
17.2 Token 490
17.3 文件上传 495
17.4 动态ActionForm 498
17.5 Action深入 500
17.5.1 ForwardAction 500
17.5.2 IncludeAction 502
17.5.3 DispatchAction 502
17.6 验证框架 504
17.7 本章摘要 510
17.8 开发实战练习(基于Oracle
数据库) 510

第5部分 附录

附录A 实用工具 524
视频讲解:1小时09分钟
A.1 JavaMail 524
A.1.1 James邮件服务器的下载及配置 524
A.1.2 JavaMail简介及配置 529
A.1.3 发送普通邮件 531
A.1.4 发送带附件的HTML风格邮件 535
A.2 操作Excel文件 538
A.2.1 JExcelAPI简介 538
A.2.2 创建一个Excel文件 540
A.2.3 读取Excel文件 541
A.2.4 格式化文本 542
A.3 本章摘要 544
附录B MyEclipse开发工具 545
视频讲解:15分钟
B.1 MyEclipse简介 545
B.2 MyEclipse的安装 546
B.3 MyEclipse的使用 546
B.4 配置Tomcat服务器 549
B.5 MyEclipse卸载 552
B.6 本章摘要 552
附录C HTTP状态码及头信息 553
C.1 HTTP状态码 553
C.2 HTTP头信息 554



序言
前 言

“我们在用心做事,做最好的教育,做最好的图书!”
——北京魔乐科技教学总监 李兴华
“无独有偶,因为执着,所以专业!”
——中科软通CEO 王月清
本书起源
这本书是北京魔乐科技(MLDN软件实训中心)继《名师讲坛——Java开发实战经典》之后的又一扛鼎之作!
亲爱的读者朋友,感谢您独具慧眼选择了这本书,我们坚信:本书将向您充分展示出Java开发技术的神奇魅力,且将会带您快速、轻松地进入Java Web的开发领域。
这本书浸透了我们的心血。它最初来源于我们的讲义,后应出版社之邀,数易其稿,从开始创作整理到完稿,到最后的视频全部录制完成,一共历时14个月。当然在这14个月中,我还有繁重的教学及项目开发任务,但是无论教学还是开发中间,我们无时无刻不在惦记、验证、揣摩、记录与本书有关的内容。
希望用我们的学习、教学和开发经历、经验,启示后来的读者,少走弯路,能够在有限的时间内快速掌握一门技术。
记得若干年前,当JSP技术刚刚在中国兴起的时候,我们就迫切寻觅一本能很快掌握这门技术的书,当时是几乎每周都会向图书城跑一趟,用每个月省吃简用的钱去买一些相关的书来学习,当把每一本书带回家的时候,心中的那份喜悦是无法用言语来表达的。但往往是因为晦涩的文字、解释不清的概念、调试不通的程序等一系列问题,让人感到技术似乎十分深奥,并一度怀疑我们是不是真的适合做这个行业。现在才知道,很多问题出在书上——很多书是一些不懂技术的人拼出来的,真有一种上当受骗的感觉!现在,经过多年的摸爬滚打,我们对这些技术已经很熟悉了,但回想当年的经历,还隐隐作痛。于是,就想用“心”写一本书,让每一位后来的读者不再为技术而吓到、而退却。因为,我们觉得技术并不难,但第一步——选书很关键,一本晦涩无比、不知所云而又故作深奥的书,很可能让人从此与该行业无缘,相反,一本好书好比是一个好的启蒙老师,可以轻松、愉快地把人带入一个专业的领域。
本书内容结构
本书共分为五个部分:Web开发前奏、Web基础开发、Web高级开发、框架开发、附录。
本书的核心章节为:第3章~第10章, 第14章、第15章、第17章。
本书循序渐进,每一部分的知识都是为后续内容进行服务的,学习步骤参考下图。

学习步骤
上图中,对于整个Web学习应该分五步展开,每一步都有须掌握的核心知识,这些步骤和核心知识的对应关系下图所示。

与学习步骤相对应的核心知识

在学习本书之前,建议读者一定要先掌握一些Java基础知识,我们推荐《名师讲坛——Java开发实战经典》一书,因为这本书与本书内容有关联,而且要特别注意
• 面向对象:理解类的设计原则,掌握抽象类和接口的使用;
• 类集框架:掌握集合框架的主要作用,并且可以灵活使用Collection、Map、Iterator等接口;
• Java IO:文件的输入输出操作,在文件上传章节中将会有重要作用;
• JDBC:Java Web贯彻始终的技术,没有JDBC基本上Java Web也就将失去全部意义。
读者服务
前 言

“我们在用心做事,做最好的教育,做最好的图书!”
——北京魔乐科技教学总监 李兴华
“无独有偶,因为执着,所以专业!”
——中科软通CEO 王月清
本书起源
这本书是北京魔乐科技(MLDN软件实训中心)继《名师讲坛——Java开发实战经典》之后的又一扛鼎之作!
亲爱的读者朋友,感谢您独具慧眼选择了这本书,我们坚信:本书将向您充分展示出Java开发技术的神奇魅力,且将会带您快速、轻松地进入Java Web的开发领域。
这本书浸透了我们的心血。它最初来源于我们的讲义,后应出版社之邀,数易其稿,从开始创作整理到完稿,到最后的视频全部录制完成,一共历时14个月。当然在这14个月中,我还有繁重的教学及项目开发任务,但是无论教学还是开发中间,我们无时无刻不在惦记、验证、揣摩、记录与本书有关的内容。
希望用我们的学习、教学和开发经历、经验,启示后来的读者,少走弯路,能够在有限的时间内快速掌握一门技术。
记得若干年前,当JSP技术刚刚在中国兴起的时候,我们就迫切寻觅一本能很快掌握这门技术的书,当时是几乎每周都会向图书城跑一趟,用每个月省吃俭用的钱去买一些相关的书来学习,当把每一本书带回家的时候,心中的那份喜悦是无法用言语来表达的。但往往是因为晦涩的文字、解释不清的概念、调试不通的程序等一系列问题,让人感到技术似乎十分深奥,并一度怀疑我们是不是真的适合做这个行业。现在才知道,很多问题出在书上——很多书是一些不懂技术的人拼出来的,真有一种上当受骗的感觉!现在,经过多年的摸爬滚打,我们对这些技术已经很熟悉了,但回想当年的经历,还隐隐作痛。于是,就想用“心”写一本书,让每一位后来的读者不再为技术而吓到、而退却。因为,我们觉得技术并不难,但第一步——选书很关键,一本晦涩无比、不知所云而又故作深奥的书,很可能让人从此与该行业无缘,相反,一本好书好比是一个好的启蒙老师,可以轻松、愉快地把人带入一个专业的领域。

本书内容结构
本书共分为5个部分:Web开发前奏、Web基础开发、Web高级开发、框架开发、附录。
本书的核心章节为:第3章~第10章, 第14章、第15章、第17章。
本书循序渐进,每一部分的知识都是为后续内容进行服务的,学习步骤参考下图。

学习步骤
上图中,对于整个Web学习应该分5步展开,每一步都有需掌握的核心知识,这些步骤和核心知识的对应关系下图所示。

与学习步骤相对应的核心知识
在学习本书之前,建议读者一定要先掌握一些Java基础知识,我们推荐《名师讲坛——Java开发实战经典》一书,因为这本书与本书内容有关联,而且要特别注意以下几点。
 面向对象:理解类的设计原则,掌握抽象类和接口的使用。
 类集框架:掌握集合框架的主要作用,并且可以灵活使用Collection、Map、Iterator等接口。
 Java IO:文件的输入输出操作,在文件上传章节中将会有重要作用。
 JDBC:Java Web贯彻始终的技术,没有JDBC基本上Java Web也就将失去全部意义。
读者服务
1.本书随书DVD光盘提供了教学视频和实例中用到的源程序,读者可以先看视频,并调试相关程序,在体验中学习。
2.本书提供了http://bbs.mldn.cn论坛,读者可以登录寻求帮助,还可以发邮件给我们mldnqa@163.com。
3.高校教师可以登录http://www.jiangker.com/,注册后,我们为您提供完整的教学大纲、学习笔记、视频教学等一系列的资料。
高校、应用型、高职院校邀请授课,请致电:010-51283346。
本书作者
本书主要由李兴华、王月清执笔完成,还有其他人员参与了本书的文字整理、技术调试等工作,在此,谨向他们深表谢意,他们是:康丽华、董鸣楠、孙述龙、刘翳、张笑楠、刘刚、田弘冰、庞猛、刘桢媛、刘圣、李祺、孙浩、范金圣、周艳军、刘宏伟、徐明明、马云涛、李杰、张蕊、郭鸿喜、王四波、李金曼、张旭明、马宁、王续、石瑞、师铂弘、苏莹、张金旭、朱亚娜、李少龙、韩雷、朱红、吴海斌、郑京伟、张军、高林、樊庆冲、刘闵、王孝庆、汤敬宁、罗昆、崔岚、谢欢欢、堪雪莲、王继生、赵建军、张艳萍、吴亨、路继、苑建明和李超。
寄语读者——追求梦想,永不放弃!
本书是我们长达5年的经验的总结,它记录了教学和开发中的点点滴滴的经验和教训,也历经许多学生的检验,绝非滥竽充数之书!只要认真研读本书内容,就一定能够顺利跨入Java Web的大门。由于书中的内容基本都是原创,难免会有解释不到位的地方,希望读者朋友能提出宝贵意见,我们来共同交流。
最后,希望本书成为您的“启蒙老师”,引领您在软件开发的大道上越走越好!




文摘
第1章 Java Web开发简介
通过本章的学习可以达到以下目标:
 了解Web的发展过程。
 理解Web开发的主要技术及作用范围。
 掌握企业开发的整体架构。
随着互联网的兴起,Web技术已经应用得越来越广泛,而且已经有越来越多的语言开始支持Web的开发。本章将介绍Web的发展历程和Web常见的开发语言。

1.1 Web发展历程
在早期,人们为了方便开展科学研究,设计出了Internet用于连接美国的少数几个顶尖研究机构,之后随着进一步的发展,人们开始应用HTTP协议(Hypertext Transfer Protocol,超文本传输协议)进行超文本(hypertext)和超媒体(hypermedia)数据的传输,从而将一个个的网页展示在每个用户的浏览器上。今天的Web已经从最早的静态Web发展到了动态Web阶段,随之而来的像网上银行、网络购物等站点的兴起,更是将Web带进了人们的生活和工作中。
最早的Web是以静态Web出现的,用户在浏览器中输入网址将请求通过HTTP协议传送到Web服务器上,服务器会根据用户的请求找到相应的网页文件(*.htm、*.html),接着再通过HTTP协议传回到客户端浏览器上进行显示,如图1-1所示。

图1-1 静态Web处理流程
但是这种Web返回的只是电子文本的形式,在服务器生成之后,内容永远是固定的。在最初阶段,一些科学家可以通过这些静态Web的方式进行论文研究,而且很多的企业也并没有发现这座“金矿”,而最初可以实现静态Web的主要手段也就是使用HTML(超文本标记语言)。
随后,一些人对于Web就有更高的要求了,希望可以得到一些更加绚丽的效果,而此时SUN公司推出的Applet正好满足了这种需求。
SUN公司在1995年正式推出了Applet程序,而Applet(应用小程序,简称小程序)允许开发人员编写可以嵌入在Web页面上的小应用程序,只要用户使用了支持Java的浏览器就可以直接运行此程序,那么此时的Web处理结构如图1-2所示。

图1-2 Web处理结构
Applet程序虽然带来了很多好处,但是Applet程序本身也存在着一些限制。例如,不允许进行文件读写,也无法进行数据库的操作,而且Applet属于胖客户端程序,下载速度也是非常缓慢。

从图1-2中可以分析出,Applet技术本身只能运行在客户端,所以此时虽然带来了一些动态的效果,但是服务器端依然没有做太大的改变,还是采用了请求及回应机制,客户端需要哪些资源,服务器端就返回哪些资源。当然,除Applet技术外,像JavaScript语言也可以实现客户端动态效果,但不管如何实现,这种在客户端完成的动态效果在代码的开发上也是很复杂的,而现在的JavaScript在开发中也只是完成一些简单的表单验证功能的实现(这一点以后会讲解到)。

在客户端实现动态效果似乎已经成为了一件很麻烦的事情,那么人们只能在服务器端做出改变,而这种改变真正造就了动态Web的发展。下面先来看一下动态Web的执行图,并观察与静态Web的区别,如图1-3所示。

图1-3 动态Web流程图
从图1-3中可以发现,此时的客户端已经不再需要JVM的支持了,而只是一个普通的浏览器,但是服务器端却发生了重大的改变。首先,所有请求不再直接提交给Web服务器,而是通过Web服务插件进行接收,此插件的主要目的是用于区分用户所发出的请求是动态请求还是静态请求。如果用户发出的是静态请求,则会将用户请求交给Web服务器,并通过文件系统将用户所需要的资源发回给客户端浏览器,这一点与最初的静态Web处理流程是完全一样的;但如果此时的请求是动态请求,则会将所有请求交给Web容器进行处理,在Web容器中将会采用拼凑代码的形式(主要是拼凑HTML)动态地生成数据并通过Web服务器发回给客户端浏览器。

动态Web的最大特点就是具备交互性,所谓交互性就是服务器端会自动根据用户请求的不同而显示不同的结果。它类似于使用搜索引擎那样,只要输入关键字,服务器端就会根据这些指定的关键字,返回检索结果。
要想实现一个动态Web,可以采用如下5种方式。
 CGI(Common Gateway Interface,公共网关接口):CGI是最早出现的实现动态Web的操作标准,可以采用任何语言实现(如C或VB),但是这种传统的CGI程序本身是采用多进程的机制进行处理的,每当一个新用户连接到服务器上时,服务器都会为其分配一个新的进程,很明显,这种程序的执行效率是很低的。
 PHP(Hypertext Preprocessor,超文本预处理):PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C、Java和Perl语言的语法,并结合PHP自身的特性,使Web开发者能够迅速地写出动态页面。而且PHP是完全免费的,用户可以从PHP官方站点自由下载。但是PHP本身也有缺点,就是需要运行在Apache服务器下,只有在使用MySQL数据库时才可以达到性能的最大发挥,所以一般都只适合于个人或小型项目开发。

 ASP(Active Server Pages,动态服务页):ASP是一个动态Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。ASP采用脚本语言VBScript(JavaScript)作为自己的开发语言。由于ASP技术出现较早,所以一直到今天还在被陆续使用着,但是ASP技术本身有一个最大的问题就是平台的支持,ASP只能运行在IIS(Internet Information Services,互联网信息服务)服务器上,且只能在SQL Server数据库上才可以得到最大发挥。但是这套开发相对于使用Java开发而言,性能是很差的,所以一般用于个人或中小型项目 开发。
 ASP.NET:ASP.NET是微软公司继ASP之后推出的新一代动态网站开发技术。ASP.NET基于.NET框架平台,用户可以选择.NET框架下自己喜欢的语言进行开发。ASP.NET技术是ASP技术的更新,也是微软公司目前主推的技术,但是由于微软的产品永远都会受到平台的限制,所以此技术往往用于中型项目的开发。
 JSP(Java Server Page,Java服务页):使用Java完成的动态Web开发,代码风格与ASP类似,都属于在HTML代码中嵌入Java代码以实现功能,由于Java语言的跨平台特性,所以JSP不会受到操作系统或开发平台的制约,而且有多种服务器可以支持,如Tomcat、WebLogic、JBoss、Websphere等,所以经常在中大型项目开发中使用。JSP的前身是Servlet(服务器端小程序),但是由于Servlet开发过于复杂,所以SUN公司的开发人员根据ASP技术的特点,将Servlet程序重新包装,而形成新的一门开发技术——JSP。

1.2 企业开发架构
在现代的企业平台开发中已经大量地使用了B/S开发模式,不管是使用何种动态Web实现手段,其操作形式都是一样的,核心操作的大部分都是围绕着数据库进行的。但是如果直接使用编程语言进行数据库的开发则程序员要处理许多诸如事务、安全等操作,所以现在的开发往往都会通过中间件进行过渡,即程序运行在中间件上,并且通过中间件进行数据库的操作,而具体一些相关的处理,如事务、安全等完全由中间件负责,这样程序员只需要负责具体功能的开发即可,此种模式如图1-4所示。

图1-4 企业开发的核心架构
在图1-4中可以发现,企业的平台需要操作系统的支持,所有数据库都是建立在操作系统上的,之后开发平台(Java EE就是一种开发平台)通过中间件进行数据库的操作。

1.3 Java EE架构
Java EE(Java Enterprise Edition,在2005年之前称为J2EE)是在Java SE基础之上建立起来的一种标准开发架构,主要用于企业级应用程序的开发。在Java EE的开发中是以B/S作为主要的开发模式,在Java EE中提供了多种组件及各种服务,如图1-5所示。

图1-5 Java EE架构
从图1-5中可以发现,整个Java EE架构都是基于Java SE基础构建的,主要由容器、组件和服务三大核心部分构成,下面分别进行介绍。
1.Java EE容器
容器负责一种组件的运行,在Java EE中一共提供了4种容器,即Applet Container、Application Client Container、Web Container和EJB Container。各个容器负责处理各自的程序,且互相没有任何影响,而如果需要运行Web程序,则一定要有Web容器的支持。
2.Java EE组件
每一种Java EE组件实际上都表示着一种程序的开发,例如,Application程序就是使用主方法(main())运行的一种组件。在Java EE中提供了4种容器,每一种容器中都运行各自的组件,读者可以发现在Web容器中运行的是JSP和Servlet组件。EJB组件本身提供的是一个业务中心,由于EJB属于分布式开发的范畴,所以本书暂不对此做深入讲解。
3.Java EE服务
Java EE之所以应用广泛,主要是由于Java EE提供了各种服务,通过这些服务可以方便用户进行开发。例如,如果要进行数据库操作,则应使用JDBC服务。在Java EE中的主要服务有如下几种。
 HTTP(Hypertext Transfer Protocol):在Java EE中主要采用了HTTP协议作为通信标准,包括Web开发中的主要协议也是HTTP协议。
 RMI-IIOP(Remote Method Invocation over the Internet Inter-ORB Protocol):远程方法调用,融合了Java RMI和CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)两项技术的优点而形成的新的通信协议,在使用Application或Web端访问EJB端组件时使用。
 Java IDL(Java Interface Definition Language):Java接口定义语言,主要用于访问外部的CORBA服务。
 JTA(Java Transaction API):用于进行事务处理操作的API,但在Java EE中所有的事务应该交由容器处理。
 JDBC(Java Database Connectivity):为数据库操作提供的一组API。
 JMS(Java Message Service):用于发送点对点消息的服务,需要额外的消息服务中间件支持。
 JavaMail:用于发送邮件,需要额外的邮件服务器支持。
 JAF(JavaBeans Activation Framework):用于封装传递的邮件数据。
 JNDI(Java Naming and Directory Interface):在Java EE中提供的核心思想就是 “key→value”,为了体现这种思路,可以通过JNDI进行名称的绑定,并且依靠绑定的名字取得具体的对象。
 JAXP(Java API for XML Parsing):专门用于XML解析操作的API,可以使用DOM或SAX解析,在最新的Java EE中提供了一种新的解析组件——STAX。
 JCA(J2EE Connector Architecture):Java连接器架构,通过此服务可以连接不同开发架构的应用程序。
 JAAS(Java Authentication and Authorization Service):用于认证用户操作,可以让当前运行的代码更加可靠。
 JSF(Java Server Faces):Java EE官方提供的一套MVC实现组件。
 JSTL(JSP Standard Tag Library):JSP页面的标签支持库。
 Web服务组件:主要用于异构的分布式程序开发,主要服务有SAAJ(SOAP with Attachments API for Java)、JAXR(Java API for XML Registries)等。

但是在整个企业的应用环境中,Java EE架构只是工作在中间层的一种组件,如图1-6所示。

图1-6 Java EE在企业环境中的位置
在整个企业开发中主要分为如下3个层次。
 客户层:分为内部用户及外部用户,客户端可以使用Web浏览器,也可以是Java编写的应用程序。
 中间层:为客户访问提供服务,使用Java EE中的各种组件技术进行搭建,且各个容器之间允许互相调用。
 企业信息系统层(Enterprise Information Systems,EIS):例如,保存数据的数据库就是工作在此层。
客户端一般不会直接去操作企业信息系统层,而是会通过中间层提供的服务进行访问,开发人员所需要完成的就是为所有的客户端提供更方便的操作。
1.4 Java EE核心设计模式
在整个Java EE中最核心的设计模式就是MVC(Mode-View-Controller)设计模式,且被广泛应用。Java EE中的标准MVC设计模式如图1-7所示。

图1-7 Java EE中的标准MVC设计模式
在标准的MVC设计模式中,用户一旦发出请求之后会将所有请求交给控制层处理,然后由控制层调用模型层中的模型组件,并通过这些组件进行持久层的访问,再将所有结果都保存在JavaBean(Java类)中,最终由JSP和JavaBean一起完成页面的显示。但是此种设计模式,在不同的开发架构中也会存在一些区别,因为在开发中如果没有特殊的需要不一定会使用EJB技术,这一点在本书中会有具体的讲解。

1.5 Struts开发框架
使用标准MVC设计模式进行开发,则肯定要求进行过多的复杂设计,这对于一般项目而言是非常麻烦的,所以Apache专门提供了一套用于进行MVC开发的框架——Struts。Struts的软件包依然用于Web层次的开发,使用Struts可以更方便地对代码开发进行严格的管理。图1-8列出了Struts框架的基本组成。

图1-8 Struts框架的基本组成
从图1-8中可以发现,Struts框架的主要作用还是在Web层上,也就是说Struts是对JSP和Servlet的一种变相应用,其核心的内部原理依然是MVC,而且由于Struts出现较早,使用较为广泛,所以现在俨然已经成为了Java EE的一套标准框架,是每一个从事Java EE开发人员必须具备的一项基本技能。

1.6 本 章 摘 要
1.Web运行环境经历了静态Web和动态Web两个时期,静态Web与动态Web最本质的区别就在于资源(数据库)的访问上。
2.动态Web的常见实现手段有CGI、ASP、PHP、JSP/Servlet等。
3.Java EE架构主要由组件、容器、服务组成,在整个Java EE中MVC是其核心设计思路。
4.Struts开发主要是为了解决Web层的开发问题,可以节约设计的成本。

内容简介
《名师讲坛:Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)》用通俗易懂的语言和丰富多彩的实例,通过对Ajax、JavaScript、HTML等Web系统开发技术基础知识的讲解,并结合MVC设计模式的理念,详细讲述了使用JSP及Struts框架进行Web系统开发的相关技术。
全书分4部分共17章,内容包括Java Web开发简介,HTML、JavaScript简介,XML简介,Tomcat服务器的安装及配置,JSP基础语法,JSP内置对象,JavaBean,文件上传,Servlet程序开发,表达式语言,Tomcat数据源,JSP标签编程,JSP标准标签库(JSTL),Ajax开发技术,Struts基础开发,Struts常用标签库,Struts高级开发。另外,附录中还介绍了实用工具、MyEclipse开发工具和HTTP状态码及头信息。
本书所有知识均以实用性为主,讲解的是开发的核心内容,几乎全部用实例和代码讲解。
本书配备32小时同步教学视频,以及几乎全部实例的源程序,服务网站提供了电子教案等教学配套资料。
本书适合Java Web开发的入门者使用,也可以作为普通高校、应用型高校、部分高职院校等以实用性为主的在校大学生作为参考书。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多