第一篇 JSP基础知识 1
第1章 JSP技术概述 2
1.1Web开发技术 2
1.1.1Web开发技术的历史 2
1.1.2主流Web开发技术对比 3
1.1.3JSP技术的发展趋势 7
1.2JSP技术原理 8
1.3如何成为一名优秀的JSP开发人员 10
1.3.1基本技能 11
1.3.2高级技术 12
1.4小结 14
第2章 配置开发环境 16
2.1Tomcat的安装与配置 16
2.1.1Tomcat的安装 16
2.1.2Tomcat的配置与管理 18
2.2WebLogicServer的安装与配置 22
2.2.1安装BEAWebLogicServer 22
2.2.2配置开发域及服务器 25
2.2.3WebLogicServer的启动与停止 31
2.3.1MySQL简介 32
2.3MySQL数据库的安装与使用 32
2.3.2MySQL的安装与管理 33
2.3.3MySQL的常用操作 34
2.3.4MySQL的JDBC开发 36
2.4小结 37
第二篇 JSP核心技术 39
3.1.1什么是Servlet 40
3.1.2Servlet的技术特点 40
3.1Servlet介绍 40
第3章 Servlet技术 40
3.1.3Servlet的生命周期 41
3.1.4开发一个简单的Servlet 42
3.2Servlet编程接口 44
3.2.1Servlet类接口的分类 44
3.2.2与Servlet实现相关 44
3.2.3与Servlet配置相关 45
3.2.5与请求和响应相关 46
3.2.4与Servlet异常相关 46
3.2.6会话跟踪 47
3.2.7与Servlet上下文相关 48
3.2.8Servlet协作相关 49
3.2.9过滤 49
3.3使用HttpServlet处理客户端请求 50
3.4获得Servlet的初始化参数 53
3.5Servlet的配置 55
3.5.1实例介绍 55
3.5.3启动装入优先级 58
3.5.2Servlet的名字、类和初始化参数 58
3.5.4Servlet的映射 59
3.6Servlet之间的共享信息 59
3.7小结 60
第4章 JSP基本语法 61
4.1JSP的构成 61
4.1.1一个典型的JSP文件 61
4.1.2分析JSP文件中的元素 62
4.2指令元素 65
4.2.1页面指令 66
4.2.2include指令 67
4.2.3taglib指令 68
4.2.4表达式语言 69
4.3脚本元素 69
4.3.1声明(Declaration) 69
4.3.2表达式(Expression) 70
4.3.3Scriptlet 70
4.4动作元素 72
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.4.7
4.4.8
4.5小结 84
5.1内建对象介绍 85
第5章 JSP内建对象 85
5.2输入输出控制对象 86
5.2.1out对象 86
5.2.2request对象 88
5.2.3response对象 90
5.3作用域对象 91
5.3.1作用域对象简介 91
5.3.3pageContext对象 93
5.3.2page对象 93
5.3.4session对象 95
5.3.5application对象 97
5.4流转控制对象 99
5.5异常处理对象 99
5.6初始化参数对象 101
5.7小结 102
6.1.1JavaBean的组成 103
6.1JavaBean简介 103
第6章 使用JavaBean 103
6.1.2JavaBean的属性 104
6.2在JSP中使用JavaBean 107
6.2.1使用
6.2.2使用
6.3小结 116
7.1使用会话保持客户端状态 117
7.1.1会话的实现原理 117
第7章 保持客户端状态 117
7.1.2HttpSession接口 119
7.1.3会话与浏览器的关系 120
7.2使用session对象 120
7.2.1什么是session对象 120
7.2.2如何使用URL重写 122
7.2.3会话使用实例 123
7.3会话管理 129
7.4小结 130
8.1.1Servlet过滤器的基本原理 131
8.1Servlet过滤器 131
第8章 Servlet的高级开发 131
8.1.2Servlet过滤器开发实例 132
8.2Servlet事件监听 135
8.2.1对Servlet上下文进行监听 135
8.2.2监听Http会话 137
8.2.3对请求监听 140
8.3JSP与Servlet的结合使用 142
8.3.1模式一 142
8.3.2模式二 143
8.4小结 150
第三篇 常用组件 151
第9章 文件的上传和下载组件 152
9.1jspSmartUpload组件 152
9.1.1jspSmartUpload组件的安装与配置 152
9.1.2jspSmartUpload组件的主要对象 153
9.1.3jspSmartUpload组件实例分析 158
9.2FileUpload组件 165
9.2.1实例1(组件的基本用法) 166
9.2.2实例2(上传文件至服务器) 168
9.2.3实例3(对上传文件进行限制) 169
9.3小结 170
第10章 JFreeChart组件 171
10.1JFreeChart组件介绍 171
10.2使用JFreeChart绘制图表 173
10.2.1在JSP中绘制图表 174
10.2.2在Servlet中绘制图表 181
10.3小结 182
第11章 日志组件 183
11.1Log4j的配置与使用 183
11.1.1Log4j简介 183
11.1.2Loggers 184
11.1.3Appenders 185
11.1.4Layouts 186
11.1.5Logger组件的继承性 187
11.1.6使用Log4j 187
11.2使用Apache通用日志组件 189
11.2.1Apache通用日志包简介 190
11.2.2CommonsLogging使用实例 192
11.3小结 193
第四篇 标签与表达式 195
第12章 自定义标签的开发 196
12.1自定义标签库的体系结构 196
12.1.1什么是自定义标签库 196
12.2自定义标签开发实例 199
12.2.1自定义标签——Date 199
12.1.2使用自定义标签的好处 199
12.2.2定义有属性的标签——info 202
12.2.3定义带标签体的标签——loop 205
12.2.4嵌套的标签mapDefine、mapEntry 208
12.3JSP2.0的新特性——简单标签处理程序 211
12.3.1简单标签库简介 211
12.3.2简单标签处理程序的生命周期 212
12.3.3简单标签实例 212
12.3.4标签文件 214
12.4小结 215
第13章 JSTL 216
13.1JSTL简介 216
13.2核心标签库 218
13.2.1表达式操作标签库 218
13.2.2流程控制标签 225
13.3XML标签库 237
13.3.1XPath简介 237
13.3.2XML的核心动作标签 239
13.3.3XML的流程控制动作 245
13.4小结 248
第14章 表达式语言 249
14.1表达式语言简介 249
14.2表达式语言变量 250
14.3自动转变类型 252
14.4表达式语言中的隐含对象 253
14.4.1属性(Attribute)与范围(Scope) 254
14.4.2与输入有关的隐含对象 255
14.4.3其他隐含对象 257
14.5表达式语言的算术运算符 259
14.6EL关系运算符 262
14.7其他运算符 266
14.7.1Empty运算符 266
14.7.2条件运算符与括号运算符 267
14.8小结 267
第五篇 开发框架 269
第15章 Struts框架 270
15.1Struts框架的基本原理 270
15.2.1Struts初级实例 280
15.2Struts开发实例 280
15.2.2Struts中级实例 291
15.2.3Struts高级实例 302
15.3小结 315
第16章 Spring框架 316
16.1Spring框架简介 316
16.1.1Spring的特性 316
16.1.2Spring模块 317
16.2SpringMVC框架的基本原理 319
16.3.1SpringMVC实例——springappl 320
16.3SpringMVC框架开发实例 320
16.3.2SpringMVC综合实例——SpringApp 324
16.3小结 329
第六篇 开发实践 331
第17章 数据库应用开发 332
17.1JDBC编程接口 332
17.1.1JDBC简介 332
17.1.3JDBC驱动程序 333
17.1.2JDBC的工作方式 333
17.1.4JDBC的主要对象 335
17.1.5JDBC开发的基本步骤 338
17.1.6执行SQL语句 339
17.1.7处理结果集 341
17.1.8关闭连接 341
17.2使用数据库连接池 342
17.2.1连接池的工作原理 342
17.2.2配置连接池 343
17.2.3使用数据源获得连接 350
17.2.4使用连接池的Web应用实例 351
17.3数据分页显示 354
17.4小结 362
第18章 Web安全性 363
18.1为Web资源设置安全约束 363
18.1.1定义
18.1.2在web.xml中定义
18.1.3在web.xml中定义
18.2Tomcat下的安全域 366
18.3WebLogicServer下的安全域 368
18.4JSP应用安全性漏洞及对策 370
18.4.1跨站脚本(cross-sitescripting) 370
18.4.2HTML注射 372
18.4.3SQL注射 373
18.4.4使用JavaBean带来的问题 374
18.5小结 375
19.1.1功能测试 376
19.1Web系统测试的基本理论 376
第19章 Web系统测试 376
19.1.2性能测试 377
19.1.3单元测试 378
19.1.4其他测试 379
19.1.5常用的测试工具 379
19.2使用JUnit进行单元测试 381
19.3使用JMeter测试性能 384
19.3.1JMeter的特性 384
19.3.2JMeter的安装与配置 385
19.3.3建立测试计划(TestPlan) 386
19.3.4开始执行测试计划 389
19.3.5数据库性能测试 389
19.3.6JNEstore的性能测试 390
19.4小结 394
第20章 JSP性能优化 395
20.1JSP性能优化 395
20.1.1使用jspInit()方法 395
20.1.2优化输出操作 397
20.1.3控制session对象 398
20.1.5采用forward()方法重定向 399
20.1.4在useBean动作中使用合适的范围 399
20.1.6选择正确的包含方式 400
20.2使用缓存工具 400
20.2.1OSCache的安装与配置 401
20.2.2使用OSCache缓存 401
20.3小结 404
第七篇 综合实例 405
21.1业务背景介绍 406
第21章 需求分析及技术方案 406
21.2需求分析 407
21.3架构设计 408
21.4JNEstore的功能演示 410
21.5小结 412
第22章 基于Struts的Web层开发 413
22.1定义JNEstore的配置文件 413
22.2建立应用程序初始页面 415
22.3建立显示图书的功能模块 417
22.4建立用户登录功能模块 421
22.5建立新用户注册功能模块 424
22.6建立购物车管理功能模块 428
22.7建立订单处理功能模块 431
22.8建立退出应用程序功能模块 433
22.9建立图书查找功能模块 433
22.10应用程序国际化 435
22.11小结 436
23.1.1Java持久层常用技术对比分析 437
第23章 业务层开发 437
23.1JNEstore的持久层解决23.1方案 437
23.1.2JNEstore的持久层解决方案 439
23.2使用Hibernate实现持久化 440
23.2.1Hibernate简介 441
23.2.2Hibernate开发的基本技术 441
23.2.3Hibernate开发的高级技术 472
23.2.4实现JNEstore的持久层 475
23.3小结 489