第一篇 JSP基础开发 3
第1章 初识JSP 3
1.1 创建Web应用的技术发展过程 4
1.1.1 传统Web服务器模式的不足 4
1.1.2 CGI实现动态生成HTML 5
1.1.3 Servlet——改进的CGI 6
1.2 JSP简介 7
1.2.1 JSP的优点 8
1.2.2 JSP与ASP和PHP的比较 8
1.2.3 为什么选择JSP 10
1.3 本章小结 10
第2章 所需工具安装和配置 11
2.1 安装和配置JDK 12
2.1.1 安装JDK 12
2.1.2 配置JDK环境变量 13
2.2 安装和配置Web服务器Tomcat 13
2.2.1 安装Tomcat服务器 14
2.2.2 启动和配置Tomcat服务器 15
2.2.3 测试Tomcat 17
2.3 安装和配置MySQL数据库 18
2.3.1 下载MySQL及其相关工具 18
2.3.2 安装MySQL数据库 19
2.3.3 管理MySQL数据库 21
2.4 安装Eclipse和Lomboz插件 22
2.4.1 安装Eclipse 22
2.4.2 安装Lomboz插件 23
2.5 安装Dreamweaver工具 24
2.6 本章小结 25
第3章 第一个Web应用——HelloWorld 27
3.1 构架JSP网站 28
3.1.1 设置Java的构建路径 28
3.1.2 Lomboz环境设置 28
3.1.3 创建一个J2EE项目 30
3.1.4 在Eclipse中启动Tomcat服务器 32
3.1.5 发布helloworld模块 32
3.1.6 在Tomcat中添加helloworld模块路径 34
3.2 建立动态网站 35
3.2.1 设置JDBC连接包 35
3.2.2 创建MySQL数据库和表 36
3.2.3 连接数据库 36
3.3 本章小结 38
第4章 JSP基本语法 39
4.1 JSP指令元素 40
4.1.1 容器处理JSP文件的3个阶段 40
4.1.2 page指令 40
4.1.3 include指令 45
4.1.4 taglib指令 47
4.2 JSP标准动作元素 48
4.2.1 JSP标准动作:内置标记 48
4.2.2 处理JavaBean的标准动作 49
4.2.3 〈jsp:include〉标准动作 53
4.2.4 〈jsp:forward〉标准动作 54
4.2.5 〈jsp:param〉标准动作 54
4.2.6 处理插件的标准动作 54
4.3 脚本元素 57
4.3.1 JSP表达式 57
4.3.2 JSP小脚本(scriptlet) 58
4.3.3 声明(declaration) 58
4.4 JSP注释 59
4.4.1 HTML中注释 59
4.4.2 JSP注释标记 59
4.4.3 在JSP脚本正文部分注释 59
4.4.4 综合使用实例 59
4.5 本章小结 60
第5章 JSP的内置对象 61
5.1 request内置对象 62
5.2 response内置对象 63
5.3 page内置对象 66
5.4 session内置对象 67
5.5 application内置对象 70
5.6 out内置对象 72
5.7 exception内置对象 73
5.8 config内置对象 73
5.9 pageContext内置对象 73
5.10 本章小结 75
第6章 用户登录应用实例 77
6.1 选择用户登录应用实例的原因 78
6.2 创建实例项目 78
6.3 实现用户登录应用 78
6.3.1 最终实现的效果 78
6.3.2 系统功能图 79
6.3.3 数据库设计 80
6.3.4 用户登录应用的实现 81
6.3.5 项目发布 86
6.4 本章小结 87
第7章 JavaBean实现用户登录应用 89
7.1 JavaBean环境配置 90
7.2 创建JavaBean 90
7.2.1 数据库操作DBConnect类 91
7.2.2 创建用户对象类User和SqlUser 95
7.2.3 用户对象操作类UserFactory和SqlUserFactory 97
7.2.4 创建工厂类Factory和SqlFactory 99
7.3 实现登录验证码 101
7.4 修改前台的JSP文件 102
7.5 使用数据库连接池技术 104
7.5.1 传统连接模式的不足以及连接池技术的优点 105
7.5.2 Tomcat连接池配置 106
7.5.3 实现连接池 107
7.6 本章小结 108
第8章 JSP开发中的常见问题 109
8.1 JSP程序的国际化以及本地化 110
8.1.1 日期的国际化 110
8.1.2 实现多国语言版本的JSP程序 111
8.2 中文乱码问题 115
8.2.1 字符集介绍 115
8.2.2 产生乱码的原因 116
8.2.3 解决方法 117
8.2.4 小结 118
8.3 本章小结 119
第二篇 JSP高级开发 123
第9章 自定义标签的开发 123
9.1 标签库的体系结构 124
9.1.1 自定义标签库的概念 124
9.1.2 自定义标签与JavaBean之间的区别 127
9.2 自定义标签的开发实例 127
9.2.1 简单格式的标签开发 127
9.2.2 定义带有属性的标签 130
9.2.3 自定义带有体的标签 132
9.2.4 标签体中嵌套其他子标签 135
9.3 JSP2.0新特性——简单标签处理类的开发 138
9.3.1 简单标签简介 138
9.3.2 简单标签实例 139
9.4 标签文件 140
9.5 本章小结 143
第10章 标准标签库JSTL 145
10.1 JSTL简介 146
10.2 JSTL的安装 147
10.3 核心标签库 149
10.3.1 表达式操作标签 149
10.3.2 流程控制标签 155
10.3.3 URL相关的标签 160
10.4 国际化(I18N)标签库 163
10.4.1 各国际化标签的介绍 164
10.4.2 综合实例 166
10.4.3 格式化日期、货币 168
10.5 XML标签库 171
10.5.1 XPath介绍 171
10.5.2 XML核心动作标签 173
10.5.3 XML的流程控制动作 177
10.5.4 XML的转换动作 181
10.6 函数(function)标签库 185
10.7 SQL标签库 186
10.8 本章小结 189
第11章 EL表达式语言 191
11.1 EL表达式语言简介 192
11.2 EL语法 193
11.2.1 在EL中可以包含的文字 193
11.2.2 操作符“[]”和“.” 194
11.2.3 EL中的基本算术操作符 194
11.2.4 EL中的关系操作符 197
11.2.5 逻辑操作符 201
11.2.6 empty操作符 202
11.2.7 其他操作符 202
11.3 EL中的隐含对象 203
11.4 EL中调用自定义函数 209
11.5 本章小结 210
第12章 使用Servlet 2.4过滤器和监听器 211
12.1 Servlet过滤器 212
12.1.1 过滤器的简介 212
12.1.2 Servlet过滤器的体系结构 213
12.1.3 实现一个Servlet过滤器 213
12.1.4 过滤器的应用 216
12.1.5 使过滤器适应MVC体系结构 216
12.2 Servlet事件监听器 217
12.2.1 Servlet上下文监听器实例 218
12.2.2 Http会话监听器实例 219
12.2.3 客户端请求监听器实例 222
12.3 本章小结 223
第13章 使用Struts控制器简化MVC开发 225
13.1 什么是框架 226
13.2 Model1和Model2模式比较 226
13.2.1 Model1模式 226
13.2.2 什么是MVC(Model2)开发模式 228
13.3 Struts的应用 229
13.3.1 Struts的体系结构 229
13.3.2 为什么使用Struts 231
13.3.3 Struts的安装和配置 232
13.3.4 使得Dreamweaver支持Struts标签 235
13.4 本章小结 236
第14章 Struts实现用户登录应用 237
14.1 Struts的实现 238
14.1.1 修改index.jsp页面 238
14.1.2 修改logon.jsp页面 240
14.1.3 创建LogonForm.java类 242
14.1.4 创建LogonAction.java类 244
14.1.5 创建LogoutAction.java类 246
14.1.6 构造Constants类 247
14.1.7 struts-config.xml文件配置 248
14.1.8 资源文件 251
14.2 Struts-config.xml配置文件 252
14.2.1 〈global-exceptions〉标记 252
14.2.2 〈form-beans〉标记 253
14.2.3 〈global-forward〉标记 253
14.2.4 〈action-mappings〉项 254
14.2.5 〈Controller〉标记 254
14.2.6 〈Message-Resources〉标签 255
14.2.7 〈plug-in〉标签 255
14.2.8 〈data-sources〉标签 255
14.2.9 同一模块中使用多个配置文件 256
14.3 Struts标签库 257
14.3.1 Bean标签库 257
14.3.2 逻辑标签Logic 260
14.3.3 HTML标签 263
14.4 使用DispatchAction类 269
14.5 本章小结 270
第15章 Hibernate持久层技术 271
15.1 概述 272
15.1.1 持久层技术 272
15.1.2 Hibernate简介 272
15.2 Hibernate的安装和配置 273
15.2.1 下载Hibernate 273
15.2.2 安装和配置Hibernate 274
15.3 Hibernate的实例讲解 276
15.3.1 创建HibernateUtil类 277
15.3.2 创建model.hbm.xml映射文件 278
15.3.3 创建HibernateTest类进行数据库操作 280
15.3.4 创建页面显示hibernateTest.jsp文件 281
15.3.5 总结 282
15.4 深入XML映射文件 283
15.4.1 继承映射 283
15.4.2 集合映射 286
15.4.3 实体映射 292
15.5 HQL语句 300
15.5.1 from子句 301
15.5.2 连接(joins)查询 301
15.5.3 select子句 301
15.5.4 统计函数 302
15.5.5 多态查询 302
15.5.6 where子句 302
15.5.7 表达式(Expressions) 302
15.5.8 order by子句 304
15.5.9 group by子句 304
15.5.10 子查询 305
15.6 本章小结 305
第16章 Struts+Hibernate实现用户登录应用 307
16.1 功能说明 308
16.1.1 实现的功能 308
16.1.2 文件的结构 308
16.2 实现功能 309
16.2.1 创建实体类 309
16.2.2 XML配置文件 311
16.2.3 创建数据库表 314
16.2.4 创建相应的操作类 315
16.2.5 创建Struts的Action和ActionForm类 319
16.2.6 创建页面JSP文件 321
16.2.7 运行此Web应用 324
16.3 Hibernate的自动生成工具 324
16.4 本章小结 325
第三篇 项目实践:网上购物系统第17章 动态网站项目实战 329
17.1 实例项目介绍 330
17.1.1 软件开发的基本过程 330
17.1.2 创建实例项目MyWebProject 331
17.1.3 项目开发环境 332
17.2 功能分析与设计 332
17.2.1 用户注册模块 333
17.2.2 购物车模块 333
17.2.3 图片管理模块 334
17.2.4 新闻管理模块 334
17.3 数据库分析与设计 335
17.3.1 商品表product 335
17.3.2 商品分类表board 336
17.3.3 新闻表news 336
17.3.4 新闻分类表newsboard 337
17.3.5 图片表pic 337
17.3.6 用户表userinfo 338
17.3.7 用户商品关系表shop 339
17.4 数据库连接 340
17.4.1 配置poolman.xml文件 340
17.4.2 创建数据库连接和操作类DBConnect.java 342
17.5 创建工厂类Factory和SqlFactory 345
17.5.1 Factory抽象类的创建 345
17.5.2 SqlFactory类的创建 346
17.6 CVS安装和配置 348
17.6.1 CVS服务器端的安装和配置 348
17.6.2 CVS客户端配置 350
17.7 本章小结 352
第18章 用户注册模块 353
18.1 注册功能的说明 354
18.1.1 需要创建的文件 354
18.1.2 创建文件之间的关系 355
18.2 创建前台JSP文件 356
18.2.1 注册页面zhuce.jsp 356
18.2.2 处理注册页面zhuceok.jsp 361
18.2.3 注册信息查询页面userinfo.jsp 363
18.2.4 修改用户注册信息页面edituser.jsp 364
18.2.5 处理用户注册信息修改页面edituserok.jsp 367
18.2.6 密码修改页面editpassword.jsp 369
18.2.7 处理密码修改页面editpasswordok.jsp 370
18.3 创建后台JSP文件 371
18.3.1 显示所有用户信息页面showalluser.jsp 371
18.3.2 删除用户信息页面deluser.jsp 372
18.4 创建相应的JavaBean类 373
18.4.1 获取参数封装类ParameterUtils.java 373
18.4.2 用户接口类User.java 375
18.4.3 用户实现类SqlUser.java类 376
18.4.4 用户操作抽象类UserFactory.java类 377
18.4.5 用户操作实现类SqlUserFactory.java类 377
18.4.6 Session管理类SessionManager.java 381
18.4.7 字符编码类MD5.java 383
18.5 本章小结 389
第19章 图片管理模块 391
19.1 图片管理模块的介绍 392
19.1.1 需要创建的文件 392
19.1.2 创建文件之间的逻辑关系 392
19.2 图片上传功能的实现 393
19.2.1 图片上传页面uploadpic.jsp 393
19.2.2 处理图片上传页面uploadpicok.jsp 399
19.3 图片管理功能的实现 402
19.3.1 图片统一管理页面picmanagement.jsp 402
19.3.2 图片信息修改页面editpic.jsp 410
19.3.3 处理图片信息修改页面editpicok.jsp 414
19.3.4 图片删除页面deletepic.jsp 416
19.4 图片选择功能实现 416
19.5 创建JavaBean类 423
19.5.1 图片接口类Pic.java 423
19.5.2 图片实现类SqlPic.java 424
19.5.3 图片操作抽象类PicFactory.java 424
19.5.4 图片操作实现类SqlPicFactory.java 425
19.6 本章小结 429
第20章 购物车模块 431
20.1 购物车模块的介绍 432
20.1.1 需要创建的文件 432
20.1.2 创建文件之间的关系 433
20.2 创建购物车前台JSP文件 434
20.2.1 展示商品的页面showProduct.jsp 434
20.2.2 购买商品的页面buyproduct.jsp 438
20.2.3 处理商品购买的页面buyproductok.jsp 441
20.2.4 显示用户购物车的页面shoppingcar.jsp 444
20.2.5 用户查看订单的页面myorder.jsp 444
20.3 创建后台JSP页面 447
20.3.1 添加商品分类的页面addboard.jsp 448
20.3.2 处理版块添加的页面addboardok.jsp 449
20.3.3 删除商品版块的页面delboard.jsp 450
20.3.4 发布新商品的页面addproductinfo.jsp 450
20.3.5 处理新商品发布的页面addproductinfook.jsp 454
20.3.6 查看订单的页面checkorderlist.jsp 455
20.3.7 处理订单的页面checkedorder.jsp 456
20.4 创建相关的JavaBean类 457
20.4.1 商品分类接口类Board.java 457
20.4.2 商品分类实现类SqlBoard.java 458
20.4.3 商品分类操作抽象类BoardFactory.java 458
20.4.4 商品分类操作实现类SqlBoardFactory.java 458
20.4.5 商品接口类Product.java 461
20.4.6 商品实现类SqlProduct.java 461
20.4.7 商品操作抽象类ProductFactory.java 462
20.4.8 商品操作实现类SqlProductFactory.java 462
20.4.9 购物接口类Shop.java 470
20.4.10 购物实现类SqlShop.java 470
20.4.11 购物操作抽象类ShopFactory.java 471
20.4.12 购物操作实现类SqlShopFactory.java 471
20.4.13 购物表单输出类ShopUtil.java 478
20.4.14 日期操作类GetDate.java 479
20.4.15 页面地址获取类Gethttpreferer.java 481
20.4.16 临时用户ID获取类GetUserID.java 482
20.5 本章小结 483
第21章 新闻发布模块 485
21.1 新闻发布模块的介绍 486
21.1.1 需要创建的文件 486
21.1.2 文件之间的逻辑关系 487
21.2 添加新闻分类版块的实现 488
21.2.1 添加信息版块的页面addnewsboard.jsp 488
21.2.2 处理新闻版块添加的页面addnewsboardok.jsp 491
21.3 新闻版块的管理 492
21.3.1 修改新闻版块的页面editnewsboard.jsp 492
21.3.2 处理新闻版块修改的页面editnewsboardok.jsp 493
21.3.3 删除新闻版块的页面delnewsboard.jsp 494
21.4 新闻发布功能的实现 495
21.4.1 新闻发布的页面publishnews.jsp 495
21.4.2 处理新闻发布的页面publishnewsok.jsp 499
21.4.3 文本编辑页面editpaper.jsp 502
21.4.4 文本编辑操作的JavaScript文件editpaper.js 508
21.4.5 图片新闻的发布页面publishphotonews.jsp 513
21.4.6 处理图片新闻发布的页面publishphotonewsok.jsp 517
21.5 新闻管理功能的实现 520
21.5.1 新闻管理页面newsmanagement.jsp 520
21.5.2 修改新闻头条和热点的页面changetophot.jsp 522
21.5.3 新闻移动的页面movenews.jsp 523
21.5.4 处理新闻移动的页面movenewsok.jsp 526
21.5.5 实现新闻重发的页面republishnews.jsp 527
21.5.6 删除新闻的页面delnews.jsp 528
21.6 创建新闻模板文件news.template 529
21.7 JavaBean类的创建 531
21.7.1 新闻版块抽象类NewsBoard.java 532
21.7.2 新闻版块实现类SqlNewsBoard.java 532
21.7.3 新闻版块操作抽象类NewsBoardFactory.java 533
21.7.4 新闻版块操作实现类SqlNewsBoardFactory.java 533
21.7.5 新闻接口类News.java 535
21.7.6 新闻实现类SqlNews.java 536
21.7.7 新闻操作抽象类NewsFactory.java 536
21.7.8 新闻操作实现类SqlNewsFactory.java 537
21.7.9 新闻模板读取类ReadTemplates.java 546
21.7.10 字符替代操作类ReplaceAll.java 547
21.7.11 新闻静态页面生成类WriteHtml.java 547
21.8 本章小结 548