Spring 攻略(英文版)
目录回到顶部↑
第一部分 核心概念.
第1章 控制反转和容器 2
1.1 使用容器管理组件 2
1.1.1 问题描述 2
1.1.2 解决方案 2
1.1.3 实现方法 3
1.2 使用服务定位器降低查找组件的复杂性 7
1.2.1 问题描述 7
1.2.2 解决方案 7
1.2.3 实现方法 7
1.3 应用控制反转和依赖注入 8
1.3.1 问题描述 8
1.3.2 解决方案 8
1.3.3 实现方法 9
1.4 理解不同类型的依赖注入 10
1.4.1 问题描述 10
1.4.2 解决方案 10
1.4.3 实现方法 11
1.5 使用配置文件配置容器 13
1.5.1 问题描述 13
.1.5.2 解决方案 14
1.5.3 实现方法 14
1.6 小结 16
第2章 spring简介 17
2.1 spring framework 17
2.1.1 spring的模块介绍 17
2.1.2 spring的发布版本 19
2.1.3 spring的项目 20
2.2 安装spring framework 21
2.2.1 问题描述 21
2.2.2 解决方案 21
2.2.3 实现方法 21
2.3 建立spring项目 22
2.3.1 问题描述 22
2.3.2 解决方案 22
2.3.3 实现方法 23
2.4 安装spring ide 24
2.4.1 问题描述 24
2.4.2 解决方案 24
2.4.3 实现方法 24
2.5 使用spring ide的bean-supporting特性 26
2.5.1 问题描述 26
2.5.2 解决方案 26
2.5.3 实现方法 26
2.6 小结 31
第3章 spring中的bean配置 32
3.1 在spring ioc容器里配置bean 32
3.1.1 问题描述 32
3.1.2 解决方案 32
3.1.3 实现方法 32
3.2 实例化spring ioc容器 36
3.2.1 问题描述 36
3.2.2 解决方案 36
3.2.3 实现方法 36
3.3 解决构造器歧义 38
3.3.1 问题描述 38
3.3.2 解决方案 38
3.3.3 实现方法 38
3.4 指定bean引用 41
3.4.1 问题描述 41
3.4.2 解决方案 41
3.4.3 实现方法 41
3.5 通过依赖检查来检查属性 44
3.5.1 问题描述 44
3.5.2 解决方案 45
3.5.3 实现方法 45
3.6 通过@required注解检查属性 46
3.6.1 问题描述 46
3.6.2 解决方案 46
3.6.3 实现方法 47
3.7 xml配置里的bean自动装配 48
3.7.1 问题描述 48
3.7.2 解决方案 49
3.7.3 实现方法 49
3.8 使用@autowired和@resource自动装配bean 52
3.8.1 问题描述 52
3.8.2 解决方案 52
3.8.3 实现方法 52
3.9 继承bean配置 58
3.9.1 问题描述 58
3.9.2 解决方案 58
3.9.3 实现方法 58
3.10 为bean属性定义集合 61
3.10.1 问题描述 61
3.10.2 解决方案 61
3.10.3 实现方法 61
3.11 为集合元素指定数据类型 67
3.11.1 问题描述 67
3.11.2 解决方案 67
3.11.3 实现方法 67
3.12 使用工厂bean和utility schema定义集合 69
3.12.1 问题描述 69
3.12.2 解决方案 69
3.12.3 实现方法 69
3.13 在classpath中扫描组件 71
3.13.1 问题描述 71
3.13.2 解决方案 71
3.13.3 实现方法 72
3.14 小结 76
第4章 高级spring ioc容器 77
4.1 通过调用构造器创建bean 77
4.1.1 问题描述 77
4.1.2 解决方案 77
4.1.3 实现方法 77
4.2 通过调用静态工厂方法创建bean 80
4.2.1 问题描述 80
4.2.2 解决方案 80
4.2.3 实现方法 80
4.3 通过调用实例工厂方法创建bean 81
4.3.1 问题描述 81
4.3.2 解决方案 81
4.3.3 实现方法 81
4.4 使用spring的工厂bean创建bean 83
4.4.1 问题描述 83
4.4.2 解决方案 83
4.4.3 实现方法 83
4.5 根据静态字段声明bean 85
4.5.1 问题描述 85
4.5.2 解决方案 85
4.5.3 实现方法 85
4.6 根据对象属性声明bean 86
4.6.1 问题描述 86
4.6.2 解决方案 86
4.6.3 实现方法 86
4.7 设置bean的作用域 88
4.7.1 问题描述 88
4.7.2 解决方案 88
4.7.3 实现方法 88
4.8 定制bean的初始化和销毁过程 90
4.8.1 问题描述 90
4.8.2 解决方案 90
4.8.3 实现方法 91
4.9 使bean感知容器 95
4.9.1 问题描述 95
4.9.2 解决方案 95
4.9.3 实现方法 96
4.10 创建bean后置处理器 96
4.10.1 问题描述 96
4.10.2 解决方案 96
4.10.3 实现方法 97
4.11 外部化bean配置 100
4.11.1 问题描述 100
4.11.2 解决方案 100
4.11.3 实现方法 100
4.12 解析文本信息 101
4.12.1 问题描述 101
4.12.2 解决方案 101
4.12.3 实现方法 101
4.13 使用应用程序事件进行通信 103
4.13.1 问题描述 103
4.13.2 解决方案 103
4.13.3 实现方法 104
4.14 在spring里注册属性编辑器 106
4.14.1 问题描述 106
4.14.2 解决方案 106
4.14.3 实现方法 106
4.15 创建定制的属性编辑器 108
4.15.1 问题描述 108
4.15.2 解决方案 109
4.15.3 实现方法 109
4.16 加载外部资源 110
4.16.1 问题描述 110
4.16.2 解决方案 110
4.16.3 实现方法 111
4.17 小结 113
第5章 动态代理和经典的spring aop 114
5.1 非模块化的横切关注点所带来的问题 115
5.1.1 追踪方法 116
5.1.2 验证参数 119
5.1.3 找出问题 120
5.2 使用动态代理模块化横切关注点 122
5.2.1 问题描述 122
5.2.2 解决方案 122
5.2.3 实现方法 122
5.3 使用经典的spring通知来模块化横切关注点 127
5.3.1 问题描述 127
5.3.2 解决方案 127
5.3.3 实现方法 128
5.4 使用经典的spring切入点匹配方法 135
5.4.1 问题描述 135
5.4.2 解决方案 135
5.4.3 实现方法 136
5.5 为bean自动创建代理 138
5.5.1 问题描述 138
5.5.2 解决方案 138
5.5.3 实现方法 138
5.6 小结 140
第6章 spring 2.x aop和aspectj支持 141
6.1 在spring中启用aspectj注解支持 141
6.1.1 问题描述 141
6.1.2 解决方案 142
6.1.3 实现方法 142
6.2 用aspectj注解声明切面 144
6.2.1 问题描述 144
6.2.2 解决方案 144
6.2.3 实现方法 144
6.3 访问连接点信息 149
6.3.1 问题描述 149
6.3.2 解决方案 149
6.3.3 实现方法 149
6.4 指定切面优先级 150
6.4.1 问题描述 150
6.4.2 解决方案 150
6.4.3 实现方法 150
6.5 重用切入点定义 152
6.5.1 问题描述 152
6.5.2 解决方案 152
6.5.3 实现方法 152
6.6 编写aspectj切入点表达式 154
6.6.1 问题描述 154
6.6.2 解决方案 154
6.6.3 实现方法 154
6.7 为bean引入行为 158
6.7.1 问题描述 158
6.7.2 解决方案 158
6.7.3 实现方法 158
6.8 为bean引入状态 161
6.8.1 问题描述 161
6.8.2 解决方案 161
6.8.3 实现方法 161
6.9 用基于xml的配置声明切面 163
6.9.1 问题描述 163
6.9.2 解决方案 163
6.9.3 实现方法 163
6.10 加载时在spring中织入aspectj切面 165
6.10.1 问题描述 165
6.10.2 解决方案 166
6.10.3 实现方法 166
6.11 在spring中配置aspectj切面 170
6.11.1 问题描述 170
6.11.2 解决方案 170
6.11.3 实现方法 170
6.12 将spring bean注入到领域对象中 171
6.12.1 问题描述 171
6.12.2 解决方案 171
6.12.3 实现方法 171
6.13 小结 174
第二部分 基础主题
第7章 spring对jdbc的支持 178
7.1 直接使用jdbc的问题 178
7.1.1 建立应用程序数据库 179
7.1.2 理解dao设计模式 180
7.1.3 用jdbc实现dao 180
7.1.4 在spring中配置数据源 182
7.1.5 运行dao 183
7.2 用jdbc模板更新数据库 184
7.2.1 问题描述 184
7.2.2 解决方案 184
7.2.3 实现方法 184
7.3 用jdbc模板查询数据库 188
7.3.1 问题描述 188
7.3.2 解决方案 189
7.3.3 实现方法 189
7.4 简化jdbc模板的创建 193
7.4.1 问题描述 193
7.4.2 解决方案 193
7.4.3 实现方法 194
7.5 在java 1.5中使用简单的jdbc模板 196
7.5.1 问题描述 196
7.5.2 解决方案 196
7.5.3 实现方法 196
7.6 在jdbc模板中使用具名参数 199
7.6.1 问题描述 199
7.6.2 解决方案 199
7.6.3 实现方法 199
7.7 将jdbc操作建模为细粒度的对象 201
7.7.1 问题描述 201
7.7.2 解决方案 201
7.7.3 实现方法 201
7.8 在spring jdbc框架中处理异常 205
7.8.1 问题描述 205
7.8.2 解决方案 205
7.8.3 实现方法 205
7.9 小结 209
第8章 spring中的事务管理 211
8.1 事务管理的问题 211
8.2 选择事务管理器实现 216
8.2.1 问题描述 216
8.2.2 解决方案 217
8.2.3 实现方法 217
8.3 用事务管理器api编程式地管理事务 218
8.3.1 问题描述 218
8.3.2 解决方案 218
8.3.3 实现方法 218
8.4 用事务模板编程式地管理事务 219
8.4.1 问题描述 219
8.4.2 解决方案 220
8.4.3 实现方法 220
8.5 用经典的spring aop声明式地管理事务 222
8.5.1 问题描述 222
8.5.2 解决方案 222
8.5.3 实现方法 222
8.6 用事务通知声明式地管理事务 224
8.6.1 问题描述 224
8.6.2 解决方案 224
8.6.3 实现方法 225
8.7 用@transactional注解声明式地管理事务 226
8.7.1 问题描述 226
8.7.2 解决方案 226
8.7.3 实现方法 226
8.8 设置传播事务属性 227
8.8.1 问题描述 227
8.8.2 解决方案 227
8.8.3 实现方法 228
8.9 设置隔离事务属性 231
8.9.1 问题描述 231
8.9.2 解决方案 231
8.9.3 实现方法 232
8.10 设置回滚事务属性 238
8.10.1 问题描述 238
8.10.2 解决方案 238
8.10.3 实现方法 238
8.11 设置超时和只读事务属性 239
8.11.1 问题描述 239
8.11.2 解决方案 239
8.11.3 实现方法 239
8.12 用加载时织入来管理事务 240
8.12.1 问题描述 240
8.12.2 解决方案 241
8.12.3 实现方法 241
8.13 小结 244
第9章 spring对orm的支持 245
9.1 直接使用orm框架的问题 245
9.1.1 利用hibernate api和hibernate xml映射持久化对象 247
9.1.2 利用hibernate api和jpa注解持久化对象 250
9.1.3 用hibernate作为jpa引擎持久化对象 252
9.2 在spring中配置orm资源工厂 255
9.2.1 问题描述 255
9.2.2 解决方案 256
9.2.3 实现方法 256
9.3 用spring的orm模板持久化对象 261
9.3.1 问题描述 261
9.3.2 解决方案 261
9.3.3 实现方法 262
9.4 用hibernate的上下文会话持久化对象 267
9.4.1 问题描述 267
9.4.2 解决方案 267
9.4.3 实现方法 267
9.5 用jpa的上下文注入持久化对象 270
9.5.1 问题描述 270
9.5.2 解决方案 270
9.5.3 实现方法 270
9.6 小结 273
第10章 spring mvc框架 274
10.1 用spring mvc开发简单的web应用程序 274
10.1.1 问题描述 274
10.1.2 解决方案 274
10.1.3 实现方法 275
10.2 将请求映射到处理程序 284
10.2.1 问题描述 284
10.2.2 解决方案 284
10.2.3 实现方法 285
10.3 用handler interceptor拦截请求 287
10.3.1 问题描述 287
10.3.2 解决方案 287
10.3.3 实现方法 288
10.4 解析用户区域 290
10.4.1 问题描述 290
10.4.2 解决方案 290
10.4.3 实现方法 290
10.5 外部化区分区域的文本信息.. 292
10.5.1 问题描述 292
10.5.2 解决方案 292
10.5.3 实现方法 292
10.6 按名称解析视图 293
10.6.1 问题描述 293
10.6.2 解决方案 293
10.6.3 实现方法 293
10.7 将异常映射到视图 296
10.7.1 问题描述 296
10.7.2 解决方案 296
10.7.3 实现方法 296
10.8 构造modelandview对象 297
10.8.1 问题描述 297
10.8.2 解决方案 297
10.8.3 实现方法 298
10.9 创建带有参数化视图的控制器 299
10.9.1 问题描述 299
10.9.2 解决方案 299
10.9.3 实现方法 300
10.10 用表单控制器处理表单 301
10.10.1 问题描述 301
10.10.2 解决方案 301
10.10.3 实现方法 302
10.11 用向导表单控制器处理多页表单 313
10.11.1 问题描述 313
10.11.2 解决方案 313
10.11.3 实现方法 313
10.12 将多个动作分组到一个控制器 321
10.12.1 问题描述 321
10.12.2 解决方案 321
10.12.3 实现方法 321
10.13 创建excel和pdf视图 326
10.13.1 问题描述 326
10.13.2 解决方案 326
10.13.3 实现方法 326
10.14 用注解开发控制器 330
10.14.1 问题描述 330
10.14.2 解决方案 330
10.14.3 实现方法 330
10.15 小结 336
第11章 整合spring与其他web框架 337
11.1 在通用的web应用程序中访问spring 337
11.1.1 问题描述 337
11.1.2 解决方案 337
11.1.3 实现方法 338
11.2 整合spring与struts 1.x 342
11.2.1 问题描述 342
11.2.2 解决方案 342
11.2.3 实现方法 342
11.3 整合spring与jsf 347
11.3.1 问题描述 347
11.3.2 解决方案 348
11.3.3 实现方法 348
11.4 整合spring与dwr 352
11.4.1 问题描述 352
11.4.2 解决方案 352
11.4.3 实现方法 352
11.5 小结 355
第12章 spring对测试的支持 356
12.1 用junit和testng创建测试 357
12.1.1 问题描述 357
12.1.2 解决方案 357
12.1.3 实现方法 357
12.2 创建单元测试和集成测试 361
12.2.1 问题描述 361
12.2.2 解决方案 362
12.2.3 实现方法 362
12.3 单元测试spring mvc控制器 370
12.3.1 问题描述 370
12.3.2 解决方案 370
12.3.3 实现方法 370
12.4 管理集成测试中的应用程序上下文 374
12.4.1 问题描述 374
12.4.2 解决方案 374
12.4.3 实现方法 375
12.5 将测试夹具注入到集成测试中 380
12.5.1 问题描述 380
12.5.2 解决方案 381
12.5.3 实现方法 381
12.6 管理集成测试中的事务 384
12.6.1 问题描述 384
12.6.2 解决方案 384
12.6.3 实现方法 385
12.7 在集成测试中访问数据库 389
12.7.1 问题描述 389
12.7.2 解决方案 390
12.7.3 实现方法 390
12.8 利用spring的通用测试注解 393
12.8.1 问题描述 393
12.8.2 解决方案 393
12.8.3 实现方法 394
12.9 小结 395
第三部分 高级主题
第13章 spring security框架 398
13.1 保护url访问 398
13.1.1 问题描述 398
13.1.2 解决方案 398
13.1.3 实现方法 399
13.2 登录web应用程序 407
13.2.1 问题描述 407
13.2.2 解决方案 407
13.2.3 实现方法 408
13.3 验证用户 411
13.3.1 问题描述 411
13.3.2 解决方案 411
13.3.3 实现方法 412
13.4 指定访问控制决策 419
13.4.1 问题描述 419
13.4.2 解决方案 419
13.4.3 实现方法 420
13.5 保护方法调用 422
13.5.1 问题描述 422
13.5.2 解决方案 422
13.5.3 实现方法 422
13.6 处理视图中的安全 425
13.6.1 问题描述 425
13.6.2 解决方案 425
13.6.3 实现方法 425
13.7 处理领域对象的安全 427
13.7.1 问题描述 427
13.7.2 解决方案 427
13.7.3 实现方法 427
13.8 小结 436
第14章 spring portlet mvc框架 437
14.1 用spring portlet mvc开发简单的
portlet 437
14.1.1 问题描述 437
14.1.2 解决方案 437
14.1.3 实现方法 438
14.2 将portlet请求映射到处理程序 444
14.2.1 问题描述 444
14.2.2 解决方案 444
14.2.3 实现方法 444
14.3 用简单表单控制器处理portlet表单 453
14.3.1 问题描述 453
14.3.2 解决方案 453
14.3.3 实现方法 453
14.4 使用注解来开发portlet控制器 460
14.4.1 问题描述 460
14.4.2 解决方案 460
14.4.3 实现方法 460
14.5 小结 465
第15章 spring web flow 466
15.1 用spring web flow管理简单的ui流程 466
15.1.1 问题描述 466
15.1.2 解决方案 466
15.1.3 实现方法 467
15.2 用不同的流程类型进行web流程建模 472
15.2.1 问题描述 472
15.2.2 解决方案 472
15.2.3 实现方法 473
15.3 保护web流程 482
15.3.1 问题描述 482
15.3.2 解决方案 483
15.3.3 实现方法 483
15.4 在web流程中持久化对象 484
15.4.1 问题描述 484
15.4.2 解决方案 485
15.4.3 实现方法 485
15.5 集成spring web flow与jsf 490
15.5.1 问题描述 490
15.5.2 解决方案 490
15.5.3 实现方法 491
15.6 小结 496
第16章 spring远程服务和web服务 497
16.1 通过rmi暴露和调用服务 498
16.1.1 问题描述 498
16.1.2 解决方案 498
16.1.3 实现方法 499
16.2 通过http公开和调用服务 502
16.2.1 问题描述 502
16.2.2 解决方案 502
16.2.3 实现方法 502
16.3 选择web服务的开发方法 505
16.3.1 问题描述 505
16.3.2 解决方案 505
16.3.3 实现方法 505
16.4 利用xfire公开和调用web服务 507
16.4.1 问题描述 507
16.4.2 解决方案 507
16.4.3 实现方法 507
16.5 定义web服务契约 512
16.5.1 问题描述 512
16.5.2 解决方案 512
16.5.3 实现方法 513
16.6 利用spring-ws实现web服务 516
16.6.1 问题描述 516
16.6.2 解决方案 516
16.6.3 实现方法 517
16.7 利用spring-ws调用web服务 522
16.7.1 问题描述 522
16.7.2 解决方案 522
16.7.3 实现方法 522
16.8 利用xml封送技术开发web服务 525
16.8.1 问题描述 525
16.8.2 解决方案 525
16.8.3 实现方法 525
16.9 利用注解创建服务端点 530
16.9.1 问题描述 530
16.9.2 解决方案 530
16.9.3 实现方法 530
16.10 小结 531
第17章 spring对ejb和jms的支持 532
17.1 用spring创建ejb 2.x组件 532
17.1.1 问题描述 532
17.1.2 解决方案 532
17.1.3 实现方法 533
17.2 在spring中访问ejb 2.x组件 537
17.2.1 问题描述 537
17.2.2 解决方案 538
17.2.3 实现方法 538
17.3 在spring中访问ejb 3.0组件 542
17.3.1 问题描述 542
17.3.2 解决方案 542
17.3.3 实现方法 542
17.4 用spring发送和接收jms消息 545
17.4.1 问题描述 545
17.4.2 解决方案 545
17.4.3 实现方法 546
17.5 在spring中创建消息驱动的pojo 558
17.5.1 问题描述 558
17.5.2 解决方案 559
17.5.3 实现方法 559
17.6 小结 564
第18章 spring对jmx、电子邮件和调度的支持 565
18.1 将spring bean导出为jmx mbean 565
18.1.1 问题描述 565
18.1.2 解决方案 565
18.1.3 实现方法 566
18.2 发布和监听jmx通知 575
18.2.1 问题描述 575
18.2.2 解决方案 575
18.2.3 实现方法 575
18.3 在spring中访问远程jmx mbean 577
18.3.1 问题描述 577
18.3.2 解决方案 577
18.3.3 实现方法 577
18.4 用spring的电子邮件支持来发送电子邮件 580
18.4.1 问题描述 580
18.4.2 解决方案 580
18.4.3 实现方法 580
18.5 用spring的jdk timer支持进行调度 587
18.5.1 问题描述 587
18.5.2 解决方案 587
18.5.3 实现方法 587
18.6 利用spring的quartz支持进行调度 589
18.6.1 问题描述 589
18.6.2 解决方案 589
18.6.3 实现方法 589
18.7 小结 593
第19章 spring中的脚本编程 594
19.1 用脚本语言实现bean 594
19.1.1 问题描述 594
19.1.2 解决方案 594
19.1.3 实现方法 594
19.2 将spring bean注入脚本 598
19.2.1 问题描述 598
19.2.2 解决方案 598
19.2.3 实现方法 598
19.3 从脚本中刷新bean 600
19.3.1 问题描述 600
19.3.2 解决方案 600
19.3.3 实现方法 600
19.4 定义内联脚本 601
19.4.1 问题描述 601
19.4.2 解决方案 601
19.4.3 实现方法 601
19.5 小结... 603
↑折 叠
程序员的SQL金典8-8
目录
第1章 数据库入门
1.1 数据库概述
1.1.1 数据库与数据库管理系统
1.1.2 数据库能做什么
1.1.3 主流数据库管理系统介绍
1.2 数据库基础概念
1.2.1 Catalog
1.2.2 表(Table)
1.2.3 列(Column)
1.2.4 数据类型(DataType)
1.2.5 记录(Record)
1.2.6 主键(PrimaryKey)
1.2.7 索引(Index)
1.2.8 表关联
1.2.9 数据库的语言——SQL
1.2.10 DBA与程序员
第2章 数据表的创建和管理
2.1 数据类型
2.1.1 整数类型
2.1.2 数值类型
2.1.3 字符相关类型
2.1.4 日期时间类型
2.1.5 二进制类型
2.2 通过SQL语句管理数据表
2.2.1 创建数据表
2.2.2 定义非空约束
2.2.3 定义默认值
2.2.4 定义主键
2.2.5 定义外键
2.2.6 修改已有数据表
2.2.7 删除数据表
2.2.8 受限操作的变通解决方案
第3章 数据的增、删、改
3.1 数据的插入
3.1.1 简单的INSERT语句
3.1.2 简化的INSERT语句
3.1.3 非空约束对数据插入的影响
3.1.4 主键对数据插入的影响
3.1.5 外键对数据插入的影响
3.2 数据的更新
3.2.1 简单的数据更新
3.2.2 带WHERE子句的UPDATE语句
3.2.3 非空约束对数据更新的影响
3.2.4 主键对数据更新的影响
3.2.5 外键对数据更新的影响
3.3 数据的删除
3.3.1 简单的数据删除
3.3.2 带WHERE子句的DELETE语句
第4章 数据的检索
4.1 SELECT基本用法
4.1.1 简单的数据检索
4.1.2 检索出需要的列
4.1.3 列别名
4.1.4 按条件过滤
4.1.5 数据汇总
4.1.6 排序
4.2 高级数据过滤
4.2.1 通配符过滤
4.2.2 空值检测
4.2.3 反义运算符
4.2.4 多值检测
4.2.5 范围值检测
4.2.6 低效的“WHERE 1=1”
4.3 数据分组
4.3.1 数据分组入门
4.3.2 数据分组与聚合函数
4.3.3 HAVING语句
4.4 限制结果集行数
4.4.1 MySQL
4.4.2 MS SQL Server 2000
4.4.3 MS SQL Server 2005
4.4.4 Oracle
4.4.5 DB2
4.4.6 数据库分页
4.5 抑制数据重复
4.6 计算字段
4.6.1 常量字段
4.6.2 字段间的计算
4.6.3 数据处理函数
4.6.4 字符串的拼接
4.6.5 计算字段的其他用途
4.7 不从实体表中取的数据
4.8 联合结果集
4.8.1 简单的结果集联合
4.8.2 联合结果集的原则
4.8.3 UNION ALL
4.8.4 联合结果集应用举例
第5章 函数
5.1 数学函数
5.1.1 求绝对值
5.1.2 求指数
5.1.3 求平方根
5.1.4 求随机数
5.1.5 舍入到最大整数
5.1.6 舍入到最小整数
5.1.7 四舍五入
5.1.8 求正弦值
5.1.9 求余弦值
5.1.10 求反正弦值
5.1.11 求反余弦值
5.1.12 求正切值
5.1.13 求反正切值
5.1.14 求两个变量的反正切
5.1.15 求余切
5.1.16 求圆周率π值
5.1.17 弧度制转换为角度制
5.1.18 角度制转换为弧度制
5.1.19 求符号
5.1.20 求整除余数
5.1.21 求自然对数
5.1.22 求以10为底的对数
5.1.23 求幂
5.2 字符串函数
5.2.1 计算字符串长度
5.2.2 字符串转换为小写
5.2.3 字符串转换为大写
5.2.4 截去字符串左侧空格
5.2.5 截去字符串右侧空格
5.2.6 截去字符串两侧的空格
5.2.7 取子字符串
5.2.8 计算子字符串的位置
5.2.9 从左侧开始取子字符串
5.2.10 从右侧开始取子字符串
5.2.11 字符串替换
5.2.12 得到字符的ASCII码
5.2.13 得到一个ASCII码数字对应的字符
5.2.14 发音匹配度
5.3 日期时间函数
5.3.1 日期、时间、日期时间与时间戳
5.3.2 主流数据库系统中日期时间类型的表示方式
5.3.3 取得当前日期时间
5.3.4 日期增减
5.3.5 计算日期差额
5.3.6 计算一个日期是星期几
5.3.7 取得日期的指定部分
5.4 其他函数
5.4.1 类型转换
5.4.2 空值处理
5.4.3 CASE函数
5.5 各数据库系统独有函数
5.5.1 MySQL中的独有函数
5.5.2 MS SQL Server中的独有函数
5.5.3 Oracle中的独有函数
第6章 索引与约束
6.1 索引
6.2 约束
6.2.1 非空约束
6.2.2 唯一约束
6.2.3 CHECK约束
6.2.4 主键约束
6.2.5 外键约束
第7章 表连接
7.1 表连接简介
7.2 内连接(INNER JOIN)
7.3 不等值连接
7.4 交叉连接
7.5 自连接
7.6 外部连接
7.6.1 左外部连接
7.6.2 右外部连接
7.6.3 全外部连接
第8章 子查询
8.1 子查询入门
8.1.1 单值子查询
8.1.2 列值子查询
8.2 SELECT列表中的标量子查询
8.3 WHERE子句中的标量子查询
8.4 集合运算符与子查询
8.4.1 IN运算符
8.4.2 ANY和SOME运算符
8.4.3 ALL运算符
8.4.4 EXISTS运算符
8.5 在其他类型SQL语句中的子查询应用
8.5.1 子查询在INSERT语句中的应用
8.5.2 子查询在UPDATE语句中的应用
8.5.3 子查询在DELETE语句中的应用
第9章 主流数据库的SQL语法差异解决方案
9.1 SQL语法差异分析
9.1.1 数据类型的差异
9.1.2 运算符的差异
9.1.3 函数的差异
9.1.4 常用SQL的差异
9.1.5 取元数据信息的差异
9.2 消除差异性的方案
9.2.1 为每种数据库编写不同的SQL语句
9.2.2 使用语法交集
9.2.3 使用SQL实体对象
9.2.4 使用ORM工具
9.2.5 使用SQL翻译器
9.3 CowNewSQL翻译器
9.3.1 CowNewSQL支持的数据类型
9.3.2 CowNewSQL支持的SQL语法
9.3.3 CowNewSQL支持的函数
9.3.4 CowNewSQL的使用方法
第10章 高级话题
10.1 SQL注入漏洞攻防
10.1.1 SQL注入漏洞原理
10.1.2 过滤敏感字符
10.1.3 使用参数化SQL
10.2 SQL调优
10.2.1 SQL调优的基本原则
10.2.2 索引
10.2.3 全表扫描和索引查找
10.2.4 优化手法
10.3 事务
10.3.1 事务简介
10.3.2 事务的隔离
10.3.3 事务的隔离级别
10.3.4 事务的使用
10.4 自动增长字段
10.4.1 MySQL中的自动增长字段
10.4.2 MS SQL Server中的自动增长字段
10.4.3 Oracle中的自动增长字段
10.4.4 DB2中的自动增长字段
10.5 业务主键与逻辑主键
10.6 NULL的学问
10.6.1 NULL与比较运算符
10.6.2 NULL和计算字段
10.6.3 NULL和字符串
10.6.4 NULL和函数
10.6.5 NULL和聚合函数
10.7 开窗函数
10.7.1 开窗函数简介
10.7.2 PARTITION BY子句
10.7.3 ORDER BY子句
10.7.4 高级开窗函数
10.8 WITH子句与子查询
第11章 案例讲解
11.1 报表制作
11.1.1 显示制单人详细信息
11.1.2 显示销售单的详细信息
11.1.3 计算收益
11.1.4 产品销售额统计
11.1.5 统计销售记录的份额
11.1.6 为采购单分级
11.1.7 检索所有重叠日期销售单
11.1.8 为查询编号
11.1.9 标记所有单内最大销售量
11.2 排序
11.2.1 非字段排序规则
11.2.2 随机排序
11.3 表间比较
11.3.1 检索制作过采购单的人制作的销售单
11.3.2 检索没有制作过采购单的人制作的销售单
11.4 表复制
11.4.1 复制源表的结构并复制表中的数据
11.4.2 只复制源表的结构
11.5 计算字符在字符串中出现的次数
11.6 去除最高分、最低分
11.6.1 去除所有最低、最高值
11.6.2 只去除一个最低、最高值
11.7 与日期相关的应用
11.7.1 计算销售确认日和制单日之间相差的天数
11.7.2 计算两张销售单之间的时间间隔
11.7.3 计算销售单制单日期所在年份的天数
11.7.4 计算销售单制单日期所在月份的第一天和最后一天
11.8 结果集转置
11.8.1 将结果集转置为一行
11.8.2 把结果集转置为多行
11.9 递归查询
11.9.1 Oracle中的CONNECT BY子句
11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函数
11.9.3 My SQL Server和DB2中递归查询
附录A 常用数据库系统的安装和使用
A.1 DB2的安装和使用
A.2 MySQL的安装和使用
A.3 Oracle的安装和使用
A.4 Microsoft SQL Server的安装和使用
显示部分信息
程序员的SQL金典7-8
目录
第1章 数据库入门
1.1 数据库概述
1.1.1 数据库与数据库管理系统
1.1.2 数据库能做什么
1.1.3 主流数据库管理系统介绍
1.2 数据库基础概念
1.2.1 Catalog
1.2.2 表(Table)
1.2.3 列(Column)
1.2.4 数据类型(DataType)
1.2.5 记录(Record)
1.2.6 主键(PrimaryKey)
1.2.7 索引(Index)
1.2.8 表关联
1.2.9 数据库的语言——SQL
1.2.10 DBA与程序员
第2章 数据表的创建和管理
2.1 数据类型
2.1.1 整数类型
2.1.2 数值类型
2.1.3 字符相关类型
2.1.4 日期时间类型
2.1.5 二进制类型
2.2 通过SQL语句管理数据表
2.2.1 创建数据表
2.2.2 定义非空约束
2.2.3 定义默认值
2.2.4 定义主键
2.2.5 定义外键
2.2.6 修改已有数据表
2.2.7 删除数据表
2.2.8 受限操作的变通解决方案
第3章 数据的增、删、改
3.1 数据的插入
3.1.1 简单的INSERT语句
3.1.2 简化的INSERT语句
3.1.3 非空约束对数据插入的影响
3.1.4 主键对数据插入的影响
3.1.5 外键对数据插入的影响
3.2 数据的更新
3.2.1 简单的数据更新
3.2.2 带WHERE子句的UPDATE语句
3.2.3 非空约束对数据更新的影响
3.2.4 主键对数据更新的影响
3.2.5 外键对数据更新的影响
3.3 数据的删除
3.3.1 简单的数据删除
3.3.2 带WHERE子句的DELETE语句
第4章 数据的检索
4.1 SELECT基本用法
4.1.1 简单的数据检索
4.1.2 检索出需要的列
4.1.3 列别名
4.1.4 按条件过滤
4.1.5 数据汇总
4.1.6 排序
4.2 高级数据过滤
4.2.1 通配符过滤
4.2.2 空值检测
4.2.3 反义运算符
4.2.4 多值检测
4.2.5 范围值检测
4.2.6 低效的“WHERE 1=1”
4.3 数据分组
4.3.1 数据分组入门
4.3.2 数据分组与聚合函数
4.3.3 HAVING语句
4.4 限制结果集行数
4.4.1 MySQL
4.4.2 MS SQL Server 2000
4.4.3 MS SQL Server 2005
4.4.4 Oracle
4.4.5 DB2
4.4.6 数据库分页
4.5 抑制数据重复
4.6 计算字段
4.6.1 常量字段
4.6.2 字段间的计算
4.6.3 数据处理函数
4.6.4 字符串的拼接
4.6.5 计算字段的其他用途
4.7 不从实体表中取的数据
4.8 联合结果集
4.8.1 简单的结果集联合
4.8.2 联合结果集的原则
4.8.3 UNION ALL
4.8.4 联合结果集应用举例
第5章 函数
5.1 数学函数
5.1.1 求绝对值
5.1.2 求指数
5.1.3 求平方根
5.1.4 求随机数
5.1.5 舍入到最大整数
5.1.6 舍入到最小整数
5.1.7 四舍五入
5.1.8 求正弦值
5.1.9 求余弦值
5.1.10 求反正弦值
5.1.11 求反余弦值
5.1.12 求正切值
5.1.13 求反正切值
5.1.14 求两个变量的反正切
5.1.15 求余切
5.1.16 求圆周率π值
5.1.17 弧度制转换为角度制
5.1.18 角度制转换为弧度制
5.1.19 求符号
5.1.20 求整除余数
5.1.21 求自然对数
5.1.22 求以10为底的对数
5.1.23 求幂
5.2 字符串函数
5.2.1 计算字符串长度
5.2.2 字符串转换为小写
5.2.3 字符串转换为大写
5.2.4 截去字符串左侧空格
5.2.5 截去字符串右侧空格
5.2.6 截去字符串两侧的空格
5.2.7 取子字符串
5.2.8 计算子字符串的位置
5.2.9 从左侧开始取子字符串
5.2.10 从右侧开始取子字符串
5.2.11 字符串替换
5.2.12 得到字符的ASCII码
5.2.13 得到一个ASCII码数字对应的字符
5.2.14 发音匹配度
5.3 日期时间函数
5.3.1 日期、时间、日期时间与时间戳
5.3.2 主流数据库系统中日期时间类型的表示方式
5.3.3 取得当前日期时间
5.3.4 日期增减
5.3.5 计算日期差额
5.3.6 计算一个日期是星期几
5.3.7 取得日期的指定部分
5.4 其他函数
5.4.1 类型转换
5.4.2 空值处理
5.4.3 CASE函数
5.5 各数据库系统独有函数
5.5.1 MySQL中的独有函数
5.5.2 MS SQL Server中的独有函数
5.5.3 Oracle中的独有函数
第6章 索引与约束
6.1 索引
6.2 约束
6.2.1 非空约束
6.2.2 唯一约束
6.2.3 CHECK约束
6.2.4 主键约束
6.2.5 外键约束
第7章 表连接
7.1 表连接简介
7.2 内连接(INNER JOIN)
7.3 不等值连接
7.4 交叉连接
7.5 自连接
7.6 外部连接
7.6.1 左外部连接
7.6.2 右外部连接
7.6.3 全外部连接
第8章 子查询
8.1 子查询入门
8.1.1 单值子查询
8.1.2 列值子查询
8.2 SELECT列表中的标量子查询
8.3 WHERE子句中的标量子查询
8.4 集合运算符与子查询
8.4.1 IN运算符
8.4.2 ANY和SOME运算符
8.4.3 ALL运算符
8.4.4 EXISTS运算符
8.5 在其他类型SQL语句中的子查询应用
8.5.1 子查询在INSERT语句中的应用
8.5.2 子查询在UPDATE语句中的应用
8.5.3 子查询在DELETE语句中的应用
第9章 主流数据库的SQL语法差异解决方案
9.1 SQL语法差异分析
9.1.1 数据类型的差异
9.1.2 运算符的差异
9.1.3 函数的差异
9.1.4 常用SQL的差异
9.1.5 取元数据信息的差异
9.2 消除差异性的方案
9.2.1 为每种数据库编写不同的SQL语句
9.2.2 使用语法交集
9.2.3 使用SQL实体对象
9.2.4 使用ORM工具
9.2.5 使用SQL翻译器
9.3 CowNewSQL翻译器
9.3.1 CowNewSQL支持的数据类型
9.3.2 CowNewSQL支持的SQL语法
9.3.3 CowNewSQL支持的函数
9.3.4 CowNewSQL的使用方法
第10章 高级话题
10.1 SQL注入漏洞攻防
10.1.1 SQL注入漏洞原理
10.1.2 过滤敏感字符
10.1.3 使用参数化SQL
10.2 SQL调优
10.2.1 SQL调优的基本原则
10.2.2 索引
10.2.3 全表扫描和索引查找
10.2.4 优化手法
10.3 事务
10.3.1 事务简介
10.3.2 事务的隔离
10.3.3 事务的隔离级别
10.3.4 事务的使用
10.4 自动增长字段
10.4.1 MySQL中的自动增长字段
10.4.2 MS SQL Server中的自动增长字段
10.4.3 Oracle中的自动增长字段
10.4.4 DB2中的自动增长字段
10.5 业务主键与逻辑主键
10.6 NULL的学问
10.6.1 NULL与比较运算符
10.6.2 NULL和计算字段
10.6.3 NULL和字符串
10.6.4 NULL和函数
10.6.5 NULL和聚合函数
10.7 开窗函数
10.7.1 开窗函数简介
10.7.2 PARTITION BY子句
10.7.3 ORDER BY子句
10.7.4 高级开窗函数
10.8 WITH子句与子查询
第11章 案例讲解
11.1 报表制作
11.1.1 显示制单人详细信息
11.1.2 显示销售单的详细信息
11.1.3 计算收益
11.1.4 产品销售额统计
11.1.5 统计销售记录的份额
11.1.6 为采购单分级
11.1.7 检索所有重叠日期销售单
11.1.8 为查询编号
11.1.9 标记所有单内最大销售量
11.2 排序
11.2.1 非字段排序规则
11.2.2 随机排序
11.3 表间比较
11.3.1 检索制作过采购单的人制作的销售单
11.3.2 检索没有制作过采购单的人制作的销售单
11.4 表复制
11.4.1 复制源表的结构并复制表中的数据
11.4.2 只复制源表的结构
11.5 计算字符在字符串中出现的次数
11.6 去除最高分、最低分
11.6.1 去除所有最低、最高值
11.6.2 只去除一个最低、最高值
11.7 与日期相关的应用
11.7.1 计算销售确认日和制单日之间相差的天数
11.7.2 计算两张销售单之间的时间间隔
11.7.3 计算销售单制单日期所在年份的天数
11.7.4 计算销售单制单日期所在月份的第一天和最后一天
11.8 结果集转置
11.8.1 将结果集转置为一行
11.8.2 把结果集转置为多行
11.9 递归查询
11.9.1 Oracle中的CONNECT BY子句
11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函数
11.9.3 My SQL Server和DB2中递归查询
附录A 常用数据库系统的安装和使用
A.1 DB2的安装和使用
A.2 MySQL的安装和使用
A.3 Oracle的安装和使用
A.4 Microsoft SQL Server的安装和使用
显示部分信息
程序员的SQL金典6-8
目录
第1章 数据库入门
1.1 数据库概述
1.1.1 数据库与数据库管理系统
1.1.2 数据库能做什么
1.1.3 主流数据库管理系统介绍
1.2 数据库基础概念
1.2.1 Catalog
1.2.2 表(Table)
1.2.3 列(Column)
1.2.4 数据类型(DataType)
1.2.5 记录(Record)
1.2.6 主键(PrimaryKey)
1.2.7 索引(Index)
1.2.8 表关联
1.2.9 数据库的语言——SQL
1.2.10 DBA与程序员
第2章 数据表的创建和管理
2.1 数据类型
2.1.1 整数类型
2.1.2 数值类型
2.1.3 字符相关类型
2.1.4 日期时间类型
2.1.5 二进制类型
2.2 通过SQL语句管理数据表
2.2.1 创建数据表
2.2.2 定义非空约束
2.2.3 定义默认值
2.2.4 定义主键
2.2.5 定义外键
2.2.6 修改已有数据表
2.2.7 删除数据表
2.2.8 受限操作的变通解决方案
第3章 数据的增、删、改
3.1 数据的插入
3.1.1 简单的INSERT语句
3.1.2 简化的INSERT语句
3.1.3 非空约束对数据插入的影响
3.1.4 主键对数据插入的影响
3.1.5 外键对数据插入的影响
3.2 数据的更新
3.2.1 简单的数据更新
3.2.2 带WHERE子句的UPDATE语句
3.2.3 非空约束对数据更新的影响
3.2.4 主键对数据更新的影响
3.2.5 外键对数据更新的影响
3.3 数据的删除
3.3.1 简单的数据删除
3.3.2 带WHERE子句的DELETE语句
第4章 数据的检索
4.1 SELECT基本用法
4.1.1 简单的数据检索
4.1.2 检索出需要的列
4.1.3 列别名
4.1.4 按条件过滤
4.1.5 数据汇总
4.1.6 排序
4.2 高级数据过滤
4.2.1 通配符过滤
4.2.2 空值检测
4.2.3 反义运算符
4.2.4 多值检测
4.2.5 范围值检测
4.2.6 低效的“WHERE 1=1”
4.3 数据分组
4.3.1 数据分组入门
4.3.2 数据分组与聚合函数
4.3.3 HAVING语句
4.4 限制结果集行数
4.4.1 MySQL
4.4.2 MS SQL Server 2000
4.4.3 MS SQL Server 2005
4.4.4 Oracle
4.4.5 DB2
4.4.6 数据库分页
4.5 抑制数据重复
4.6 计算字段
4.6.1 常量字段
4.6.2 字段间的计算
4.6.3 数据处理函数
4.6.4 字符串的拼接
4.6.5 计算字段的其他用途
4.7 不从实体表中取的数据
4.8 联合结果集
4.8.1 简单的结果集联合
4.8.2 联合结果集的原则
4.8.3 UNION ALL
4.8.4 联合结果集应用举例
第5章 函数
5.1 数学函数
5.1.1 求绝对值
5.1.2 求指数
5.1.3 求平方根
5.1.4 求随机数
5.1.5 舍入到最大整数
5.1.6 舍入到最小整数
5.1.7 四舍五入
5.1.8 求正弦值
5.1.9 求余弦值
5.1.10 求反正弦值
5.1.11 求反余弦值
5.1.12 求正切值
5.1.13 求反正切值
5.1.14 求两个变量的反正切
5.1.15 求余切
5.1.16 求圆周率π值
5.1.17 弧度制转换为角度制
5.1.18 角度制转换为弧度制
5.1.19 求符号
5.1.20 求整除余数
5.1.21 求自然对数
5.1.22 求以10为底的对数
5.1.23 求幂
5.2 字符串函数
5.2.1 计算字符串长度
5.2.2 字符串转换为小写
5.2.3 字符串转换为大写
5.2.4 截去字符串左侧空格
5.2.5 截去字符串右侧空格
5.2.6 截去字符串两侧的空格
5.2.7 取子字符串
5.2.8 计算子字符串的位置
5.2.9 从左侧开始取子字符串
5.2.10 从右侧开始取子字符串
5.2.11 字符串替换
5.2.12 得到字符的ASCII码
5.2.13 得到一个ASCII码数字对应的字符
5.2.14 发音匹配度
5.3 日期时间函数
5.3.1 日期、时间、日期时间与时间戳
5.3.2 主流数据库系统中日期时间类型的表示方式
5.3.3 取得当前日期时间
5.3.4 日期增减
5.3.5 计算日期差额
5.3.6 计算一个日期是星期几
5.3.7 取得日期的指定部分
5.4 其他函数
5.4.1 类型转换
5.4.2 空值处理
5.4.3 CASE函数
5.5 各数据库系统独有函数
5.5.1 MySQL中的独有函数
5.5.2 MS SQL Server中的独有函数
5.5.3 Oracle中的独有函数
第6章 索引与约束
6.1 索引
6.2 约束
6.2.1 非空约束
6.2.2 唯一约束
6.2.3 CHECK约束
6.2.4 主键约束
6.2.5 外键约束
第7章 表连接
7.1 表连接简介
7.2 内连接(INNER JOIN)
7.3 不等值连接
7.4 交叉连接
7.5 自连接
7.6 外部连接
7.6.1 左外部连接
7.6.2 右外部连接
7.6.3 全外部连接
第8章 子查询
8.1 子查询入门
8.1.1 单值子查询
8.1.2 列值子查询
8.2 SELECT列表中的标量子查询
8.3 WHERE子句中的标量子查询
8.4 集合运算符与子查询
8.4.1 IN运算符
8.4.2 ANY和SOME运算符
8.4.3 ALL运算符
8.4.4 EXISTS运算符
8.5 在其他类型SQL语句中的子查询应用
8.5.1 子查询在INSERT语句中的应用
8.5.2 子查询在UPDATE语句中的应用
8.5.3 子查询在DELETE语句中的应用
第9章 主流数据库的SQL语法差异解决方案
9.1 SQL语法差异分析
9.1.1 数据类型的差异
9.1.2 运算符的差异
9.1.3 函数的差异
9.1.4 常用SQL的差异
9.1.5 取元数据信息的差异
9.2 消除差异性的方案
9.2.1 为每种数据库编写不同的SQL语句
9.2.2 使用语法交集
9.2.3 使用SQL实体对象
9.2.4 使用ORM工具
9.2.5 使用SQL翻译器
9.3 CowNewSQL翻译器
9.3.1 CowNewSQL支持的数据类型
9.3.2 CowNewSQL支持的SQL语法
9.3.3 CowNewSQL支持的函数
9.3.4 CowNewSQL的使用方法
第10章 高级话题
10.1 SQL注入漏洞攻防
10.1.1 SQL注入漏洞原理
10.1.2 过滤敏感字符
10.1.3 使用参数化SQL
10.2 SQL调优
10.2.1 SQL调优的基本原则
10.2.2 索引
10.2.3 全表扫描和索引查找
10.2.4 优化手法
10.3 事务
10.3.1 事务简介
10.3.2 事务的隔离
10.3.3 事务的隔离级别
10.3.4 事务的使用
10.4 自动增长字段
10.4.1 MySQL中的自动增长字段
10.4.2 MS SQL Server中的自动增长字段
10.4.3 Oracle中的自动增长字段
10.4.4 DB2中的自动增长字段
10.5 业务主键与逻辑主键
10.6 NULL的学问
10.6.1 NULL与比较运算符
10.6.2 NULL和计算字段
10.6.3 NULL和字符串
10.6.4 NULL和函数
10.6.5 NULL和聚合函数
10.7 开窗函数
10.7.1 开窗函数简介
10.7.2 PARTITION BY子句
10.7.3 ORDER BY子句
10.7.4 高级开窗函数
10.8 WITH子句与子查询
第11章 案例讲解
11.1 报表制作
11.1.1 显示制单人详细信息
11.1.2 显示销售单的详细信息
11.1.3 计算收益
11.1.4 产品销售额统计
11.1.5 统计销售记录的份额
11.1.6 为采购单分级
11.1.7 检索所有重叠日期销售单
11.1.8 为查询编号
11.1.9 标记所有单内最大销售量
11.2 排序
11.2.1 非字段排序规则
11.2.2 随机排序
11.3 表间比较
11.3.1 检索制作过采购单的人制作的销售单
11.3.2 检索没有制作过采购单的人制作的销售单
11.4 表复制
11.4.1 复制源表的结构并复制表中的数据
11.4.2 只复制源表的结构
11.5 计算字符在字符串中出现的次数
11.6 去除最高分、最低分
11.6.1 去除所有最低、最高值
11.6.2 只去除一个最低、最高值
11.7 与日期相关的应用
11.7.1 计算销售确认日和制单日之间相差的天数
11.7.2 计算两张销售单之间的时间间隔
11.7.3 计算销售单制单日期所在年份的天数
11.7.4 计算销售单制单日期所在月份的第一天和最后一天
11.8 结果集转置
11.8.1 将结果集转置为一行
11.8.2 把结果集转置为多行
11.9 递归查询
11.9.1 Oracle中的CONNECT BY子句
11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函数
11.9.3 My SQL Server和DB2中递归查询
附录A 常用数据库系统的安装和使用
A.1 DB2的安装和使用
A.2 MySQL的安装和使用
A.3 Oracle的安装和使用
A.4 Microsoft SQL Server的安装和使用
显示部分信息
程序员的SQL金典4-8
目录
第1章 数据库入门
1.1 数据库概述
1.1.1 数据库与数据库管理系统
1.1.2 数据库能做什么
1.1.3 主流数据库管理系统介绍
1.2 数据库基础概念
1.2.1 Catalog
1.2.2 表(Table)
1.2.3 列(Column)
1.2.4 数据类型(DataType)
1.2.5 记录(Record)
1.2.6 主键(PrimaryKey)
1.2.7 索引(Index)
1.2.8 表关联
1.2.9 数据库的语言——SQL
1.2.10 DBA与程序员
第2章 数据表的创建和管理
2.1 数据类型
2.1.1 整数类型
2.1.2 数值类型
2.1.3 字符相关类型
2.1.4 日期时间类型
2.1.5 二进制类型
2.2 通过SQL语句管理数据表
2.2.1 创建数据表
2.2.2 定义非空约束
2.2.3 定义默认值
2.2.4 定义主键
2.2.5 定义外键
2.2.6 修改已有数据表
2.2.7 删除数据表
2.2.8 受限操作的变通解决方案
第3章 数据的增、删、改
3.1 数据的插入
3.1.1 简单的INSERT语句
3.1.2 简化的INSERT语句
3.1.3 非空约束对数据插入的影响
3.1.4 主键对数据插入的影响
3.1.5 外键对数据插入的影响
3.2 数据的更新
3.2.1 简单的数据更新
3.2.2 带WHERE子句的UPDATE语句
3.2.3 非空约束对数据更新的影响
3.2.4 主键对数据更新的影响
3.2.5 外键对数据更新的影响
3.3 数据的删除
3.3.1 简单的数据删除
3.3.2 带WHERE子句的DELETE语句
第4章 数据的检索
4.1 SELECT基本用法
4.1.1 简单的数据检索
4.1.2 检索出需要的列
4.1.3 列别名
4.1.4 按条件过滤
4.1.5 数据汇总
4.1.6 排序
4.2 高级数据过滤
4.2.1 通配符过滤
4.2.2 空值检测
4.2.3 反义运算符
4.2.4 多值检测
4.2.5 范围值检测
4.2.6 低效的“WHERE 1=1”
4.3 数据分组
4.3.1 数据分组入门
4.3.2 数据分组与聚合函数
4.3.3 HAVING语句
4.4 限制结果集行数
4.4.1 MySQL
4.4.2 MS SQL Server 2000
4.4.3 MS SQL Server 2005
4.4.4 Oracle
4.4.5 DB2
4.4.6 数据库分页
4.5 抑制数据重复
4.6 计算字段
4.6.1 常量字段
4.6.2 字段间的计算
4.6.3 数据处理函数
4.6.4 字符串的拼接
4.6.5 计算字段的其他用途
4.7 不从实体表中取的数据
4.8 联合结果集
4.8.1 简单的结果集联合
4.8.2 联合结果集的原则
4.8.3 UNION ALL
4.8.4 联合结果集应用举例
第5章 函数
5.1 数学函数
5.1.1 求绝对值
5.1.2 求指数
5.1.3 求平方根
5.1.4 求随机数
5.1.5 舍入到最大整数
5.1.6 舍入到最小整数
5.1.7 四舍五入
5.1.8 求正弦值
5.1.9 求余弦值
5.1.10 求反正弦值
5.1.11 求反余弦值
5.1.12 求正切值
5.1.13 求反正切值
5.1.14 求两个变量的反正切
5.1.15 求余切
5.1.16 求圆周率π值
5.1.17 弧度制转换为角度制
5.1.18 角度制转换为弧度制
5.1.19 求符号
5.1.20 求整除余数
5.1.21 求自然对数
5.1.22 求以10为底的对数
5.1.23 求幂
5.2 字符串函数
5.2.1 计算字符串长度
5.2.2 字符串转换为小写
5.2.3 字符串转换为大写
5.2.4 截去字符串左侧空格
5.2.5 截去字符串右侧空格
5.2.6 截去字符串两侧的空格
5.2.7 取子字符串
5.2.8 计算子字符串的位置
5.2.9 从左侧开始取子字符串
5.2.10 从右侧开始取子字符串
5.2.11 字符串替换
5.2.12 得到字符的ASCII码
5.2.13 得到一个ASCII码数字对应的字符
5.2.14 发音匹配度
5.3 日期时间函数
5.3.1 日期、时间、日期时间与时间戳
5.3.2 主流数据库系统中日期时间类型的表示方式
5.3.3 取得当前日期时间
5.3.4 日期增减
5.3.5 计算日期差额
5.3.6 计算一个日期是星期几
5.3.7 取得日期的指定部分
5.4 其他函数
5.4.1 类型转换
5.4.2 空值处理
5.4.3 CASE函数
5.5 各数据库系统独有函数
5.5.1 MySQL中的独有函数
5.5.2 MS SQL Server中的独有函数
5.5.3 Oracle中的独有函数
第6章 索引与约束
6.1 索引
6.2 约束
6.2.1 非空约束
6.2.2 唯一约束
6.2.3 CHECK约束
6.2.4 主键约束
6.2.5 外键约束
第7章 表连接
7.1 表连接简介
7.2 内连接(INNER JOIN)
7.3 不等值连接
7.4 交叉连接
7.5 自连接
7.6 外部连接
7.6.1 左外部连接
7.6.2 右外部连接
7.6.3 全外部连接
第8章 子查询
8.1 子查询入门
8.1.1 单值子查询
8.1.2 列值子查询
8.2 SELECT列表中的标量子查询
8.3 WHERE子句中的标量子查询
8.4 集合运算符与子查询
8.4.1 IN运算符
8.4.2 ANY和SOME运算符
8.4.3 ALL运算符
8.4.4 EXISTS运算符
8.5 在其他类型SQL语句中的子查询应用
8.5.1 子查询在INSERT语句中的应用
8.5.2 子查询在UPDATE语句中的应用
8.5.3 子查询在DELETE语句中的应用
第9章 主流数据库的SQL语法差异解决方案
9.1 SQL语法差异分析
9.1.1 数据类型的差异
9.1.2 运算符的差异
9.1.3 函数的差异
9.1.4 常用SQL的差异
9.1.5 取元数据信息的差异
9.2 消除差异性的方案
9.2.1 为每种数据库编写不同的SQL语句
9.2.2 使用语法交集
9.2.3 使用SQL实体对象
9.2.4 使用ORM工具
9.2.5 使用SQL翻译器
9.3 CowNewSQL翻译器
9.3.1 CowNewSQL支持的数据类型
9.3.2 CowNewSQL支持的SQL语法
9.3.3 CowNewSQL支持的函数
9.3.4 CowNewSQL的使用方法
第10章 高级话题
10.1 SQL注入漏洞攻防
10.1.1 SQL注入漏洞原理
10.1.2 过滤敏感字符
10.1.3 使用参数化SQL
10.2 SQL调优
10.2.1 SQL调优的基本原则
10.2.2 索引
10.2.3 全表扫描和索引查找
10.2.4 优化手法
10.3 事务
10.3.1 事务简介
10.3.2 事务的隔离
10.3.3 事务的隔离级别
10.3.4 事务的使用
10.4 自动增长字段
10.4.1 MySQL中的自动增长字段
10.4.2 MS SQL Server中的自动增长字段
10.4.3 Oracle中的自动增长字段
10.4.4 DB2中的自动增长字段
10.5 业务主键与逻辑主键
10.6 NULL的学问
10.6.1 NULL与比较运算符
10.6.2 NULL和计算字段
10.6.3 NULL和字符串
10.6.4 NULL和函数
10.6.5 NULL和聚合函数
10.7 开窗函数
10.7.1 开窗函数简介
10.7.2 PARTITION BY子句
10.7.3 ORDER BY子句
10.7.4 高级开窗函数
10.8 WITH子句与子查询
第11章 案例讲解
11.1 报表制作
11.1.1 显示制单人详细信息
11.1.2 显示销售单的详细信息
11.1.3 计算收益
11.1.4 产品销售额统计
11.1.5 统计销售记录的份额
11.1.6 为采购单分级
11.1.7 检索所有重叠日期销售单
11.1.8 为查询编号
11.1.9 标记所有单内最大销售量
11.2 排序
11.2.1 非字段排序规则
11.2.2 随机排序
11.3 表间比较
11.3.1 检索制作过采购单的人制作的销售单
11.3.2 检索没有制作过采购单的人制作的销售单
11.4 表复制
11.4.1 复制源表的结构并复制表中的数据
11.4.2 只复制源表的结构
11.5 计算字符在字符串中出现的次数
11.6 去除最高分、最低分
11.6.1 去除所有最低、最高值
11.6.2 只去除一个最低、最高值
11.7 与日期相关的应用
11.7.1 计算销售确认日和制单日之间相差的天数
11.7.2 计算两张销售单之间的时间间隔
11.7.3 计算销售单制单日期所在年份的天数
11.7.4 计算销售单制单日期所在月份的第一天和最后一天
11.8 结果集转置
11.8.1 将结果集转置为一行
11.8.2 把结果集转置为多行
11.9 递归查询
11.9.1 Oracle中的CONNECT BY子句
11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函数
11.9.3 My SQL Server和DB2中递归查询
附录A 常用数据库系统的安装和使用
A.1 DB2的安装和使用
A.2 MySQL的安装和使用
A.3 Oracle的安装和使用
A.4 Microsoft SQL Server的安装和使用
显示部分信息
程序员的SQL金典3-8
目录
第1章 数据库入门
1.1 数据库概述
1.1.1 数据库与数据库管理系统
1.1.2 数据库能做什么
1.1.3 主流数据库管理系统介绍
1.2 数据库基础概念
1.2.1 Catalog
1.2.2 表(Table)
1.2.3 列(Column)
1.2.4 数据类型(DataType)
1.2.5 记录(Record)
1.2.6 主键(PrimaryKey)
1.2.7 索引(Index)
1.2.8 表关联
1.2.9 数据库的语言——SQL
1.2.10 DBA与程序员
第2章 数据表的创建和管理
2.1 数据类型
2.1.1 整数类型
2.1.2 数值类型
2.1.3 字符相关类型
2.1.4 日期时间类型
2.1.5 二进制类型
2.2 通过SQL语句管理数据表
2.2.1 创建数据表
2.2.2 定义非空约束
2.2.3 定义默认值
2.2.4 定义主键
2.2.5 定义外键
2.2.6 修改已有数据表
2.2.7 删除数据表
2.2.8 受限操作的变通解决方案
第3章 数据的增、删、改
3.1 数据的插入
3.1.1 简单的INSERT语句
3.1.2 简化的INSERT语句
3.1.3 非空约束对数据插入的影响
3.1.4 主键对数据插入的影响
3.1.5 外键对数据插入的影响
3.2 数据的更新
3.2.1 简单的数据更新
3.2.2 带WHERE子句的UPDATE语句
3.2.3 非空约束对数据更新的影响
3.2.4 主键对数据更新的影响
3.2.5 外键对数据更新的影响
3.3 数据的删除
3.3.1 简单的数据删除
3.3.2 带WHERE子句的DELETE语句
第4章 数据的检索
4.1 SELECT基本用法
4.1.1 简单的数据检索
4.1.2 检索出需要的列
4.1.3 列别名
4.1.4 按条件过滤
4.1.5 数据汇总
4.1.6 排序
4.2 高级数据过滤
4.2.1 通配符过滤
4.2.2 空值检测
4.2.3 反义运算符
4.2.4 多值检测
4.2.5 范围值检测
4.2.6 低效的“WHERE 1=1”
4.3 数据分组
4.3.1 数据分组入门
4.3.2 数据分组与聚合函数
4.3.3 HAVING语句
4.4 限制结果集行数
4.4.1 MySQL
4.4.2 MS SQL Server 2000
4.4.3 MS SQL Server 2005
4.4.4 Oracle
4.4.5 DB2
4.4.6 数据库分页
4.5 抑制数据重复
4.6 计算字段
4.6.1 常量字段
4.6.2 字段间的计算
4.6.3 数据处理函数
4.6.4 字符串的拼接
4.6.5 计算字段的其他用途
4.7 不从实体表中取的数据
4.8 联合结果集
4.8.1 简单的结果集联合
4.8.2 联合结果集的原则
4.8.3 UNION ALL
4.8.4 联合结果集应用举例
第5章 函数
5.1 数学函数
5.1.1 求绝对值
5.1.2 求指数
5.1.3 求平方根
5.1.4 求随机数
5.1.5 舍入到最大整数
5.1.6 舍入到最小整数
5.1.7 四舍五入
5.1.8 求正弦值
5.1.9 求余弦值
5.1.10 求反正弦值
5.1.11 求反余弦值
5.1.12 求正切值
5.1.13 求反正切值
5.1.14 求两个变量的反正切
5.1.15 求余切
5.1.16 求圆周率π值
5.1.17 弧度制转换为角度制
5.1.18 角度制转换为弧度制
5.1.19 求符号
5.1.20 求整除余数
5.1.21 求自然对数
5.1.22 求以10为底的对数
5.1.23 求幂
5.2 字符串函数
5.2.1 计算字符串长度
5.2.2 字符串转换为小写
5.2.3 字符串转换为大写
5.2.4 截去字符串左侧空格
5.2.5 截去字符串右侧空格
5.2.6 截去字符串两侧的空格
5.2.7 取子字符串
5.2.8 计算子字符串的位置
5.2.9 从左侧开始取子字符串
5.2.10 从右侧开始取子字符串
5.2.11 字符串替换
5.2.12 得到字符的ASCII码
5.2.13 得到一个ASCII码数字对应的字符
5.2.14 发音匹配度
5.3 日期时间函数
5.3.1 日期、时间、日期时间与时间戳
5.3.2 主流数据库系统中日期时间类型的表示方式
5.3.3 取得当前日期时间
5.3.4 日期增减
5.3.5 计算日期差额
5.3.6 计算一个日期是星期几
5.3.7 取得日期的指定部分
5.4 其他函数
5.4.1 类型转换
5.4.2 空值处理
5.4.3 CASE函数
5.5 各数据库系统独有函数
5.5.1 MySQL中的独有函数
5.5.2 MS SQL Server中的独有函数
5.5.3 Oracle中的独有函数
第6章 索引与约束
6.1 索引
6.2 约束
6.2.1 非空约束
6.2.2 唯一约束
6.2.3 CHECK约束
6.2.4 主键约束
6.2.5 外键约束
第7章 表连接
7.1 表连接简介
7.2 内连接(INNER JOIN)
7.3 不等值连接
7.4 交叉连接
7.5 自连接
7.6 外部连接
7.6.1 左外部连接
7.6.2 右外部连接
7.6.3 全外部连接
第8章 子查询
8.1 子查询入门
8.1.1 单值子查询
8.1.2 列值子查询
8.2 SELECT列表中的标量子查询
8.3 WHERE子句中的标量子查询
8.4 集合运算符与子查询
8.4.1 IN运算符
8.4.2 ANY和SOME运算符
8.4.3 ALL运算符
8.4.4 EXISTS运算符
8.5 在其他类型SQL语句中的子查询应用
8.5.1 子查询在INSERT语句中的应用
8.5.2 子查询在UPDATE语句中的应用
8.5.3 子查询在DELETE语句中的应用
第9章 主流数据库的SQL语法差异解决方案
9.1 SQL语法差异分析
9.1.1 数据类型的差异
9.1.2 运算符的差异
9.1.3 函数的差异
9.1.4 常用SQL的差异
9.1.5 取元数据信息的差异
9.2 消除差异性的方案
9.2.1 为每种数据库编写不同的SQL语句
9.2.2 使用语法交集
9.2.3 使用SQL实体对象
9.2.4 使用ORM工具
9.2.5 使用SQL翻译器
9.3 CowNewSQL翻译器
9.3.1 CowNewSQL支持的数据类型
9.3.2 CowNewSQL支持的SQL语法
9.3.3 CowNewSQL支持的函数
9.3.4 CowNewSQL的使用方法
第10章 高级话题
10.1 SQL注入漏洞攻防
10.1.1 SQL注入漏洞原理
10.1.2 过滤敏感字符
10.1.3 使用参数化SQL
10.2 SQL调优
10.2.1 SQL调优的基本原则
10.2.2 索引
10.2.3 全表扫描和索引查找
10.2.4 优化手法
10.3 事务
10.3.1 事务简介
10.3.2 事务的隔离
10.3.3 事务的隔离级别
10.3.4 事务的使用
10.4 自动增长字段
10.4.1 MySQL中的自动增长字段
10.4.2 MS SQL Server中的自动增长字段
10.4.3 Oracle中的自动增长字段
10.4.4 DB2中的自动增长字段
10.5 业务主键与逻辑主键
10.6 NULL的学问
10.6.1 NULL与比较运算符
10.6.2 NULL和计算字段
10.6.3 NULL和字符串
10.6.4 NULL和函数
10.6.5 NULL和聚合函数
10.7 开窗函数
10.7.1 开窗函数简介
10.7.2 PARTITION BY子句
10.7.3 ORDER BY子句
10.7.4 高级开窗函数
10.8 WITH子句与子查询
第11章 案例讲解
11.1 报表制作
11.1.1 显示制单人详细信息
11.1.2 显示销售单的详细信息
11.1.3 计算收益
11.1.4 产品销售额统计
11.1.5 统计销售记录的份额
11.1.6 为采购单分级
11.1.7 检索所有重叠日期销售单
11.1.8 为查询编号
11.1.9 标记所有单内最大销售量
11.2 排序
11.2.1 非字段排序规则
11.2.2 随机排序
11.3 表间比较
11.3.1 检索制作过采购单的人制作的销售单
11.3.2 检索没有制作过采购单的人制作的销售单
11.4 表复制
11.4.1 复制源表的结构并复制表中的数据
11.4.2 只复制源表的结构
11.5 计算字符在字符串中出现的次数
11.6 去除最高分、最低分
11.6.1 去除所有最低、最高值
11.6.2 只去除一个最低、最高值
11.7 与日期相关的应用
11.7.1 计算销售确认日和制单日之间相差的天数
11.7.2 计算两张销售单之间的时间间隔
11.7.3 计算销售单制单日期所在年份的天数
11.7.4 计算销售单制单日期所在月份的第一天和最后一天
11.8 结果集转置
11.8.1 将结果集转置为一行
11.8.2 把结果集转置为多行
11.9 递归查询
11.9.1 Oracle中的CONNECT BY子句
11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函数
11.9.3 My SQL Server和DB2中递归查询
附录A 常用数据库系统的安装和使用
A.1 DB2的安装和使用
A.2 MySQL的安装和使用
A.3 Oracle的安装和使用
A.4 Microsoft SQL Server的安装和使用
显示部分信息
JBoss实战:服务器配置指南(英文版)
JBoss in Action: Configuring the JBoss Application Server
Publisher: Manning Publications | 2009-01-28 | ISBN: 1933988029 | PDF | 6,58 MB
JBoss in Action is the first book to focus on teaching readers in detail how to use the JBoss application server. Unlike other titles about JBoss, the authors of JBoss in Action go deeper into the advanced features and configuration of the server. In particular, it focuses on enterprise-class topics, such as high availability, security, and performance.
This book walks readers through the JBoss 5 Application Server from installation to configuration to production development. It shows how to configure the server's various component containers such as the JBoss Web Server, the EJB 3 server, and JBoss Messaging. It also provides detailed insight into configuring the various component services such as security, performance, and clustering. Beyond coverage of the core application server, the book also teaches how to use some of the "hot" technologies that run on top of the application server, such as Jboss Seam and JBoss Portal.
The authors, both seasoned professional experts at developing and administering JBoss, provide meaningful explanations and background on many topics which they tie in with their own practical, real-world advice from their collective experience. These uniquely comprehensive explanations and the wide coverage provided in this book surpass any other content currently available in any other book, article, or documentation on the subject.
Spring Security-3.0.1中文官方文档(翻译版)
Spring Security-3.0.1 中文官方文档(翻译版)
这次发布的Spring Security-3.0.1 是一个bug fix 版,主要是对3.0 中存在的一些问题进
行修
正。文档中没有添加新功能的介绍,但是将之前拼写错误的一些类名进行了修正,建议开发
者以这一版本的文档为参考。
另:Spring Security 从2010-01-01 以后,版本控制从SVN 换成了GIT,我们在翻译文档的
时候,主要是根据SVN 的变化来进行文档内容的比对,这次换成GIT 后,感觉缺少了之前
那种文本比对工具,如果有对GIT 熟悉的朋友,还请推荐一下文本比对的工具,谢谢。
序言
I. 入门
1. 介绍
1.1. Spring Security 是什么?
1.2. 历史
1.3. 发行版本号
1.4. 获得Spring Security
1.4.1. 项目模块
1.4.1.1. Core - spring-security-core.jar
1.4.1.2. Web - spring-security-web.jar
1.4.1.3. Config - spring-security-config.jar
1.4.1.4. LDAP - spring-security-ldap.jar
1.4.1.5. ACL - spring-security-acl.jar
1.4.1.6. CAS - spring-security-cas-client.jar
1.4.1.7. OpenID - spring-security-openid.jar
1.4.2. 获得源代码
2. Security 命名空间配置
2.1. 介绍
2.1.1. 命名空间的设计
2.2. 开始使用安全命名空间配置
2.2.1. 配置web.xml
2.2.2. 最小<http> 配置
2.2.2.1. auto-config 包含了什么?
2.2.2.2. 表单和基本登录选项
2.2.3. 使用其他认证提供器
2.2.3.1. 添加一个密码编码器
2.3. 高级web 特性
2.3.1. Remember-Me 认证
2.3.2. 添加HTTP/HTTPS 信道安全
2.3.3. 会话管理
2.3.3.1. 检测超时
2.3.3.2. 同步会话控制
2.3.3.3. 防止Session 固定攻击
2.3.4. 对OpenID 的支持
2.3.4.1. 属性交换
2.3.5. 添加你自己的filter
2.3.5.1. 设置自定义AuthenticationEntryPoint
2.4. 保护方法
2.4.1. <global-method-security> 元素
2.4.1.1. 使用protect-pointcut 添加安全切点
2.5. 默认的AccessDecisionManager
2.5.1. 自定义AccessDecisionManager
2.6. 验证管理器和命名空间
3. 示例程序
3.1. Tutorial 示例
3.2. Contacts
3.3. LDAP 例子
3.4. CAS 例子
3.5. Pre-Authentication 例子
4. Spring Security 社区
4.1. 任务跟踪
4.2. 成为参与者
4.3. 更多信息
II. 结构和实现
5. 技术概述
5.1. 运行环境
5.2. 核心组件
5.2.1. SecurityContextHolder, SecurityContext 和Authentication 对象
5.2.1.1. 获得当前用户的信息
5.2.2. UserDetailsService
5.2.3. GrantedAuthority
5.2.4. 小结
5.3. 验证
5.3.1. 什么是Spring Security 的验证呢?
5.3.2. 直接设置SecurityContextHolder 的内容
5.4. 在web 应用中验证
5.4.1. ExceptionTranslationFilter
5.4.2. AuthenticationEntryPoint
5.4.3. 验证机制
5.4.4. 在请求之间保存SecurityContext 。
5.5. Spring Security 中的访问控制(验证)
5.5.1. 安全和AOP 建议
5.5.2. 安全对象和AbstractSecurityInterceptor
5.5.2.1. 配置属性是什么?
5.5.2.2. RunAsManager
5.5.2.3. AfterInvocationManager
5.5.2.4. 扩展安全对象模型
5.6. 国际化
6. 核心服务
6.1. The AuthenticationManager , ProviderManager 和AuthenticationProvider s
6.1.1. DaoAuthenticationProvider
6.2. UserDetailsService 实现
6.2.1. 内存认证
6.2.2. JdbcDaoImpl
6.2.2.1. 权限分组
6.3. 密码加密
6.3.1. 什么是散列加密?
6.3.2. 为散列加点儿盐
6.3.3. 散列和认证
III. web 应用安全
7. 安全过滤器链
7.1. DelegatingFilterProxy
7.2. FilterChainProxy
7.2.1. 绕过过滤器链
7.3. 过滤器顺序
7.4. 使用其他过滤器—— 基于框架
8. 核心安全过滤器
8.1. FilterSecurityInterceptor
8.2. ExceptionTranslationFilter
8.2.1. AuthenticationEntryPoint
8.2.2. AccessDeniedHandler
8.3. SecurityContextPersistenceFilter
8.3.1. SecurityContextRepository
8.4. UsernamePasswordAuthenticationFilter
8.4.1. 认证成功和失败的应用流程
9. Basic(基本)和Digest(摘要)验证
9.1. BasicAuthenticationFilter
9.1.1. 配置
9.2. DigestAuthenticationFilter
9.2.1. Configuration
10. Remember-Me 认证
10.1. 概述
10.2. 简单基于散列标记的方法
10.3. 持久化标记方法
10.4. Remember-Me 接口和实现
10.4.1. TokenBasedRememberMeServices
10.4.2. PersistentTokenBasedRememberMeServices
11. 会话管理
11.1. SessionManagementFilter
11.2. SessionAuthenticationStrategy
11.3. 同步会话
12. 匿名认证
12.1. 概述
12.2. 配置
12.3. AuthenticationTrustResolver
IV. 授权
13. 验证架构
13.1. 验证
13.2. 处理预调用
13.2.1. AccessDecisionManager
13.2.2. 基于投票的AccessDecisionManager 实现
13.2.2.1. RoleVoter
13.2.2.2. AuthenticatedVoter
13.2.2.3. Custom Voters
13.3. 处理后决定
14. 安全对象实现
14.1. AOP 联盟(MethodInvocation) 安全拦截器
14.1.1. 精确的MethodSecurityIterceptor 配置
14.2. AspectJ (JoinPoint) 安全拦截器
15. 基于表达式的权限控制
15.1. 概述
15.1.1. 常用内建表达式
15.2. Web 安全表达式
15.3. 方法安全表达式
15.3.1. @Pre 和@Post 注解
15.3.1.1. 访问控制使用@PreAuthorize 和@PostAuthorize
15.3.1.2. 过滤使用@PreFilter 和@PostFilter
16. acegi 到spring security 的转换方式
16.1. Spring Security 是什么
16.2. 目标
16.3. 步骤
16.4. 总结
V. 高级话题
17. 领域对象安全(ACLs)
17.1. 概述
17.2. 关键概念
17.3. 开始
18. 预认证场景
18.1. 预认证框架类
18.1.1. AbstractPreAuthenticatedProcessingFilter
18.1.2. AbstractPreAuthenticatedAuthenticationDetailsSource
18.1.2.1. J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource
18.1.3. PreAuthenticatedAuthenticationProvider
18.1.4. Http403ForbiddenEntryPoint
18.2. 具体实现
18.2.1. 请求头认证(Siteminder)
18.2.1.1. Siteminder 示例配置
18.2.2. J2EE 容器认证
19. LDAP 认证
19.1. 综述
19.2. 在Spring Security 里使用LDAP
19.3. 配置LDAP 服务器
19.3.1. 使用嵌入测试服务器
19.3.2. 使用绑定认证
19.3.3. 读取授权
19.4. 实现类
19.4.1. LdapAuthenticator 实现
19.4.1.1. 常用功能
19.4.1.2. BindAuthenticator
19.4.1.3. PasswordComparisonAuthenticator
19.4.1.4. 活动目录认证
19.4.2. 链接到LDAP 服务器
19.4.3. LDAP 搜索对象
19.4.3.1. FilterBasedLdapUserSearch
19.4.4. LdapAuthoritiesPopulator
19.4.5. Spring Bean 配置
19.4.6. LDAP 属性和自定义UserDetails
20. JSP 标签库
20.1. 声明Taglib
20.2. authorize 标签
20.3. authentication 标签
20.4. accesscontrollist 标签
21. Java 认证和授权服务(JAAS)供应器
21.1. 概述
21.2. 配置
21.2.1. JAAS CallbackHandler
21.2.2. JAAS AuthorityGranter
22. CAS 认证
22.1. 概述
22.2. CAS 是如何工作的
22.3. 配置CAS 客户端
23. X.509 认证
23.1. 概述
23.2. 把X.509 认证添加到你的web 系统中
23.3. 为tomcat 配置SSL
24. 替换验证身份
24.1. 概述
24.2. 配置
A. 安全数据库表结构
A.1. User 表
A.1.1. 组权限
A.2. 持久登陆(Remember-Me)表
A.3. ACL 表
A.3.1. Hypersonic SQL
A.3.1.1. PostgreSQL
B. 安全命名空间
B.1. Web 应用安全- <http> 元素
B.1.1. <http> 属性
B.1.1.1. servlet-api-provision
B.1.1.2. path-type
B.1.1.3. lowercase-comparisons
B.1.1.4. realm
B.1.1.5. entry-point-ref
B.1.1.6. access-decision-manager-ref
B.1.1.7. access-denied-page
B.1.1.8. once-per-request
B.1.1.9. create-session
B.1.2. <access-denied-handler>
B.1.3. <intercept-url> 元素
B.1.3.1. pattern
B.1.3.2. method
B.1.3.3. access
B.1.3.4. requires-channel
B.1.3.5. filters
B.1.4. <port-mappings> 元素
B.1.5. <form-login> 元素
B.1.5.1. login-page
B.1.5.2. login-processing-url
B.1.5.3. default-target-url
B.1.5.4. always-use-default-target
B.1.5.5. authentication-failure-url
B.1.5.6. authentication-success-handler-ref
B.1.5.7. authentication-failure-handler-ref
B.1.6. <http-basic> 元素
B.1.7. <remember-me> 元素
B.1.7.1. data-source-ref
B.1.7.2. token-repository-ref
B.1.7.3. services-ref
B.1.7.4. token-repository-ref
B.1.7.5. key 属性
B.1.7.6. token-validity-seconds
B.1.7.7. user-service-ref
B.1.8. <session-management> 元素
B.1.8.1. session-fixation-protection
B.1.9. <concurrent-control> 元素
B.1.9.1. max-sessions 属性
B.1.9.2. expired-url 属性
B.1.9.3. error-if-maximum-exceeded 属性
B.1.9.4. session-registry-alias 和session-registry-ref 属性
B.1.10. <anonymous> 元素
B.1.11. <x509> 元素
B.1.11.1. subject-principal-regex 属性
B.1.11.2. user-service-ref 属性
B.1.12. <openid-login> 元素
B.1.13. <logout> 元素
B.1.13.1. logout-url 属性
B.1.13.2. logout-success-url 属性
B.1.13.3. invalidate-session 属性
B.1.14. <custom-filter> 元素
B.2. 认证服务
B.2.1. <authentication-manager> 元素
B.2.1.1. <authentication-provider>元素
B.2.1.2. 使用<authentication-provider> 来引用一个AuthenticationProvider Bean
B.3. 方法安全
B.3.1. <global-method-security> 元素
B.3.1.1. secured-annotations 和jsr250-annotations 属性
B.3.1.2. 安全方法使用<protect-pointcut>
B.3.1.3. <after-invocation-provider> 元素
B.3.2. LDAP 命名空间选项
B.3.2.1. 使用<ldap-server> 元素定义LDAP 服务器
B.3.2.2. <ldap-provider> 元素
B.3.2.3. <ldap-user-service> 元素
淘宝网架构解密淘宝网的开源架构
关于淘宝网的架构解密,淘宝网的开源架构。对大型网站架构的理解有很大的帮助!
JVM性能优化(PPT)
很详细的关于Java虚拟机的PPT,对Java虚拟机的学习会有很大的帮助!
Android开发环境搭建
新版android开发环境搭建(图文并茂)!
疯狂Java实战演义(PDF和源代码)(全)
疯狂Java实战演义,这回是全的,希望能给你带来帮助!
JQuery+Hibernate分页
JQuery Hibernate 分页很好的例子
inside java virtual machine(中文名字:深入Java虚拟机)
第1章 Java体系结构介绍
1.1 为什么使用Java
1.2 网络带来的挑战和机遇
1.3 体系结构
1.3.1 Java虚拟机
1.3.2 类装载器的体系结构
1.3.3 Java class文件
1.3.4 Java API
1.3.5 Java程序设计语言
1.4 Java体系结构的代价
1.5 结论
1.6 资源页
第2章 平台无关
2.1 为什么要平台无关
2.2 Java的体系结构对平台无关的支持
2.2.1 Java平台
2.2.2 Java语言
2.3.3 Java class文件
. 2.2.4 可伸缩性
2.3 影响平台无关性的因素
2.3.1 Java平台的部署
2.3.2 Java平台的版本
2.3.3 本地方法
2.3.4 非标准运行时库
2.3.5 对虚拟机的依赖
2.3.6 对用户界面的依赖
2.3.7 Java平台实现中的bug
2.3.8 测试
2.4 平台无关的七个步骤
2.5 平台无关性的策略
2.6 平台无关性和网络移动对象
2.7 资源页
第3章 安全
3.1 为什么需要安全性
3.2 基本沙箱
3.3 类装载器体系结构
3.4 class文件检验器
3.4.1 第一趟:class文件的结构检查
3.4.2 第二趟:类型数据的语义检查
3.4.3 第三趟:字节码验证
3.4.4 第四趟:符号引用的验证
3.4.5 二进制兼容
3.5 Java虚拟机中内置的安全特性
3.6 安全管理器和Java API
3.7 代码签名和认证
3.8 一个代码签名示例
3.9 策略
3.10 保护域
3.11 访问控制器
3.11.1 implies()方法
3.11.2 栈检查示例
3.11.3 一个回答“是”的栈检查
3.11.4 一个回答“不”的栈检查
3.11.5 doPrivileged()方法
3.11.6 doPrivileged()的一个无效使用
3.12 Java安全模型的不足和今后的发展
方向
3.13 和体系结构无关的安全性
3.14 资源页
第4章 网络移动性
4.1 为什么需要网络移动性
4.2 一种新的软件模式
4.3 Java体系结构对网络移动性的支持
4.4 applet:网络移动性代码的示例
4.5 Jini服务对象:网络移动对象的示例
4.5.1 Jini是什么
4.5.2 Jini如何工作
4.5.3 服务对象的优点
4.6 网络移动性:Java设计的中心
4.7 资源页
第5章 Java虚拟机
5.1 Java虚拟机是什么
5.2 Java虚拟机的生命周期
5.3 Java虚拟机的体系结构
5.3.1 数据类型
5.3.2 字长的考量
5.3.3 类装载器子系统
5.3.4 方法区
5.3.5 堆
5.3.6 程序计数器
5.3.7 Java栈
5.3.8 栈帧
5.3.9 本地方法栈
5.3.10 执行引擎
5.3.11 本地方法接口
5.4 真实机器
5.5 一个模拟:“Eternal Math”
5.6 随书光盘
5.7 资源页
第6章 Java class文件
6.1 Java class文件是什么
6.2 class文件的内容
6.3 特殊字符串
6.3.1 全限定名
6.3.2 简单名称
6.3.3 描述符
6.4 常量池
6.4.1 CONSTANT_Utf8_info表
6.4.2 CONSTANT_Integer_info表
6.4.3 CONSTANT_Float_info表
6.4.4 CONSTANT_Long_info表
6.4.5 CONSTANT_Double_info表
6.4.6 CONSTANT_Class_info表
6.4.7 CONSTANT_String_info表
6.4.8 CONSTANT_Fieldref_info表
6.4.9 CONSTANT_Methodref_info表
6.4.10 CONSTANT_InterfaceMethodref_
info表
6.4.11 CONSTANT_NameAndType_info
表
6.5 字段
6.6 方法
6.7 属性
6.7.1 属性格式
6.7.2 Code属性
6.7.3 ConstantValue属性
6.7.4 Deprecated属性
6.7.5 Exceptions属性
6.7.6 InnerClasses属性
6.7.7 LineNumberTable属性
6.7.8 LocalVariableTable属性
6.7.9 SourceFile属性
6.7.10 Synthetic属性
6.8 一个模拟:“Getting Loaded”
6.9 随书光盘
6.10 资源页
第7章 类型的生命周期
7.1 类型装载、连接与初始化
7.1.1 装载
7.1.2 验证
7.1.3 准备
7.1.4 解析
7.1.5 初始化
7.2 对象的生命周期
7.2.1 类实例化
7.2.2 垃圾收集和对象的终结
7.3 卸载类型
7.4 随书光盘
7.5 资源页
第8章 连接模型
8.1 动态连接和解析
8.1.1 解析和动态扩展
8.1.2 类装载器与双亲委派模型
8.1.3 常量池解析
8.1.4 解析CONSTANT_Class_info入口
8.1.5 解析CONSTANT_Fieldref_info
入口
S.1.6 解析CONSTANT_Methodref_info
入口
8.1.7 解析CONSTANT_Interface-
Methodref_info入口
8.1.8 解析CONSTANT_String_info入口
8.1.9 解析其他类型的入口
8.1.10 装载约束
8.1.11 编译时常量解析
8.1.12 直接引用
8.1.13 _quick指令
8.1.14 示例:Salutation程序的连接
8.1.15 示例:Greet程序的动态扩展
8.1.16 使用1.1版本的用户自定义类装
载器
8.1.17 使用1.2版本的用户自定义类装
载器
8.1.18 示例:使用forName()的动态扩展
8.1.19 示例:卸载无法触及的greeter类
8.1.20 示例:类型安全性与装载约束
8.2 随书光盘
8.3 资源页
第9章 垃圾收集
9.1 为什么要使用垃圾收集
9.2 垃圾收集算法
9.3 引用计数收集器
9.4 跟踪收集器
9.5 压缩收集器
9.6 拷贝收集器
9.7 按代收集的收集器
9.8 自适应收集器
9.9 火车算法
9.9.1 车厢、火车和火车站
9.9.2 车厢收集
9.9.3 记忆集合和流行对象
9.10 终结
9.11 对象可触及性的生命周期
9.11.1 引用对象
9.11.2 可触及性状态的变化
9.11.3 缓存、规范映射和临终清理
9.12 一个模拟:“Heap of Fish”
9.12.1 分配鱼
9.12.2 设置引用
9.12.3 垃圾收集
9.12.4 压缩堆
9.13 随书光盘
9.14 资源页
第10章 栈和局部变量操作
10.1 常量入栈操作
10.2 通用栈操作
10.3 把局部变量压入栈
10.4 弹出栈顶部元素,将其赋给局部变量
10.5 wide指令
10.6 一个模拟:“Fibonacci Forever”
10.7 随书光盘
10.8 资源页
第11章 类型转换
11.1 转换操作码
11.2 一个模拟:“Conversion Diversion”
11.3 随书光盘
11.4 资源页
第12章 整数运算
12.1 二进制补码运算
12.2 Inner Int:揭示Java int类型内部性质
的applet
12.3 运算操作码
12.4 一个模拟:“Prime Time”
12.5 随书光盘
12.6 资源页
第13章 逻辑运算
13.1 逻辑操作码
13.2 一个模拟:“Logical Results”
13.3 随书光盘
13.4 资源页
第14章 浮点运算
14.1 浮点数
14.2 Inner Float:揭示Java float类型内部
性质的applet
14.3 浮点模式
14.3.1 浮点值集合
14.3.2 浮点值集的转换
14.3.3 相关规则的本质
14.4 浮点操作码
14.5 一个模拟:“Circle of Squares”
14.6 随书光盘
14.7 资源页
第15章 对象和数组
15.1 关于对象和数组的回顾
15.2 针对对象的操作码
15.3 针对数组的操作码
15.4 一个模拟:“Three—Dimensional
Array”
15.5 随书光盘
15.6 资源页
第16章 控制流
16.1 条件分支
16.2 五条件分支
16.3 使用表的条件分支
16.4 一个模拟:“Saying Tomato”
16.5 随书光盘
16.6 资源页
第17章 异常
17.1 异常的抛出与捕获
17.2 异常表
17.3 一个模拟:“Play Ball!”
17.4 随书光盘
17.5 资源页
第18章 finally子句
18.1 微型子例程
18.2 不对称的调用和返回
18.3 一个模拟:“Hop Around”
18.4 随书光盘
18.5 资源页
第19章 方法的调用与返回
19.1 方法调用
19.1.1 Java方法的调用
19.1.2 本地方法的调用
19.2 方法调用的其他形式
19.3 指令invokespecial
19.3.1 指令invokespecial和[init]()方法
19.3.2 指令invokespecial和私有方法
19.3.3 指令invokespecial和super关键字
19.4 指令invokeinterface
19.5 指令的调用和速度
19.6 方法调用的实例
19.7 从方法中返回
19.8 随书光盘
19.9 资源页
第20章 线程同步
20.1 监视器
20.2 对象锁
20.3 指令集中对同步的支持
20.3.1 同步语句
20.3.2 同步方法
20.4 Object类中的协调支持
20.5 随书光盘
20.6 资源页
附录A 按操作码助记符排列的指令集
附录B 按功能排列的操作码助记符
附录C 按操作码字节值排列的操作码助
记符
附录D Java虚拟机的一个模拟:“Slices
of Pi”
搜索引擎优化(SEO)知识完全手册
搜索引擎优化(SEO)知识完全手册是一本很好的教程。
三十三篇点石精华SEO文档
搜索引擎方面很好的教程,希望能给你带来帮助。
SEO基础知识及操作技巧手册
SEO搜索引擎优化方面很好的教程,希望能给你带来帮助。
SEO搜索引擎优化实操手册
SEO搜索引擎优化方面很好的教程,希望能给你带来帮助。
网站优化必读SEO教程
SEO搜索引擎优化很好的教程,希望能给你带来帮助。
搜索引擎优化(SEO)从入门到精通
SEO搜索引擎优化很好的教程,希望给你带来很好的帮助。
HTML5高级程序设计英文版
本书首先介绍了html5 的历史背景、新的语义标签及与以往html 版本相比的根本变化,同时揭示了html5 背后的设计原理。
HTML5揭秘英文版
本书全面而深入地对HTML5相关的技术进行详细介绍和剖析。“从开始到现在”道出HTML5的坎坷发展史;“HTML5特性检测”介绍了多种针对不同特性的检测方法;“本地存储”揭开了如何把“数据库”搬到客户端的神秘面纱;“离线应用”展示了脱机状态下依然能让Web应用完好无损的神奇技艺;“疯狂的表单”大秀了一把炫酷无比的下一代Web表单……它几乎涵盖了HTML5标准中描述的所有新特性。
HTML5用户指南英文版
本书共分为10章系统全面地介绍了html 5规范的核心内容,以及这些内容在当前浏览器中的支持情况,并告知开发者如何在当前的环境下应用这些功能,开发出漂亮的web应用。
数据库系统实验与课程设计指导书
这是我们老师给我们的资料 个人感觉非常好 对我的帮助很大
数据结构(清华大学出版社)课件
完整精练的课件 穿插思考题和答案解析 你一定满意!
计算机三级 考试辅导
老师的课件简洁但能突出重点 适合初学者和有一定基础的 希望能给大家带来帮助
计算机网络 基础实验
老师的课件简洁但能突出重点 适合初学者和有一定基础的 希望能给大家带来帮助
ASP电子教程 很好的资料
老师的课件简洁但能突出重点 适合初学者和有一定基础的 希望能给大家带来帮助
QC9.0.license
Quality Center9.0 bug测试管理破解license.QC9.0.license
30套经典网页设计模版
30套经典网页设计模版,希望可以给你带来帮助!
开源软件之道(全266页)_5_5
目录回到顶部↑
第1篇 了解开源软件
第1章 开源软件概述 2
1.1 开源软件的理解 2
1.2 开源软件的定义 3
1.3 开源软件定义的意义 5
1.4 开源软件和其他类型软件的比较 6
第2章 开源软件的历史与未来 9
2.1 开源软件的历史 9
2.2 开源运动背后的理想与现实 12
2.2.1 理想主义的兴起 12
2.2.2 技术精英的推动 13
2.2.3 现实业界的需求 14
2.3 开源社区的壮大 15
2.4 开源软件的领袖 16
2.5 开源软件的未来 17
第3章 开源软件的好处 19
3.1 高质量 19
3.2 零许可证费 21
3.3 开放和自由 22
3.4 灵活可定制 22
.3.5 公开透明 23
3.6 良好的学习平台 23
第4章 开源软件的成本 25
4.1 部署和迁移成本 25
4.2 人员和培训成本 26
4.3 管理维护和技术支持成本 27
4.4 风险控制成本 28
第2篇 使用开源软件
第5章 正确使用开源软件 32
5.1 管理体制 32
5.2 法律风险 33
5.2.1 法律因素之著作权 34
5.2.2 法律因素之许可证 35
5.2.3 法律因素之专利 36
5.2.4 问题解析 37
5.2.5 验证著作权,正本清源 38
5.2.6 调查专利,借力打力 40
5.2.7 解读许可证,明察秋毫 41
5.3 成熟度 56
5.3.1 优秀的领导者 57
5.3.2 差异化的开发者社区 57
5.3.3 庞大的优质用户群 58
5.3.4 健康的项目“脉动” 58
5.3.5 健全的安全补丁体制 59
5.3.6 较完善的文档 60
5.4 服务 60
5.5 寻找合适的开源软件 61
第6章 开源软件之语言和平台 63
6.1 harmony 63
6.2 android 66
6.3 python 69
6.4 ruby 72
6.5 php 74
6.6 groovy 76
6.7 perl 78
6.8 flex 80
6.9 openlaszlo 82
第7章 开源软件之框架和库 84
7.1 spring 84
7.2 struts 87
7.3 jboss seam 89
7.4 equinox 91
7.5 hibernate 93
7.6 ibatis 95
7.7 lucene 97
7.8 webkit 99
第8章 开源软件之服务器软件 101
8.1 apache http服务器 101
8.2 tomcat 103
8.3 jetty 104
8.4 geronimo 105
8.5 jboss 108
8.6 glassfish 109
8.7 mysql 111
8.8 postgresql 114
8.9 derby 116
8.10 filezilla server 118
第9章 开源软件之开发工具 120
9.1 eclipse 120
9.2 netbeans 122
9.3 apache ant 124
9.4 apache maven 126
9.5 cvs 128
9.6 subversion 130
9.7 git 131
9.8 bugzilla 133
9.9 junit 135
9.10 testng 137
第10章 开源软件之桌面应用 139
10.1 gnome 139
10.2 openoffice.org 142
10.3 emacs 145
10.4 firefox 147
10.5 thunderbird 150
10.6 gimp 151
10.7 freemind 152
10.8 7-zip 154
第3篇 参与开源项目
第11章 开源社区的基础设施 158
11.1 基础设施 158
11.1.1 主页(home page) 158
11.1.2 代码库(code repository) 158
11.1.3 邮件列表(mailing list) 159
11.1.4 缺陷追踪系统(bug tracking system) 160
11.1.5 wiki 161
11.1.6 其他 161
11.2 开源项目托管网站 162
第12章 开源组织和社区 165
12.1 apache软件基金会 165
12.1.1 apache的历史 165
12.1.2 apache组织结构 166
12.1.3 apache开发模式 169
12.1.4 apache法律问题处理 172
12.1.5 apache项目简介 174
12.1.6 apache运营模式 176
12.2 自由软件基金会 177
12.2.1 fsf的历史 177
12.2.2 fsf的目标 178
12.2.3 fsf组织结构 179
12.2.4 gnu工程 180
12.3 linux kernel社区 181
12.3.1 linux kernel的历史 181
12.3.2 linux kernel社区文化和价值观 185
12.3.3 linux kernel开发模式 186
12.3.4 linux kernel运营模式 188
12.4 eclipse社区 189
12.4.1 eclipse的历史 189
12.4.2 eclipse的发展 190
12.4.3 eclipse组织结构 192
12.4.4 eclipse项目简介 193
12.4.5 eclipse运营模式 196
12.4.6 eclipse con大会 196
12.5 mozilla社区 197
12.5.1 mozilla的历史 197
12.5.2 mozilla组织结构 198
12.5.3 mozilla开发模式 198
12.6 linux相关社区 200
12.6.1 archlinux社区 200
第13章 商业模式与实例 203
13.1 许可证的决定性 203
13.2 商业模式实例 205
13.2.1 增值产品 205
13.2.2 技术支持 207
13.2.3 咨询 211
13.2.4 广告模式 212
13.2.5 软硬件结合 213
13.2.6 双重授权 215
13.2.7 社区模式 216
13.2.8 ubuntu“模式” 216
第14章 参与开源社区 219
14.1 开始加入 219
14.2 社区讨论与工作 220
14.2.1 参与社区讨论 220
14.2.2 参与社区工作 221
14.3 提升自己 225
14.4 礼仪规范 227
14.4.1 撰写邮件的礼仪和规范 227
14.4.2 邮件列表的礼仪和规范 228
14.4.3 发言的礼仪 231
14.5 开源开发的最佳实践 235
14.6 企业参与开源 238
14.6.1 需求 238
14.6.2 风险 238
14.6.3 企业参与开源的策略 239
第15章 开创事业 242
15.1 项目启动与计划 242
15.2 选择正确的许可证 247
15.3 基础设施构建 249
15.3.1 sourceforge托管开源项目基础设施构建 249
15.3.2 google code托管开源项目基础设施构建 259
15.4 宣传与坚持 263
↑折 叠
开源软件之道(全266页)_4_5
目录回到顶部↑
第1篇 了解开源软件
第1章 开源软件概述 2
1.1 开源软件的理解 2
1.2 开源软件的定义 3
1.3 开源软件定义的意义 5
1.4 开源软件和其他类型软件的比较 6
第2章 开源软件的历史与未来 9
2.1 开源软件的历史 9
2.2 开源运动背后的理想与现实 12
2.2.1 理想主义的兴起 12
2.2.2 技术精英的推动 13
2.2.3 现实业界的需求 14
2.3 开源社区的壮大 15
2.4 开源软件的领袖 16
2.5 开源软件的未来 17
第3章 开源软件的好处 19
3.1 高质量 19
3.2 零许可证费 21
3.3 开放和自由 22
3.4 灵活可定制 22
.3.5 公开透明 23
3.6 良好的学习平台 23
第4章 开源软件的成本 25
4.1 部署和迁移成本 25
4.2 人员和培训成本 26
4.3 管理维护和技术支持成本 27
4.4 风险控制成本 28
第2篇 使用开源软件
第5章 正确使用开源软件 32
5.1 管理体制 32
5.2 法律风险 33
5.2.1 法律因素之著作权 34
5.2.2 法律因素之许可证 35
5.2.3 法律因素之专利 36
5.2.4 问题解析 37
5.2.5 验证著作权,正本清源 38
5.2.6 调查专利,借力打力 40
5.2.7 解读许可证,明察秋毫 41
5.3 成熟度 56
5.3.1 优秀的领导者 57
5.3.2 差异化的开发者社区 57
5.3.3 庞大的优质用户群 58
5.3.4 健康的项目“脉动” 58
5.3.5 健全的安全补丁体制 59
5.3.6 较完善的文档 60
5.4 服务 60
5.5 寻找合适的开源软件 61
第6章 开源软件之语言和平台 63
6.1 harmony 63
6.2 android 66
6.3 python 69
6.4 ruby 72
6.5 php 74
6.6 groovy 76
6.7 perl 78
6.8 flex 80
6.9 openlaszlo 82
第7章 开源软件之框架和库 84
7.1 spring 84
7.2 struts 87
7.3 jboss seam 89
7.4 equinox 91
7.5 hibernate 93
7.6 ibatis 95
7.7 lucene 97
7.8 webkit 99
第8章 开源软件之服务器软件 101
8.1 apache http服务器 101
8.2 tomcat 103
8.3 jetty 104
8.4 geronimo 105
8.5 jboss 108
8.6 glassfish 109
8.7 mysql 111
8.8 postgresql 114
8.9 derby 116
8.10 filezilla server 118
第9章 开源软件之开发工具 120
9.1 eclipse 120
9.2 netbeans 122
9.3 apache ant 124
9.4 apache maven 126
9.5 cvs 128
9.6 subversion 130
9.7 git 131
9.8 bugzilla 133
9.9 junit 135
9.10 testng 137
第10章 开源软件之桌面应用 139
10.1 gnome 139
10.2 openoffice.org 142
10.3 emacs 145
10.4 firefox 147
10.5 thunderbird 150
10.6 gimp 151
10.7 freemind 152
10.8 7-zip 154
第3篇 参与开源项目
第11章 开源社区的基础设施 158
11.1 基础设施 158
11.1.1 主页(home page) 158
11.1.2 代码库(code repository) 158
11.1.3 邮件列表(mailing list) 159
11.1.4 缺陷追踪系统(bug tracking system) 160
11.1.5 wiki 161
11.1.6 其他 161
11.2 开源项目托管网站 162
第12章 开源组织和社区 165
12.1 apache软件基金会 165
12.1.1 apache的历史 165
12.1.2 apache组织结构 166
12.1.3 apache开发模式 169
12.1.4 apache法律问题处理 172
12.1.5 apache项目简介 174
12.1.6 apache运营模式 176
12.2 自由软件基金会 177
12.2.1 fsf的历史 177
12.2.2 fsf的目标 178
12.2.3 fsf组织结构 179
12.2.4 gnu工程 180
12.3 linux kernel社区 181
12.3.1 linux kernel的历史 181
12.3.2 linux kernel社区文化和价值观 185
12.3.3 linux kernel开发模式 186
12.3.4 linux kernel运营模式 188
12.4 eclipse社区 189
12.4.1 eclipse的历史 189
12.4.2 eclipse的发展 190
12.4.3 eclipse组织结构 192
12.4.4 eclipse项目简介 193
12.4.5 eclipse运营模式 196
12.4.6 eclipse con大会 196
12.5 mozilla社区 197
12.5.1 mozilla的历史 197
12.5.2 mozilla组织结构 198
12.5.3 mozilla开发模式 198
12.6 linux相关社区 200
12.6.1 archlinux社区 200
第13章 商业模式与实例 203
13.1 许可证的决定性 203
13.2 商业模式实例 205
13.2.1 增值产品 205
13.2.2 技术支持 207
13.2.3 咨询 211
13.2.4 广告模式 212
13.2.5 软硬件结合 213
13.2.6 双重授权 215
13.2.7 社区模式 216
13.2.8 ubuntu“模式” 216
第14章 参与开源社区 219
14.1 开始加入 219
14.2 社区讨论与工作 220
14.2.1 参与社区讨论 220
14.2.2 参与社区工作 221
14.3 提升自己 225
14.4 礼仪规范 227
14.4.1 撰写邮件的礼仪和规范 227
14.4.2 邮件列表的礼仪和规范 228
14.4.3 发言的礼仪 231
14.5 开源开发的最佳实践 235
14.6 企业参与开源 238
14.6.1 需求 238
14.6.2 风险 238
14.6.3 企业参与开源的策略 239
第15章 开创事业 242
15.1 项目启动与计划 242
15.2 选择正确的许可证 247
15.3 基础设施构建 249
15.3.1 sourceforge托管开源项目基础设施构建 249
15.3.2 google code托管开源项目基础设施构建 259
15.4 宣传与坚持 263
↑折 叠
开源软件之道(全266页)_3_5
目录回到顶部↑
第1篇 了解开源软件
第1章 开源软件概述 2
1.1 开源软件的理解 2
1.2 开源软件的定义 3
1.3 开源软件定义的意义 5
1.4 开源软件和其他类型软件的比较 6
第2章 开源软件的历史与未来 9
2.1 开源软件的历史 9
2.2 开源运动背后的理想与现实 12
2.2.1 理想主义的兴起 12
2.2.2 技术精英的推动 13
2.2.3 现实业界的需求 14
2.3 开源社区的壮大 15
2.4 开源软件的领袖 16
2.5 开源软件的未来 17
第3章 开源软件的好处 19
3.1 高质量 19
3.2 零许可证费 21
3.3 开放和自由 22
3.4 灵活可定制 22
.3.5 公开透明 23
3.6 良好的学习平台 23
第4章 开源软件的成本 25
4.1 部署和迁移成本 25
4.2 人员和培训成本 26
4.3 管理维护和技术支持成本 27
4.4 风险控制成本 28
第2篇 使用开源软件
第5章 正确使用开源软件 32
5.1 管理体制 32
5.2 法律风险 33
5.2.1 法律因素之著作权 34
5.2.2 法律因素之许可证 35
5.2.3 法律因素之专利 36
5.2.4 问题解析 37
5.2.5 验证著作权,正本清源 38
5.2.6 调查专利,借力打力 40
5.2.7 解读许可证,明察秋毫 41
5.3 成熟度 56
5.3.1 优秀的领导者 57
5.3.2 差异化的开发者社区 57
5.3.3 庞大的优质用户群 58
5.3.4 健康的项目“脉动” 58
5.3.5 健全的安全补丁体制 59
5.3.6 较完善的文档 60
5.4 服务 60
5.5 寻找合适的开源软件 61
第6章 开源软件之语言和平台 63
6.1 harmony 63
6.2 android 66
6.3 python 69
6.4 ruby 72
6.5 php 74
6.6 groovy 76
6.7 perl 78
6.8 flex 80
6.9 openlaszlo 82
第7章 开源软件之框架和库 84
7.1 spring 84
7.2 struts 87
7.3 jboss seam 89
7.4 equinox 91
7.5 hibernate 93
7.6 ibatis 95
7.7 lucene 97
7.8 webkit 99
第8章 开源软件之服务器软件 101
8.1 apache http服务器 101
8.2 tomcat 103
8.3 jetty 104
8.4 geronimo 105
8.5 jboss 108
8.6 glassfish 109
8.7 mysql 111
8.8 postgresql 114
8.9 derby 116
8.10 filezilla server 118
第9章 开源软件之开发工具 120
9.1 eclipse 120
9.2 netbeans 122
9.3 apache ant 124
9.4 apache maven 126
9.5 cvs 128
9.6 subversion 130
9.7 git 131
9.8 bugzilla 133
9.9 junit 135
9.10 testng 137
第10章 开源软件之桌面应用 139
10.1 gnome 139
10.2 openoffice.org 142
10.3 emacs 145
10.4 firefox 147
10.5 thunderbird 150
10.6 gimp 151
10.7 freemind 152
10.8 7-zip 154
第3篇 参与开源项目
第11章 开源社区的基础设施 158
11.1 基础设施 158
11.1.1 主页(home page) 158
11.1.2 代码库(code repository) 158
11.1.3 邮件列表(mailing list) 159
11.1.4 缺陷追踪系统(bug tracking system) 160
11.1.5 wiki 161
11.1.6 其他 161
11.2 开源项目托管网站 162
第12章 开源组织和社区 165
12.1 apache软件基金会 165
12.1.1 apache的历史 165
12.1.2 apache组织结构 166
12.1.3 apache开发模式 169
12.1.4 apache法律问题处理 172
12.1.5 apache项目简介 174
12.1.6 apache运营模式 176
12.2 自由软件基金会 177
12.2.1 fsf的历史 177
12.2.2 fsf的目标 178
12.2.3 fsf组织结构 179
12.2.4 gnu工程 180
12.3 linux kernel社区 181
12.3.1 linux kernel的历史 181
12.3.2 linux kernel社区文化和价值观 185
12.3.3 linux kernel开发模式 186
12.3.4 linux kernel运营模式 188
12.4 eclipse社区 189
12.4.1 eclipse的历史 189
12.4.2 eclipse的发展 190
12.4.3 eclipse组织结构 192
12.4.4 eclipse项目简介 193
12.4.5 eclipse运营模式 196
12.4.6 eclipse con大会 196
12.5 mozilla社区 197
12.5.1 mozilla的历史 197
12.5.2 mozilla组织结构 198
12.5.3 mozilla开发模式 198
12.6 linux相关社区 200
12.6.1 archlinux社区 200
第13章 商业模式与实例 203
13.1 许可证的决定性 203
13.2 商业模式实例 205
13.2.1 增值产品 205
13.2.2 技术支持 207
13.2.3 咨询 211
13.2.4 广告模式 212
13.2.5 软硬件结合 213
13.2.6 双重授权 215
13.2.7 社区模式 216
13.2.8 ubuntu“模式” 216
第14章 参与开源社区 219
14.1 开始加入 219
14.2 社区讨论与工作 220
14.2.1 参与社区讨论 220
14.2.2 参与社区工作 221
14.3 提升自己 225
14.4 礼仪规范 227
14.4.1 撰写邮件的礼仪和规范 227
14.4.2 邮件列表的礼仪和规范 228
14.4.3 发言的礼仪 231
14.5 开源开发的最佳实践 235
14.6 企业参与开源 238
14.6.1 需求 238
14.6.2 风险 238
14.6.3 企业参与开源的策略 239
第15章 开创事业 242
15.1 项目启动与计划 242
15.2 选择正确的许可证 247
15.3 基础设施构建 249
15.3.1 sourceforge托管开源项目基础设施构建 249
15.3.2 google code托管开源项目基础设施构建 259
15.4 宣传与坚持 263
↑折 叠
开源软件之道(全266页)_2_5
目录回到顶部↑
第1篇 了解开源软件
第1章 开源软件概述 2
1.1 开源软件的理解 2
1.2 开源软件的定义 3
1.3 开源软件定义的意义 5
1.4 开源软件和其他类型软件的比较 6
第2章 开源软件的历史与未来 9
2.1 开源软件的历史 9
2.2 开源运动背后的理想与现实 12
2.2.1 理想主义的兴起 12
2.2.2 技术精英的推动 13
2.2.3 现实业界的需求 14
2.3 开源社区的壮大 15
2.4 开源软件的领袖 16
2.5 开源软件的未来 17
第3章 开源软件的好处 19
3.1 高质量 19
3.2 零许可证费 21
3.3 开放和自由 22
3.4 灵活可定制 22
.3.5 公开透明 23
3.6 良好的学习平台 23
第4章 开源软件的成本 25
4.1 部署和迁移成本 25
4.2 人员和培训成本 26
4.3 管理维护和技术支持成本 27
4.4 风险控制成本 28
第2篇 使用开源软件
第5章 正确使用开源软件 32
5.1 管理体制 32
5.2 法律风险 33
5.2.1 法律因素之著作权 34
5.2.2 法律因素之许可证 35
5.2.3 法律因素之专利 36
5.2.4 问题解析 37
5.2.5 验证著作权,正本清源 38
5.2.6 调查专利,借力打力 40
5.2.7 解读许可证,明察秋毫 41
5.3 成熟度 56
5.3.1 优秀的领导者 57
5.3.2 差异化的开发者社区 57
5.3.3 庞大的优质用户群 58
5.3.4 健康的项目“脉动” 58
5.3.5 健全的安全补丁体制 59
5.3.6 较完善的文档 60
5.4 服务 60
5.5 寻找合适的开源软件 61
第6章 开源软件之语言和平台 63
6.1 harmony 63
6.2 android 66
6.3 python 69
6.4 ruby 72
6.5 php 74
6.6 groovy 76
6.7 perl 78
6.8 flex 80
6.9 openlaszlo 82
第7章 开源软件之框架和库 84
7.1 spring 84
7.2 struts 87
7.3 jboss seam 89
7.4 equinox 91
7.5 hibernate 93
7.6 ibatis 95
7.7 lucene 97
7.8 webkit 99
第8章 开源软件之服务器软件 101
8.1 apache http服务器 101
8.2 tomcat 103
8.3 jetty 104
8.4 geronimo 105
8.5 jboss 108
8.6 glassfish 109
8.7 mysql 111
8.8 postgresql 114
8.9 derby 116
8.10 filezilla server 118
第9章 开源软件之开发工具 120
9.1 eclipse 120
9.2 netbeans 122
9.3 apache ant 124
9.4 apache maven 126
9.5 cvs 128
9.6 subversion 130
9.7 git 131
9.8 bugzilla 133
9.9 junit 135
9.10 testng 137
第10章 开源软件之桌面应用 139
10.1 gnome 139
10.2 openoffice.org 142
10.3 emacs 145
10.4 firefox 147
10.5 thunderbird 150
10.6 gimp 151
10.7 freemind 152
10.8 7-zip 154
第3篇 参与开源项目
第11章 开源社区的基础设施 158
11.1 基础设施 158
11.1.1 主页(home page) 158
11.1.2 代码库(code repository) 158
11.1.3 邮件列表(mailing list) 159
11.1.4 缺陷追踪系统(bug tracking system) 160
11.1.5 wiki 161
11.1.6 其他 161
11.2 开源项目托管网站 162
第12章 开源组织和社区 165
12.1 apache软件基金会 165
12.1.1 apache的历史 165
12.1.2 apache组织结构 166
12.1.3 apache开发模式 169
12.1.4 apache法律问题处理 172
12.1.5 apache项目简介 174
12.1.6 apache运营模式 176
12.2 自由软件基金会 177
12.2.1 fsf的历史 177
12.2.2 fsf的目标 178
12.2.3 fsf组织结构 179
12.2.4 gnu工程 180
12.3 linux kernel社区 181
12.3.1 linux kernel的历史 181
12.3.2 linux kernel社区文化和价值观 185
12.3.3 linux kernel开发模式 186
12.3.4 linux kernel运营模式 188
12.4 eclipse社区 189
12.4.1 eclipse的历史 189
12.4.2 eclipse的发展 190
12.4.3 eclipse组织结构 192
12.4.4 eclipse项目简介 193
12.4.5 eclipse运营模式 196
12.4.6 eclipse con大会 196
12.5 mozilla社区 197
12.5.1 mozilla的历史 197
12.5.2 mozilla组织结构 198
12.5.3 mozilla开发模式 198
12.6 linux相关社区 200
12.6.1 archlinux社区 200
第13章 商业模式与实例 203
13.1 许可证的决定性 203
13.2 商业模式实例 205
13.2.1 增值产品 205
13.2.2 技术支持 207
13.2.3 咨询 211
13.2.4 广告模式 212
13.2.5 软硬件结合 213
13.2.6 双重授权 215
13.2.7 社区模式 216
13.2.8 ubuntu“模式” 216
第14章 参与开源社区 219
14.1 开始加入 219
14.2 社区讨论与工作 220
14.2.1 参与社区讨论 220
14.2.2 参与社区工作 221
14.3 提升自己 225
14.4 礼仪规范 227
14.4.1 撰写邮件的礼仪和规范 227
14.4.2 邮件列表的礼仪和规范 228
14.4.3 发言的礼仪 231
14.5 开源开发的最佳实践 235
14.6 企业参与开源 238
14.6.1 需求 238
14.6.2 风险 238
14.6.3 企业参与开源的策略 239
第15章 开创事业 242
15.1 项目启动与计划 242
15.2 选择正确的许可证 247
15.3 基础设施构建 249
15.3.1 sourceforge托管开源项目基础设施构建 249
15.3.2 google code托管开源项目基础设施构建 259
15.4 宣传与坚持 263
↑折 叠
开源软件之道(全266页)_1_5
目录回到顶部↑
第1篇 了解开源软件
第1章 开源软件概述 2
1.1 开源软件的理解 2
1.2 开源软件的定义 3
1.3 开源软件定义的意义 5
1.4 开源软件和其他类型软件的比较 6
第2章 开源软件的历史与未来 9
2.1 开源软件的历史 9
2.2 开源运动背后的理想与现实 12
2.2.1 理想主义的兴起 12
2.2.2 技术精英的推动 13
2.2.3 现实业界的需求 14
2.3 开源社区的壮大 15
2.4 开源软件的领袖 16
2.5 开源软件的未来 17
第3章 开源软件的好处 19
3.1 高质量 19
3.2 零许可证费 21
3.3 开放和自由 22
3.4 灵活可定制 22
.3.5 公开透明 23
3.6 良好的学习平台 23
第4章 开源软件的成本 25
4.1 部署和迁移成本 25
4.2 人员和培训成本 26
4.3 管理维护和技术支持成本 27
4.4 风险控制成本 28
第2篇 使用开源软件
第5章 正确使用开源软件 32
5.1 管理体制 32
5.2 法律风险 33
5.2.1 法律因素之著作权 34
5.2.2 法律因素之许可证 35
5.2.3 法律因素之专利 36
5.2.4 问题解析 37
5.2.5 验证著作权,正本清源 38
5.2.6 调查专利,借力打力 40
5.2.7 解读许可证,明察秋毫 41
5.3 成熟度 56
5.3.1 优秀的领导者 57
5.3.2 差异化的开发者社区 57
5.3.3 庞大的优质用户群 58
5.3.4 健康的项目“脉动” 58
5.3.5 健全的安全补丁体制 59
5.3.6 较完善的文档 60
5.4 服务 60
5.5 寻找合适的开源软件 61
第6章 开源软件之语言和平台 63
6.1 harmony 63
6.2 android 66
6.3 python 69
6.4 ruby 72
6.5 php 74
6.6 groovy 76
6.7 perl 78
6.8 flex 80
6.9 openlaszlo 82
第7章 开源软件之框架和库 84
7.1 spring 84
7.2 struts 87
7.3 jboss seam 89
7.4 equinox 91
7.5 hibernate 93
7.6 ibatis 95
7.7 lucene 97
7.8 webkit 99
第8章 开源软件之服务器软件 101
8.1 apache http服务器 101
8.2 tomcat 103
8.3 jetty 104
8.4 geronimo 105
8.5 jboss 108
8.6 glassfish 109
8.7 mysql 111
8.8 postgresql 114
8.9 derby 116
8.10 filezilla server 118
第9章 开源软件之开发工具 120
9.1 eclipse 120
9.2 netbeans 122
9.3 apache ant 124
9.4 apache maven 126
9.5 cvs 128
9.6 subversion 130
9.7 git 131
9.8 bugzilla 133
9.9 junit 135
9.10 testng 137
第10章 开源软件之桌面应用 139
10.1 gnome 139
10.2 openoffice.org 142
10.3 emacs 145
10.4 firefox 147
10.5 thunderbird 150
10.6 gimp 151
10.7 freemind 152
10.8 7-zip 154
第3篇 参与开源项目
第11章 开源社区的基础设施 158
11.1 基础设施 158
11.1.1 主页(home page) 158
11.1.2 代码库(code repository) 158
11.1.3 邮件列表(mailing list) 159
11.1.4 缺陷追踪系统(bug tracking system) 160
11.1.5 wiki 161
11.1.6 其他 161
11.2 开源项目托管网站 162
第12章 开源组织和社区 165
12.1 apache软件基金会 165
12.1.1 apache的历史 165
12.1.2 apache组织结构 166
12.1.3 apache开发模式 169
12.1.4 apache法律问题处理 172
12.1.5 apache项目简介 174
12.1.6 apache运营模式 176
12.2 自由软件基金会 177
12.2.1 fsf的历史 177
12.2.2 fsf的目标 178
12.2.3 fsf组织结构 179
12.2.4 gnu工程 180
12.3 linux kernel社区 181
12.3.1 linux kernel的历史 181
12.3.2 linux kernel社区文化和价值观 185
12.3.3 linux kernel开发模式 186
12.3.4 linux kernel运营模式 188
12.4 eclipse社区 189
12.4.1 eclipse的历史 189
12.4.2 eclipse的发展 190
12.4.3 eclipse组织结构 192
12.4.4 eclipse项目简介 193
12.4.5 eclipse运营模式 196
12.4.6 eclipse con大会 196
12.5 mozilla社区 197
12.5.1 mozilla的历史 197
12.5.2 mozilla组织结构 198
12.5.3 mozilla开发模式 198
12.6 linux相关社区 200
12.6.1 archlinux社区 200
第13章 商业模式与实例 203
13.1 许可证的决定性 203
13.2 商业模式实例 205
13.2.1 增值产品 205
13.2.2 技术支持 207
13.2.3 咨询 211
13.2.4 广告模式 212
13.2.5 软硬件结合 213
13.2.6 双重授权 215
13.2.7 社区模式 216
13.2.8 ubuntu“模式” 216
第14章 参与开源社区 219
14.1 开始加入 219
14.2 社区讨论与工作 220
14.2.1 参与社区讨论 220
14.2.2 参与社区工作 221
14.3 提升自己 225
14.4 礼仪规范 227
14.4.1 撰写邮件的礼仪和规范 227
14.4.2 邮件列表的礼仪和规范 228
14.4.3 发言的礼仪 231
14.5 开源开发的最佳实践 235
14.6 企业参与开源 238
14.6.1 需求 238
14.6.2 风险 238
14.6.3 企业参与开源的策略 239
第15章 开创事业 242
15.1 项目启动与计划 242
15.2 选择正确的许可证 247
15.3 基础设施构建 249
15.3.1 sourceforge托管开源项目基础设施构建 249
15.3.2 google code托管开源项目基础设施构建 259
15.4 宣传与坚持 263
↑折 叠
构建高性能Web站点_郭欣_3_3
目录回到顶部↑
第1章 绪论. 1
1.1 等待的真相 1
1.2 瓶颈在哪里 2
1.3 增加带宽 3
1.4 减少网页中的http请求 4
1.5 加快服务器脚本计算速度 4
1.6 使用动态内容缓存 5
1.7 使用数据缓存 5
1.8 将动态内容静态化 6
1.9 更换web服务器软件 6
1.10 页面组件分离 7
1.11 合理部署服务器 7
1.12 使用负载均衡 8
1.13 优化数据库 8
1.14 考虑可扩展性 9
1.15 减少视觉等待 10
第2章 数据的网络传输 11
2.1 分层网络模型 11
2.2 带宽 22
2.3 响应时间 28
.2.4 互联互通 33
第3章 服务器并发处理能力 35
3.1 吞吐率 35
3.2 cpu并发计算 49
3.3 系统调用 60
3.4 内存分配 63
3.5 持久连接 65
3.6 i/o模型 68
3.7 服务器并发策略 81
第4章 动态内容缓存 96
4.1 重复的开销 96
4.2 缓存与速度 98
4.3 页面缓存 98
4.4 局部无缓存 112
4.5 静态化内容 112
第5章 动态脚本加速 121
5.1 opcode缓存 121
5.2 解释器扩展模块 132
5.3 脚本跟踪与分析 133
第6章 浏览器缓存 143
6.1 别忘了浏览器 143
6.2 缓存协商 147
6.3 彻底消灭请求 160
第7章 web服务器缓存 167
7.1 url映射 167
7.2 缓存响应内容 168
7.3 缓存文件描述符 175
第8章 反向代理缓存 178
8.1 传统代理 178
8.2 何为反向 179
8.3 在反向代理上创建缓存 180
8.4 小心穿过代理 202
8.5 流量分配 204
第9章 web组件分离 205
9.1 备受争议的分离.. 205
9.2 因材施教 206
9.3 拥有不同的域名 207
9.4 浏览器并发数 210
9.5 发挥各自的潜力 212
第10章 分布式缓存 220
10.1 数据库的前端缓存区 220
10.2 使用memcached 221
10.3 读操作缓存 225
10.4 写操作缓存 229
10.5 监控状态 232
10.6 缓存扩展 234
第11章 数据库性能优化 238
11.1 友好的状态报告 239
11.2 正确使用索引 241
11.3 锁定与等待 255
11.4 事务性表的性能 263
11.5 使用查询缓存 264
11.6 临时表 266
11.7 线程池 266
11.8 反范式化设计 267
11.9 放弃关系型数据库 269
第12章 web负载均衡 272
12.1 一些思考 272
12.2 http重定向 275
12.3 dns负载均衡 284
12.4 反向代理负载均衡 292
12.5 ip负载均衡 305
12.6 直接路由 317
12.7 ip隧道 325
12.8 考虑可用性 325
第13章 共享文件系统 328
13.1 网络共享 328
13.2 nfs 330
13.3 局限性 335
第14章 内容分发和同步 337
14.1 复制 337
14.2 ssh 338
14.3 webdav 342
14.4 rsync 342
14.5 hash tree 344
14.6 分发还是同步 345
14.7 反向代理 346
第15章 分布式文件系统 348
15.1 文件系统 348
15.2 存储节点和追踪器 350
15.3 mogilefs 352
第16章 数据库扩展 362
16.1 复制和分离 362
16.2 垂直分区 366
16.3 水平分区 367
第17章 分布式计算 374
17.1 异步计算 374
17.2 并行计算 379
第18章 性能监控 384
18.1 实时监控 384
18.2 监控代理 386
18.3 系统监控 388
18.4 服务监控 391
18.5 响应时间监控 393
参考文献 397
索引... 399
↑折 叠
构建高性能Web站点_郭欣_2_3
目录回到顶部↑
第1章 绪论. 1
1.1 等待的真相 1
1.2 瓶颈在哪里 2
1.3 增加带宽 3
1.4 减少网页中的http请求 4
1.5 加快服务器脚本计算速度 4
1.6 使用动态内容缓存 5
1.7 使用数据缓存 5
1.8 将动态内容静态化 6
1.9 更换web服务器软件 6
1.10 页面组件分离 7
1.11 合理部署服务器 7
1.12 使用负载均衡 8
1.13 优化数据库 8
1.14 考虑可扩展性 9
1.15 减少视觉等待 10
第2章 数据的网络传输 11
2.1 分层网络模型 11
2.2 带宽 22
2.3 响应时间 28
.2.4 互联互通 33
第3章 服务器并发处理能力 35
3.1 吞吐率 35
3.2 cpu并发计算 49
3.3 系统调用 60
3.4 内存分配 63
3.5 持久连接 65
3.6 i/o模型 68
3.7 服务器并发策略 81
第4章 动态内容缓存 96
4.1 重复的开销 96
4.2 缓存与速度 98
4.3 页面缓存 98
4.4 局部无缓存 112
4.5 静态化内容 112
第5章 动态脚本加速 121
5.1 opcode缓存 121
5.2 解释器扩展模块 132
5.3 脚本跟踪与分析 133
第6章 浏览器缓存 143
6.1 别忘了浏览器 143
6.2 缓存协商 147
6.3 彻底消灭请求 160
第7章 web服务器缓存 167
7.1 url映射 167
7.2 缓存响应内容 168
7.3 缓存文件描述符 175
第8章 反向代理缓存 178
8.1 传统代理 178
8.2 何为反向 179
8.3 在反向代理上创建缓存 180
8.4 小心穿过代理 202
8.5 流量分配 204
第9章 web组件分离 205
9.1 备受争议的分离.. 205
9.2 因材施教 206
9.3 拥有不同的域名 207
9.4 浏览器并发数 210
9.5 发挥各自的潜力 212
第10章 分布式缓存 220
10.1 数据库的前端缓存区 220
10.2 使用memcached 221
10.3 读操作缓存 225
10.4 写操作缓存 229
10.5 监控状态 232
10.6 缓存扩展 234
第11章 数据库性能优化 238
11.1 友好的状态报告 239
11.2 正确使用索引 241
11.3 锁定与等待 255
11.4 事务性表的性能 263
11.5 使用查询缓存 264
11.6 临时表 266
11.7 线程池 266
11.8 反范式化设计 267
11.9 放弃关系型数据库 269
第12章 web负载均衡 272
12.1 一些思考 272
12.2 http重定向 275
12.3 dns负载均衡 284
12.4 反向代理负载均衡 292
12.5 ip负载均衡 305
12.6 直接路由 317
12.7 ip隧道 325
12.8 考虑可用性 325
第13章 共享文件系统 328
13.1 网络共享 328
13.2 nfs 330
13.3 局限性 335
第14章 内容分发和同步 337
14.1 复制 337
14.2 ssh 338
14.3 webdav 342
14.4 rsync 342
14.5 hash tree 344
14.6 分发还是同步 345
14.7 反向代理 346
第15章 分布式文件系统 348
15.1 文件系统 348
15.2 存储节点和追踪器 350
15.3 mogilefs 352
第16章 数据库扩展 362
16.1 复制和分离 362
16.2 垂直分区 366
16.3 水平分区 367
第17章 分布式计算 374
17.1 异步计算 374
17.2 并行计算 379
第18章 性能监控 384
18.1 实时监控 384
18.2 监控代理 386
18.3 系统监控 388
18.4 服务监控 391
18.5 响应时间监控 393
参考文献 397
索引... 399
↑折 叠
构建高性能Web站点_郭欣_1_3
目录回到顶部↑
第1章 绪论. 1
1.1 等待的真相 1
1.2 瓶颈在哪里 2
1.3 增加带宽 3
1.4 减少网页中的http请求 4
1.5 加快服务器脚本计算速度 4
1.6 使用动态内容缓存 5
1.7 使用数据缓存 5
1.8 将动态内容静态化 6
1.9 更换web服务器软件 6
1.10 页面组件分离 7
1.11 合理部署服务器 7
1.12 使用负载均衡 8
1.13 优化数据库 8
1.14 考虑可扩展性 9
1.15 减少视觉等待 10
第2章 数据的网络传输 11
2.1 分层网络模型 11
2.2 带宽 22
2.3 响应时间 28
.2.4 互联互通 33
第3章 服务器并发处理能力 35
3.1 吞吐率 35
3.2 cpu并发计算 49
3.3 系统调用 60
3.4 内存分配 63
3.5 持久连接 65
3.6 i/o模型 68
3.7 服务器并发策略 81
第4章 动态内容缓存 96
4.1 重复的开销 96
4.2 缓存与速度 98
4.3 页面缓存 98
4.4 局部无缓存 112
4.5 静态化内容 112
第5章 动态脚本加速 121
5.1 opcode缓存 121
5.2 解释器扩展模块 132
5.3 脚本跟踪与分析 133
第6章 浏览器缓存 143
6.1 别忘了浏览器 143
6.2 缓存协商 147
6.3 彻底消灭请求 160
第7章 web服务器缓存 167
7.1 url映射 167
7.2 缓存响应内容 168
7.3 缓存文件描述符 175
第8章 反向代理缓存 178
8.1 传统代理 178
8.2 何为反向 179
8.3 在反向代理上创建缓存 180
8.4 小心穿过代理 202
8.5 流量分配 204
第9章 web组件分离 205
9.1 备受争议的分离.. 205
9.2 因材施教 206
9.3 拥有不同的域名 207
9.4 浏览器并发数 210
9.5 发挥各自的潜力 212
第10章 分布式缓存 220
10.1 数据库的前端缓存区 220
10.2 使用memcached 221
10.3 读操作缓存 225
10.4 写操作缓存 229
10.5 监控状态 232
10.6 缓存扩展 234
第11章 数据库性能优化 238
11.1 友好的状态报告 239
11.2 正确使用索引 241
11.3 锁定与等待 255
11.4 事务性表的性能 263
11.5 使用查询缓存 264
11.6 临时表 266
11.7 线程池 266
11.8 反范式化设计 267
11.9 放弃关系型数据库 269
第12章 web负载均衡 272
12.1 一些思考 272
12.2 http重定向 275
12.3 dns负载均衡 284
12.4 反向代理负载均衡 292
12.5 ip负载均衡 305
12.6 直接路由 317
12.7 ip隧道 325
12.8 考虑可用性 325
第13章 共享文件系统 328
13.1 网络共享 328
13.2 nfs 330
13.3 局限性 335
第14章 内容分发和同步 337
14.1 复制 337
14.2 ssh 338
14.3 webdav 342
14.4 rsync 342
14.5 hash tree 344
14.6 分发还是同步 345
14.7 反向代理 346
第15章 分布式文件系统 348
15.1 文件系统 348
15.2 存储节点和追踪器 350
15.3 mogilefs 352
第16章 数据库扩展 362
16.1 复制和分离 362
16.2 垂直分区 366
16.3 水平分区 367
第17章 分布式计算 374
17.1 异步计算 374
17.2 并行计算 379
第18章 性能监控 384
18.1 实时监控 384
18.2 监控代理 386
18.3 系统监控 388
18.4 服务监控 391
18.5 响应时间监控 393
参考文献 397
索引... 399
↑折 叠
数据结构与算法分析-Java语言描述(第2版)_2_2
目录回到顶部↑
出版者的话
译者序
前言
第1章 引论
1.1 本书讨论的内容
1.2 数学知识复习
1.2.1 指数
1.2.2 对数
1.2.3 级数
1.2.4 模运算
1.2.5 证明的方法
1.3 递归简论
1.4 实现泛型特性构件pre-java5
1.4.1 使用object表示泛型
1.4.2 基本类型的包装
1.4.3 使用接口类型表示泛型
1.4.4 数组类型的兼容性
1.5 利用java5泛性实现泛型特性成分
1.5.1 简单的泛型类和接口
1.5.2 自动装箱/拆箱
. 1.5.3 带有限制的通配符
1.5.4 泛型static方法
1.5.5 类型限界
1.5.6 类型擦除
1.5.7 对于泛型的限制
1.6 函数对象
小结
练习
参考文献
第2章 算法分析
2.1 数学基础
2.2 模型
2.3 要分析的问题
2.4 运行时间计算
2.4.1 一个简单的例子
2.4.2 一般法则
2.4.3 最大子序列和问题的求解
2.4.4 运行时间中的对数
2.4.5 检验你的分析
2.4.6 分析结果的准确性
小结
练习
参考文献
第3章 表、栈和队列
3.1 抽象数据类型
3.2 表adt
3.2.1 表的简单数组实现
3.2.2 简单链表
3.3 javacollectionsapi中的表
3.3.1 collection接口
3.3.2 iterator接口
3.3.3 list接口、arraylist类和linkedlist类
3.3.4 例:remove方法对linkedlist类的使用
3.3.5 关于listiterator接口
3.4 arraylist类的实现
3.4.1 基本类
3.4.2 迭代器、java嵌套类和内部类
3.5 linkedlist类的实现
3.6 栈adt
3.6.1 栈模型
3.6.2 栈的实现
3.6.3 应用
3.7 队列adt
3.7.1 队列模型
3.7.2 队列的数组实现
3.7.3 队列的应用
小结
练习
第4章 树
4.1 预备知识
4.1.1 树的实现
4.1.2 树的遍历及应用
4.2 二叉树
4.2.1 实现
4.2.2 例子:表达式树
4.3 查找树adt——二叉查找树
4.3.1 contains方法
4.3.2 findmin方法和findmax方法
4.3.3 insert方法
4.3.4 remove方法
4.3.5 平均情况分析
4.4 avl树
4.4.1 单旋转
4.4.2 双旋转
4.5 伸展树
4.5.1 一个简单的想法(不能直接使用)
4.5.2 展开
4.6 树的遍历
4.7 b树
4.8 标准库中的集合与映射
4.8.1 关于set接口
4.8.2 关于map接口
4.8.3 treeset类和treemap类的实现
4.8.4 使用多个映射的例
小结
练习
参考文献
第5章 散列
5.1 一般想法
5.2 散列函数
5.3 分离链接法
5.4 不用链表的散列表
5.4.1 线性探测法
5.4.2 平方探测法
5.4.3 双散列
5.5 再散列
5.6 标准库中的散列表
5.7 可扩散列
小结
练习
参考文献
第6章 优先队列(堆)
6.1 模型
6.2 一些简单的实现
6.3 二叉堆
6.3.1 结构性质
6.3.2 堆序性质
6.3.3 基本的堆操作
6.3.4 其他的堆操作
6.4 优先队列的应用
6.4.1 选择问题
6.4.2 事件模拟
6.5 d-堆
6.6 左式堆
6.6.1 左式堆性质
6.6.2 左式堆操作
6.7 斜堆
6.8 二项队列
6.8.1 二项队列结构
6.8.2 二项队列操作
6.8.3 二项队列的实现
6.9 标准库中的优先队列
小结
练习
参考文献
第7章 排序
7.1 预备知识
7.2 插入排序
7.2.1 算法
7.2.2 插入排序的分析
7.3 一些简单排序算法的下界
7.4 希尔排序
7.5 堆排序
7.6 归并排序
7.7 快速排序
7.7.1 选取枢纽元
7.7.2 分割策略
7.7.3 小数组
7.7.4 实际的快速排序例程
7.7.5 快速排序的分析
7.7.6 选择问题的线性期望时间算法
7.8 排序算法的一般下界
7.9 桶式排序
7.10 外部排序
7.10.1 为什么需要一些新的算法
7.10.2 外部排序模型
7.10.3 简单算法
7.10.4 多路合并
7.10.5 多相合并
7.10.6 替换选择
小结
练习题
参考文献
第8章 不相交集类
8.1 等价关系
8.2 动态等价性问题
8.3 基本数据结构
8.4 灵巧求并算法
8.5 路径压缩
8.6 路径压缩和按秩求并的最坏情形
8.7 一个应用
小结
练习题
参考文献
第9章 图论算法
9.1 若干定义
9.2 拓扑排序
9.3 最短路径算法
9.3.1 无权最短路径
9.3.2 dijkstra算法
9.3.3 具有负边值的图
9.3.4 无圈图
9.3.5 所有点对最短路径
9.3.6 最短路径的例子
9.4 网络流问题
9.5 最小生成树
9.5.1 prim算法
9.5.2 kruskal算法
9.6 深度优先搜索的应用
9.6.1 无向图
9.6.2 双连通性
9.6.3 欧拉回路
9.6.4 有向图
9.6.5 查找强分支
9.7 np完全性介绍
9.7.1 难与易
9.7.2 np类
9.7.3 np完全问题
小结
练习
参考文献
第10章 算法设计技巧
10.1 贪婪算法
10.1.1 一个简单的调度问题
10.1.2 哈夫曼编码
10.1.3 近似装箱问题
10.2 分治算法
10.2.1 分治算法的运行时间
10.2.2 最近点问题
10.2.3 选择问题
10.2.4 一些算术问题的理论改进
10.3 动态规划
10.3.1 用一个表代替递归
10.3.2 矩阵乘法的顺序安排
10.3.3 最优二叉查找树
10.3.4 所有点对最短路径
10.4 随机化算法
10.4.1 随机数发生器
10.4.2 跳跃表
10.4.3 素性测试
10.5 回溯算法
10.5.1 收费公路重建问题
10.5.2 博弈
小结
练习
参考文献
第11章 摊还分析
11.1 一个无关的智力问题
11.2 二项队列
11.3 斜堆
11.4 斐波那契堆
11.4.1 切除左式堆中的节点
11.4.2 二项队列的懒惰合并
11.4.3 斐波那契堆操作
11.4.4 时间界的证明
11.5 伸展树
小结
练习
参考文献
第12章 高级数据结构及其实现
12.1 自顶向下伸展树
12.2 红黑树
12.2.1 自底向上的插入
12.2.2 自顶向下红黑树
12.2.3 自顶向下的删除
12.3 确定性跳跃表
12.4 aa树
12.5 treap树
12.6 kd树
12.7 配对堆
小结
练习
参考文献
索引
↑折 叠
数据结构与算法分析-Java语言描述(第2版)_1_2
目录回到顶部↑
出版者的话
译者序
前言
第1章 引论
1.1 本书讨论的内容
1.2 数学知识复习
1.2.1 指数
1.2.2 对数
1.2.3 级数
1.2.4 模运算
1.2.5 证明的方法
1.3 递归简论
1.4 实现泛型特性构件pre-java5
1.4.1 使用object表示泛型
1.4.2 基本类型的包装
1.4.3 使用接口类型表示泛型
1.4.4 数组类型的兼容性
1.5 利用java5泛性实现泛型特性成分
1.5.1 简单的泛型类和接口
1.5.2 自动装箱/拆箱
. 1.5.3 带有限制的通配符
1.5.4 泛型static方法
1.5.5 类型限界
1.5.6 类型擦除
1.5.7 对于泛型的限制
1.6 函数对象
小结
练习
参考文献
第2章 算法分析
2.1 数学基础
2.2 模型
2.3 要分析的问题
2.4 运行时间计算
2.4.1 一个简单的例子
2.4.2 一般法则
2.4.3 最大子序列和问题的求解
2.4.4 运行时间中的对数
2.4.5 检验你的分析
2.4.6 分析结果的准确性
小结
练习
参考文献
第3章 表、栈和队列
3.1 抽象数据类型
3.2 表adt
3.2.1 表的简单数组实现
3.2.2 简单链表
3.3 javacollectionsapi中的表
3.3.1 collection接口
3.3.2 iterator接口
3.3.3 list接口、arraylist类和linkedlist类
3.3.4 例:remove方法对linkedlist类的使用
3.3.5 关于listiterator接口
3.4 arraylist类的实现
3.4.1 基本类
3.4.2 迭代器、java嵌套类和内部类
3.5 linkedlist类的实现
3.6 栈adt
3.6.1 栈模型
3.6.2 栈的实现
3.6.3 应用
3.7 队列adt
3.7.1 队列模型
3.7.2 队列的数组实现
3.7.3 队列的应用
小结
练习
第4章 树
4.1 预备知识
4.1.1 树的实现
4.1.2 树的遍历及应用
4.2 二叉树
4.2.1 实现
4.2.2 例子:表达式树
4.3 查找树adt——二叉查找树
4.3.1 contains方法
4.3.2 findmin方法和findmax方法
4.3.3 insert方法
4.3.4 remove方法
4.3.5 平均情况分析
4.4 avl树
4.4.1 单旋转
4.4.2 双旋转
4.5 伸展树
4.5.1 一个简单的想法(不能直接使用)
4.5.2 展开
4.6 树的遍历
4.7 b树
4.8 标准库中的集合与映射
4.8.1 关于set接口
4.8.2 关于map接口
4.8.3 treeset类和treemap类的实现
4.8.4 使用多个映射的例
小结
练习
参考文献
第5章 散列
5.1 一般想法
5.2 散列函数
5.3 分离链接法
5.4 不用链表的散列表
5.4.1 线性探测法
5.4.2 平方探测法
5.4.3 双散列
5.5 再散列
5.6 标准库中的散列表
5.7 可扩散列
小结
练习
参考文献
第6章 优先队列(堆)
6.1 模型
6.2 一些简单的实现
6.3 二叉堆
6.3.1 结构性质
6.3.2 堆序性质
6.3.3 基本的堆操作
6.3.4 其他的堆操作
6.4 优先队列的应用
6.4.1 选择问题
6.4.2 事件模拟
6.5 d-堆
6.6 左式堆
6.6.1 左式堆性质
6.6.2 左式堆操作
6.7 斜堆
6.8 二项队列
6.8.1 二项队列结构
6.8.2 二项队列操作
6.8.3 二项队列的实现
6.9 标准库中的优先队列
小结
练习
参考文献
第7章 排序
7.1 预备知识
7.2 插入排序
7.2.1 算法
7.2.2 插入排序的分析
7.3 一些简单排序算法的下界
7.4 希尔排序
7.5 堆排序
7.6 归并排序
7.7 快速排序
7.7.1 选取枢纽元
7.7.2 分割策略
7.7.3 小数组
7.7.4 实际的快速排序例程
7.7.5 快速排序的分析
7.7.6 选择问题的线性期望时间算法
7.8 排序算法的一般下界
7.9 桶式排序
7.10 外部排序
7.10.1 为什么需要一些新的算法
7.10.2 外部排序模型
7.10.3 简单算法
7.10.4 多路合并
7.10.5 多相合并
7.10.6 替换选择
小结
练习题
参考文献
第8章 不相交集类
8.1 等价关系
8.2 动态等价性问题
8.3 基本数据结构
8.4 灵巧求并算法
8.5 路径压缩
8.6 路径压缩和按秩求并的最坏情形
8.7 一个应用
小结
练习题
参考文献
第9章 图论算法
9.1 若干定义
9.2 拓扑排序
9.3 最短路径算法
9.3.1 无权最短路径
9.3.2 dijkstra算法
9.3.3 具有负边值的图
9.3.4 无圈图
9.3.5 所有点对最短路径
9.3.6 最短路径的例子
9.4 网络流问题
9.5 最小生成树
9.5.1 prim算法
9.5.2 kruskal算法
9.6 深度优先搜索的应用
9.6.1 无向图
9.6.2 双连通性
9.6.3 欧拉回路
9.6.4 有向图
9.6.5 查找强分支
9.7 np完全性介绍
9.7.1 难与易
9.7.2 np类
9.7.3 np完全问题
小结
练习
参考文献
第10章 算法设计技巧
10.1 贪婪算法
10.1.1 一个简单的调度问题
10.1.2 哈夫曼编码
10.1.3 近似装箱问题
10.2 分治算法
10.2.1 分治算法的运行时间
10.2.2 最近点问题
10.2.3 选择问题
10.2.4 一些算术问题的理论改进
10.3 动态规划
10.3.1 用一个表代替递归
10.3.2 矩阵乘法的顺序安排
10.3.3 最优二叉查找树
10.3.4 所有点对最短路径
10.4 随机化算法
10.4.1 随机数发生器
10.4.2 跳跃表
10.4.3 素性测试
10.5 回溯算法
10.5.1 收费公路重建问题
10.5.2 博弈
小结
练习
参考文献
第11章 摊还分析
11.1 一个无关的智力问题
11.2 二项队列
11.3 斜堆
11.4 斐波那契堆
11.4.1 切除左式堆中的节点
11.4.2 二项队列的懒惰合并
11.4.3 斐波那契堆操作
11.4.4 时间界的证明
11.5 伸展树
小结
练习
参考文献
第12章 高级数据结构及其实现
12.1 自顶向下伸展树
12.2 红黑树
12.2.1 自底向上的插入
12.2.2 自顶向下红黑树
12.2.3 自顶向下的删除
12.3 确定性跳跃表
12.4 aa树
12.5 treap树
12.6 kd树
12.7 配对堆
小结
练习
参考文献
索引
↑折 叠