第1章 Java开发入门 1
1.1 Java概述 1
1.2 JDK的使用 2
1.2.1 JDK的安装 2
1.2.2 JDK的目录介绍 2
1.3 环境变量 4
1.3.1 path环境变量 4
1.3.2 classpath环境变量 5
1.4 第一个Java程序 6
1.4.1 编写第一个Java程序 6
1.4.2 Java程序的运行机制 7
1.5 Eclipse的安装与使用 7
1.5.1 Eclipse的安装与启动 8
1.5.2 Eclipse进行程序开发 9
第2章 Java编程基础 14
2.1 Java的基本语法 14
2.1.1 Java代码的基本格式 14
2.1.2 Java中的注释 14
2.1.3 Java中的标识符 15
2.1.4 Java中的关键字 15
2.2 Java中的变量 16
2.2.1 变量的定义 16
2.2.2 变量的数据类型 16
2.2.3 变量的类型转换 17
2.2.4 变量的作用域 19
2.3 Java中的常量 19
2.4 Java中的运算符 20
2.4.1 算术运算符 20
2.4.2 赋值运算符 21
2.4.3 比较运算符 22
2.4.4 逻辑运算符 22
2.4.5 运算符的优先级 24
2.5 选择结构语句 24
2.5.1 if条件语句 24
2.5.2 switch条件语句 27
2.6 循环结构语句 29
2.6.1 while循环语句 29
2.6.2 do...while循环语句 30
2.6.3 for循环语句 31
2.6.4 循环嵌套 32
2.6.5 跳转语句 33
2.7 方法 34
2.7.1 方法的概念 34
2.7.2 方法的重载 35
2.8 数组 37
2.8.1 数组的定义 37
2.8.2 数组的常见操作 38
2.8.3 Arrays工具类 41
2.9 String类和StringBuffer类 42
2.9.1 String类 42
2.9.2 StringBuffer类 44
2.10 包装类 46
第3章 面向对象 47
3.1 面向对象的概念和特征 47
3.2 类与对象 47
3.2.1 类与对象的关系 47
3.2.2 类的定义 48
3.2.3 对象的创建 48
3.2.4 类的封装 49
3.3 构造方法 51
3.3.1 构造方法的定义 51
3.3.2 构造方法的重载 53
3.4 this关键字 54
3.5 static关键字 56
3.5.1 静态变量 56
3.5.2 静态方法 57
3.5.3 静态代码块 58
3.6 类的继承 59
3.6.1 继承的概念 59
3.6.2 重写父类方法 59
3.6.3 super关键字 61
3.7 抽象类和接口 63
3.7.1 抽象类 63
3.7.2 接口 65
3.8 多态 67
3.8.1 多态概述 67
3.8.2 对象的类型转换 69
3.8.3 匿名内部类 71
3.9 异常 72
3.9.1 异常的概念 72
3.9.2 常见的异常类 73
3.9.3 try...catch和finally 74
3.9.4 throws关键字 75
3.10 访问控制 77
第4章 集合类 78
4.1 初识集合 78
4.1.1 集合概述 78
4.1.2 Collection接口简介 79
4.2 List接口 79
4.2.1 List接口简介 79
4.2.2 ArrayList集合 80
4.2.3 Iterator接口 81
4.2.4 foreach循环 82
4.2.5 泛型 83
4.3 Set接口 84
4.3.1 Set接口简介 84
4.3.2 HashSet集合 84
4.4 Map接口 85
4.4.1 Map接口简介 85
4.4.2 HashMap集合 86
4.4.3 Properties集合 87
第5章 输入/输出 89
5.1 I/O流概述 89
5.2 字节流 89
5.2.1 字节流的概念 89
5.2.2 字节流的读/写操作 91
5.2.3 文件的复制 93
5.2.4 字节流的缓冲区 94
5.2.5 字节缓冲流 95
5.3 字符流 96
5.3.1 字符流的概念 96
5.3.2 字符流的读/写操作 97
5.3.3 字符缓冲流 98
5.3.4 转换流 99
5.4 File类 100
5.4.1 File类的常用方法 100
5.4.2 遍历目录下的文件 101
5.4.3 删除文件及目录 102
第6章 多线程 103
6.1 线程概述 103
6.2 线程的创建 103
6.2.1 继承Thread类 103
6.2.2 实现Runnable接口 105
6.2.3 Thread类和Runnable接口对比分析 106
6.3 线程的状态和转换 109
6.4 多线程同步 110
6.4.1 线程安全 110
6.4.2 同步代码块 112
6.4.3 同步方法 113
第7章 网页开发基础 115
7.1 HTML技术 115
7.1.1 HTML简介 115
7.1.2 单标记和双标记 117
7.1.3 文本控制与文本样式标记 117
7.1.4 图像标记 118
7.1.5 表格标记 119
7.1.6 表单标记 121
7.1.7 列表标记和超链接标记 124
7.1.8 <div>标记 126
7.2 CSS技术 127
7.2.1 CSS简介 127
7.2.2 CSS样式的引用方式 127
7.2.3 CSS选择器和常用属性 130
7.3 JavaScript基础 133
7.3.1 DOM相关知识 133
7.3.2 JavaScript概述 134
7.3.3 JavaScript的使用 139
第8章 Java Web概述 142
8.1 Web开发的相关知识 142
8.1.1 C/S与B/S体系结构 142
8.1.2 Web资源 143
8.2 XML基础 144
8.2.1 XML概述 144
8.2.2 XML语法 145
8.2.3 DTD约束 146
8.2.4 Schema约束 149
8.3 HTTP 152
8.3.1 HTTP概述 152
8.3.2 HTTP请求消息 153
8.3.3 HTTP响应消息 156
8.4 Tomcat 158
8.4.1 Tomcat简介 158
8.4.2 Tomcat的安装和启动 158
8.4.3 Tomcat中的Web应用 159
8.4.4 在Eclipse中配置Tomcat 161
第9章 Servlet基础 165
9.1 Servlet概述 165
9.2 Servlet开发入门 166
9.2.1 Servlet接口及其实现类 166
9.2.2 实现第一个Servlet程序 167
9.2.3 Servlet的生命周期 172
9.3 Servlet虚拟路径映射的配置 173
9.3.1 Servlet的多重映射 173
9.3.2 Servlet映射路径中使用通配符 174
9.3.3 默认Servlet 175
9.4 ServletConfig和ServletContext 176
9.4.1 ServletConfig接口 176
9.4.2 ServletContext接口 178
第10章 请求和响应 182
10.1 请求和响应概述 182
10.2 HttpServletRequest对象 183
10.2.1 获取请求行信息的相关方法 183
10.2.2 获取请求消息头的相关方法 185
10.3 HttpServletRequest应用 186
10.3.1 获取请求参数 186
10.3.2 通过Request对象传递数据 189
10.3.3 解决请求参数的中文乱码问题 190
10.4 RequestDispatcher对象的应用 191
10.4.1 RequestDispatcher接口 191
10.4.2 请求转发 191
10.5 HttpServletResponse对象 193
10.5.1 发送状态码相关的方法 193
10.5.2 发送响应消息头相关的方法 194
10.5.3 发送响应消息体相关的方法 195
10.6 HttpServletResponse应用 195
10.6.1 解决中文输出乱码问题 195
10.6.2 实现请求重定向 197
第11章 JSP技术 201
11.1 JSP概述 201
11.1.1 JSP 201
11.1.2 第一个JSP文件的创建 201
11.1.3 JSP运行原理 203
11.2 JSP的脚本元素和注释 204
11.2.1 JSP脚本元素 204
11.2.2 JSP注释 206
11.3 JSP指令 207
11.3.1 page指令 207
11.3.2 include指令 208
11.4 JSP隐式对象 209
11.4.1 隐式对象的概述 209
11.4.2 out对象 210
11.4.3 pageContext对象 211
11.4.4 exception对象 213
11.5 JSP动作元素 215
11.5.1 <jsp:include>动作元素 215
11.5.2 <jsp:forward>动作元素 215
11.6 JSP开发模型 217
11.6.1 JavaBean 217
11.6.2 JSP设计模式 218
第12章 Cookie和Session 221
12.1 Cookie对象 221
12.1.1 Cookie 221
12.1.2 Cookie API 222
12.1.3 显示用户上次访问的时间 223
12.2 Session对象 225
12.2.1 Session 225
12.2.2 HttpSession API 226
12.2.3 Session超时管理 227
12.2.4 实现用户登录 228
第13章 EL表达式和JSTL 238
13.1 EL表达式 238
13.1.1 EL概述 238
13.1.2 EL中的标识符 238
13.1.3 EL中的保留字 239
13.1.4 EL中的变量 239
13.1.5 EL中的常量 239
13.1.6 EL中的运算符 240
13.1.7 EL隐式对象 243
13.2 JSTL 248
13.2.1 JSTL 248
13.2.2 JSTL的配置和测试 249
13.2.3 JSTL中的Core标签库 250
第14章 Servlet高级 257
14.1 Filter 257
14.1.1 Filter概述 257
14.1.2 实现第一个Filter程序 258
14.1.3 Filter映射 261
14.1.4 Filter链 264
14.1.5 FilterConfig接口 267
14.1.6 统一全站编码 269
14.2 Listener 273
14.2.1 Servlet事件监听器概述 273
14.2.2 统计当前在线人数 274
第15章 jQuery框架 278
15.1 jQuery概述 278
15.1.1 jQuery 278
15.1.2 jQuery的下载与使用 278
15.2 jQuery选择器 280
15.2.1 基本选择器 280
15.2.2 层次选择器 282
15.2.3 过滤选择器 284
15.2.4 表单选择器 293
15.3 jQuery的事件处理 296
15.3.1 常用事件 296
15.3.2 页面加载事件 296
15.3.3 事件绑定与切换 297
15.4 jQuery的Ajax操作 299
15.4.1 Ajax概述 299
15.4.2 jQuery的Ajax操作 300
第16章 MySQL和JDBC 306
16.1 数据库基础知识 306
16.1.1 数据库概述 306
16.1.2 MySQL的安装与配置 306
16.1.3 MySQL的图形化工具 307
16.2 MySQL的基本使用 309
16.2.1 数据库的基本操作 309
16.2.2 表的基本操作 310
16.2.3 数据的基本操作 313
16.2.4 单表查询 314
16.3 MySQL的多表操作 320
16.3.1 外键约束 320
16.3.2 内连接 322
16.3.3 外连接 323
16.3.4 子查询 324
16.4 JDBC技术简介 326
16.5 JDBC常用API 327
16.5.1 Driver接口 327
16.5.2 DriverManager类 327
16.5.3 Connection接口 327
16.5.4 Statement接口 327
16.5.5 PreparedStatement接口 328
16.5.6 ResultSet接口 329
16.6 实现第一个JDBC程序 329
16.7 数据库连接池 334
16.7.1 数据库连接池 334
16.7.2 DataSource接口 334
16.7.3 C3P0数据源 335
第17章 Struts2框架入门 338
17.1 Struts2简介 338
17.1.1 Struts2概述 338
17.1.2 Struts2的下载 339
17.1.3 Struts2的使用 339
17.2 Struts2入门 340
17.2.1 第一个Struts2程序 340
17.2.2 Struts2的执行流程分析 345
第18章 Struts2的核心配置 348
18.1 struts.xml文件的配置 348
18.1.1 struts.xml文件 348
18.1.2 常量配置 349
18.1.3 包配置 350
18.1.4 包含配置 350
18.2 Action的配置 351
18.2.1 实现Action控制类 351
18.2.2 配置Action 352
18.2.3 使用通配符 353
18.3 Action访问Servlet API 354
18.3.1 通过ActionContext访问 354
18.3.2 通过ServletActionContext访问 358
18.4 Action处理请求参数 360
18.4.1 属性驱动 360
18.4.2 模型驱动 364
18.5 Result结果类型 365
18.5.1 配置Result 365
18.5.2 预定义的结果类型 366
18.5.3 dispatcher结果类型 367
18.5.4 redirect结果类型 368
第19章 Struts2的拦截器 370
19.1 拦截器简介 370
19.1.1 拦截器概述 370
19.1.2 拦截器的配置 371
19.2 Struts2的内建拦截器 373
19.2.1 内建拦截器的介绍 373
19.2.2 内建拦截器的配置 375
19.3 自定义拦截器 376
19.3.1 实现自定义拦截器 376
19.3.2 使用拦截器实现权限控制 377
第20章 Struts2的标签库 385
20.1 Struts2标签库概述 385
20.1.1 Struts2标签库的分类 385
20.1.2 Struts2标签的使用 386
20.2 Struts2的控制标签 386
20.2.1 <s:if>、<s:elseif>、<s:else>标签 386
20.2.2 <s:iterator>标签 386
20.3 Struts2的数据标签 389
20.3.1 <s:property>标签 389
20.3.2 <s:a>标签 390
20.3.3 <s:debug>标签 390
20.3.4 <s:include>标签 390
20.3.5 <s:param> 392
20.4 Struts2的模板和主题 392
20.5 Struts2的表单标签 393
20.5.1 表单标签的公共属性 393
20.5.2 <s:form>标签 394
20.5.3 <s:textfield>和<s:textarea>标签 394
20.5.4 <s:password>标签 394
20.5.5 <s:radio>标签 395
20.5.6 <s:reset>标签 395
20.5.7 <s:submit>标签 396
20.5.8 <s:checkboxlist>标签 397
20.5.9 <s:select>标签 398
20.5.10 <s:optgroup>标签 399
20.5.11 <s:file>标签 400
20.5.12 <s:hidden>标签 400
20.6 Struts2的非表单标签 401
第21章 Struts2的OGNL和值栈 403
21.1 OGNL 403
21.1.1 OGNL概述 403
21.1.2 OGNL表达式 404
21.1.3 使用OGNL访问对象方法和静态方法 408
21.2 值栈 412
21.2.1 值栈的意义 412
21.2.2 值栈的内部结构 413
21.2.3 值栈在开发中的应用 415
21.2.4 通过EL访问值栈的数据 420
第22章 Struts2的文件上传和下载 421
22.1 文件上传 421
22.1.1 文件上传的概述 421
22.1.2 单个文件上传 423
22.1.3 限制文件的大小和类型 426
22.2 文件下载 428
22.2.1 文件下载的概述 428
22.2.2 文件下载 429
22.2.3 中文文件的下载 431
第23章 Hibernate框架入门 435
23.1 Hibernate概述 435
23.2 Hibernate下载和目录介绍 435
23.3 第一个Hibernate程序 437
23.3.1 编写Hibernate程序 437
23.3.2 测试Hibernate程序 441
23.4 Hibernate的运行机制 447
23.5 Hibernate的核心文件 448
23.5.1 *.hbm.xml映射文件 448
23.5.2 hibernate.cfg.xml配置文件 452
23.6 Hibernate的核心API 454
23.6.1 Configuration 454
23.6.2 SessionFactory 454
23.6.3 Session 455
23.6.4 Transaction 456
23.6.5 Query 457
23.6.6 Criteria 459
第24章 Hibernate的持久化对象状态和一级缓存 462
24.1 Hibernate持久化对象的状态 462
24.1.1 持久化对象的状态及状态转换 462
24.1.2 演示持久化对象的状态转换 463
24.2 Hibernate的一级缓存 467
24.2.1 一级缓存 467
24.2.2 Hibernate的快照技术 469
24.2.3 一级缓存常用操作 470
第25章 Hibernate的关联关系映射 474
25.1 关联关系映射 474
25.1.1 三种关联关系 474
25.1.2 一对多关联关系映射 475
25.1.3 多对多关联关系映射 481
25.2 关联关系中的反转与级联 485
25.2.1 反转操作 485
25.2.2 级联操作 487
第26章 Hibernate的检索方式 493
26.1 Hibernate检索方式的概述 493
26.1.1 导航对象图检索方式 493
26.1.2 OID检索方式 493
26.1.3 HQL检索方式 493
26.1.4 QBC检索方式 494
26.1.5 本地SQL检索方式 495
26.2 HQL检索 495
26.2.1 指定别名 495
26.2.2 投影查询 496
26.2.3 动态实例查询 497
26.2.4 条件查询 498
26.2.5 分页查询 501
26.3 QBC检索 502
26.3.1 组合查询 502
26.3.2 分页查询 504
第27章 Hibernate的事务处理和二级缓存 506
27.1 事务 506
27.1.1 事务的特性 506
27.1.2 事务的隔离级别 506
27.2 Hibernate的事务处理 507
27.2.1 事务的配置 507
27.2.2 悲观锁 508
27.2.3 乐观锁 514
27.3 Hibernate的二级缓存 516
27.3.1 二级缓存的原理和分类 516
27.3.2 二级缓存的并发访问策略 517
27.3.3 二级缓存的常用插件 518
27.3.4 二级缓存的配置和使用 518
第28章 Spring框架入门 522
28.1 Spring基本知识 522
28.1.1 Spring框架概述 522
28.1.2 Spring的体系结构 523
28.1.3 Spring的下载及目录结构 524
28.2 Spring的IoC容器 526
28.2.1 BeanFactory 526
28.2.2 ApplicationContext 526
28.3 编写第一个Spring程序 527
28.4 依赖注入 530
第29章 Spring中的Bean 533
29.1 Bean的配置 533
29.2 Bean的实例化 534
29.2.1 构造器实例化 534
29.2.2 静态工厂方式实例化 536
29.2.3 实例工厂方式实例化 538
29.3 Bean的作用域 540
29.3.1 作用域的种类 540
29.3.2 singleton作用域 540
29.3.3 prototype作用域 541
29.4 Bean的生命周期 542
29.5 Bean的装配方式 543
29.5.1 基于XML的装配 543
29.5.2 基于Annotation的装配 546
29.5.3 自动装配 550
第30章 面向切面编程(Spring AOP) 552
30.1 Spring AOP概述 552
30.2 手动代理 552
30.2.1 JDK动态代理 553
30.2.2 CGLIB代理 556
30.3 声明式工厂Bean 559
30.3.1 Spring通知类型 559
30.3.2 声明式Spring AOP 559
30.4 AspectJ 562
30.4.1 基于XML的声明式 562
30.4.2 基于Annotation的声明式 566
第31章 Spring事务管理 571
31.1 Spring JDBCTemplate 571
31.2 Spring事务管理的三个核心接口 573
31.3 Spring声明式事务管理 574
31.3.1 基于XML方式 574
31.3.2 基于Annotation方式 580
第32章 SSH框架整合 584
32.1 准备整合环境 584
32.1.1 数据库环境 584
32.1.2 配置Struts2环境 584
32.1.3 配置Spring环境 586
32.1.4 配置Hibernate环境 588
32.2 Spring与Hibernate整合 590
32.3 Spring与Struts2整合 594
32.4 测试框架分层的整合 597
32.5 验证事务是否生效 600
32.5.1 测试事务只读方法 600
32.5.2 测试事务回滚 602
第33章 学生信息管理系统 603
33.1 系统概述 603
33.1.1 系统的功能模块 603
33.1.2 系统架构设计 604
33.2 数据库设计 605
33.3 系统环境搭建 611
33.4 员工登录模块 618
33.4.1 系统登录 618
33.4.2 实现登录拦截 628
33.4.3 注销用户 630
33.5 人力资源部模块 630
33.5.1 部门管理 631
33.5.2 职务管理 639
33.5.3 员工管理 649
33.6 教学部模块 656
33.6.1 课程类别 656
33.6.2 班级管理 664