【文件属性】:
文件名称:webx3框架指南PDF教程附学习Demo
文件大小:47.3MB
文件格式:7Z
更新时间:2020-12-25 15:52:51
webx3
该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用,并附学习的Demo
为什么要用Webx而不是其它的开源框架?
现在有很多Java的Web框架可供选择,并且它们也都是免费的。例如:
• Struts
• Webwork
• Tapestry
• Spring MVC
以上框架都是非常优秀的。说实话,如果阿里巴巴网站在2001年开始,就有这么多可选择的话,无论选择哪一个都不会有问题。因为这些年来,所有的开源Web框架都在互相学习、并趋于相似。Webx也不例外,它吸收了其它框架的很多想法。因此,当你使用Webx的时候,你会觉得在很多方面,它和其它开源的框架非常类似。我并不是说所有的框架都一样好,而是说只要假以时日,所有的框架在发展过程中,必然会积聚好的方面,淘汰坏的方面,从而变得足够好。从这个角度看,的确没有特别明显的理由来选择Webx,但也没有明显的理由不选择Webx。
另一方面,由于每一种框架采用不同的设计,必然会有各自的优势。Webx也是如此 —— 它在某些方面有一些独到的设计,超越了同类框架。Webx有哪些优势呢?
Webx的优势
成熟可靠性
这个优势主要是针对阿里巴巴及属下网站而言。因为Webx在阿里巴巴和淘宝用了很多年。对于这种超大访问量的电子商务网站,Webx经受了考验,被证明是成熟可靠的。
开放和扩展性
• 对Spring的直接支持 —— Spring是当今主流的轻量级框架。Webx 3.0和Spring MVC一样,
完全建立在Spring框架之上,故可运用Spring的所有特性。
• 扩展性 —— Webx 3.0对Spring做了扩展,使Spring Bean不再是“bean”,而是升级成“组件”。一个组件可以扩展另一个组件,也可以被其它组件扩展。这种机制造就了Webx的非常好的扩展性,且比未经扩展的Spring更易使用。
• 开放性 —— Webx被设计成多个层次,层次间的分界线很清晰。每个层次都足够开放和易于扩展。你可以使用全部的Webx,也可以仅仅使用到Webx的任何一个层次。
引言 ............................................................................................................................... ix
1. 阅读向导 ............................................................................................................. ix
2. Webx是什么? .................................................................................................... ix
3. Webx的历史 ....................................................................................................... ix
4. 为什么要用Webx而不是其它的开源框架? ............................................................. x
5. Webx的优势 ........................................................................................................ x
5.1. 成熟可靠性 ................................................................................................ x
5.2. 开放和扩展性 ............................................................................................. x
6. Webx还缺少什么? .............................................................................................. x
部分 I. Webx框架概览 ..................................................................................................... 1
第 1 章 Webx总体介绍 ............................................................................................. 4
1.1. 设计理念 ................................................................................................... 4
1.1.1. 框架的本质 ..................................................................................... 4
1.1.2. 基础框架 ........................................................................................ 4
1.1.3. 层次化 ........................................................................................... 5
1.2. Webx的层次 ............................................................................................. 6
1.2.1. 三个大层次 ..................................................................................... 6
1.2.2. 剪裁和定制Webx ............................................................................ 7
1.3. 本章总结 ................................................................................................... 9
第 2 章 SpringExt ................................................................................................... 10
2.1. 用SpringExt装配服务 ............................................................................... 10
2.1.1. Spring Beans ............................................................................... 11
2.1.2. Spring Schema ........................................................................... 12
2.1.3. SpringExt Schema ....................................................................... 15
2.2. SpringExt原理 ......................................................................................... 16
2.2.1. XML Schema中的秘密 ................................................................. 16
2.2.2. 扩展点,Configuration Point ....................................................... 17
2.2.3. 捐献,Contribution ...................................................................... 17
2.2.4. 组件和包 ...................................................................................... 18
2.2.5. 取得Schemas .............................................................................. 19
2.3. SpringExt其它特性 ................................................................................... 22
2.4. 本章总结 ................................................................................................. 23
第 3 章 Webx Framework ...................................................................................... 24
3.1. Webx的初始化 ........................................................................................ 24
3.1.1. 初始化级联的Spring容器 ............................................................... 24
3.1.2. 初始化日志系统 ............................................................................ 26
3.2. Webx响应请求 ........................................................................................ 27
3.2.1. 增强request、response、session的功能 ....................................... 27
3.2.2. Pipeline流程机制 .......................................................................... 29
3.2.3. 异常处理机制 ................................................................................ 30
3.2.4. 开发模式工具 ................................................................................ 30
3.2.5. 响应和处理请求的更多细节 ............................................................ 33
3.3. 定制Webx Framework ............................................................................ 36
3.3.1. 定制WebxRootController ............................................................ 36
Webx框架指南
iv
3.3.2. 定制WebxController .................................................................... 36
3.4. 本章总结 ................................................................................................. 37
第 4 章 Webx Turbine ............................................................................................ 38
4.1. 设计理念 ................................................................................................. 38
4.1.1. 页面驱动 ...................................................................................... 38
4.1.2. 约定胜于配置 ................................................................................ 39
4.2. 页面布局 ................................................................................................. 40
4.3. 处理页面的基本流程 ................................................................................. 41
4.4. 依赖注入 ................................................................................................. 43
4.4.1. Spring原生注入手段 ...................................................................... 43
4.4.2. 注入request、response和session对象 ........................................... 43
4.4.3. 参数注入 ...................................................................................... 44
4.5. 定制Webx Turbine .................................................................................. 44
4.6. 本章总结 ................................................................................................. 45
部分 II. Webx基础设施服务 ............................................................................................ 46
第 5 章 Resource Loading服务指南 ....................................................................... 50
5.1. 资源概述 ................................................................................................. 50
5.1.1. 什么是资源? ................................................................................ 50
5.1.2. 如何表示资源? ............................................................................ 51
5.1.3. 如何访问资源? ............................................................................ 51
5.1.4. 如何遍历资源? ............................................................................ 52
5.1.5. 有什么问题? ................................................................................ 53
5.2. Spring的ResourceLoader机制 ................................................................. 54
5.2.1. Resource接口 .............................................................................. 54
5.2.2. ResourceLoader和ResourcePatternResolver接口 ...................... 54
5.2.3. 在代码中取得资源 ......................................................................... 55
5.2.4. Spring如何装载资源? ................................................................... 56
5.2.5. Spring ResourceLoader的缺点 ..................................................... 58
5.3. Resource Loading服务 ........................................................................... 59
5.3.1. 替换Spring ResourceLoader ......................................................... 59
5.3.2. 定义新资源 ................................................................................... 60
5.3.3. 重命名资源 ................................................................................... 61
5.3.4. 重定向资源 ................................................................................... 62
5.3.5. 匹配资源 ...................................................................................... 63
5.3.6. 在多个ResourceLoader中查找 ...................................................... 64
5.3.7. 装载parent容器中的资源 .............................................................. 65
5.3.8. 修改资源文件的内容 ...................................................................... 65
5.3.9. 直接使用ResourceLoadingService .............................................. 66
5.3.10. 在非Web环境中使用Resource Loading服务 ............................... 68
5.4. ResourceLoader参考 ............................................................................. 69
5.4.1. FileResourceLoader ................................................................... 69
5.4.2. WebappResourceLoader ............................................................... 70
5.4.3. ClasspathResourceLoader .......................................................... 70
5.4.4. SuperResourceLoader ................................................................. 70
Webx框架指南
v
5.4.5. 关于ResourceLoader的其它考虑 ................................................... 71
5.5. 本章总结 ................................................................................................. 71
第 6 章 Filter、Request Contexts和Pipeline ........................................................... 72
6.1. Filter ....................................................................................................... 72
6.1.1. Filter的用途 .................................................................................. 72
6.1.2. Filter工作原理 ............................................................................... 73
6.1.3. Filter的限制 .................................................................................. 74
6.1.4. Webx对filter功能的补充 ................................................................ 74
6.2. Request Contexts服务 ........................................................................... 75
6.2.1. Request Contexts工作原理 .......................................................... 75
6.2.2. Request Contexts的用途 ............................................................. 76
6.2.3. Request Contexts的使用 ............................................................. 77
6.3. Pipeline服务 ........................................................................................... 80
6.3.1. Pipeline工作原理 .......................................................................... 80
6.3.2. Pipeline的用途 ............................................................................. 81
6.3.3. Pipeline的使用 ............................................................................. 83
6.4. 本章总结 ................................................................................................. 92
第 7 章 Request Contexts功能指南 ........................................................................ 94
7.1. - 提供基础特性 .......................................................................... 95
7.1.1. 拦截器接口 ................................................................................... 95
7.1.2. 默认拦截器 ................................................................................... 96
7.2. -设置locale区域和charset字符集编码 ............................... 96
7.2.1. Locale基础 .................................................................................. 96
7.2.2. Charset编码基础 .......................................................................... 97
7.2.3. Locale和charset的关系 ............................................................... 98
7.2.4. 设置locale和charset .................................................................... 98
7.2.5. 使用方法 ...................................................................................... 99
7.3. - 解析参数 ............................................................................. 102
7.3.1. 基本使用方法 .............................................................................. 102
7.3.2. 上传文件 .................................................................................... 103
7.3.3. 高级选项 .................................................................................... 105
7.4. - 缓存response中的内容 ..................................................... 108
7.4.1. 实现原理 .................................................................................... 108
7.4.2. 使用方法 .................................................................................... 110
7.5. - 延迟提交response ...................................................... 112
7.5.1. 什么是提交 ................................................................................. 112
7.5.2. 实现原理 .................................................................................... 112
7.5.3. 使用方法 .................................................................................... 113
7.6. -重写请求的URL和参数 .......................................................... 113
7.6.1. 概述 ........................................................................................... 113
7.6.2. 取得路径 .................................................................................... 115
7.6.3. 匹配rules .................................................................................... 115
7.6.4. 匹配conditions ........................................................................... 116
7.6.5. 替换路径 .................................................................................... 118
7.6.6. 替换参数 .................................................................................... 118
Webx框架指南
vi
7.6.7. 后续操作 .................................................................................... 119
7.6.8. 重定向 ........................................................................................ 120
7.6.9. 自定义处理器 .............................................................................. 121
7.7. 本章总结 ............................................................................................... 121
第 8 章 Request Context之Session指南 ................................................................ 122
8.1. Session概述 ........................................................................................... 122
8.1.1. 什么是Session ............................................................................. 122
8.1.2. Session数据存在哪? ................................................................... 122
8.1.3. 创建通用的session框架 ................................................................ 124
8.2. Session框架 ........................................................................................... 125
8.2.1. 最简配置 .................................................................................... 125
8.2.2. Session ID .................................................................................. 125
8.2.3. Session的生命期 ......................................................................... 126
8.2.4. Session Store ............................................................................. 128
8.2.5. Session Model ........................................................................... 130
8.2.6. Session Interceptor .................................................................... 130
8.3. Cookie Store ........................................................................................ 131
8.3.1. 多值Cookie Store ...................................................................... 132
8.3.2. 单值Cookie Store ...................................................................... 135
8.4. 其它Session Store ................................................................................. 138
8.4.1. Simple Memory Store ................................................................ 138
8.5. 本章总结 ............................................................................................... 139
部分 III. Webx应用支持服务 .......................................................................................... 140
第 9 章 表单验证服务指南 ..................................................................................... 142
9.1. 表单概述 ............................................................................................... 142
9.1.1. 什么是表单验证 ........................................................................... 142
9.1.2. 表单验证的形式 ........................................................................... 143
9.2. 设计 ...................................................................................................... 145
9.2.1. 验证逻辑与表现逻辑分离 ............................................................. 145
9.2.2. 验证逻辑和应用代码分离 ............................................................. 146
9.2.3. 表单验证的流程 ........................................................................... 146
9.3. 使用表单验证服务 .................................................................................. 147
9.3.1. 创建新数据 ................................................................................. 147
9.3.2. 修改老数据 ................................................................................. 154
9.3.3. 批量创建或修改数据 .................................................................... 156
9.4. 表单验证服务详解 .................................................................................. 160
9.4.1. 配置详解 .................................................................................... 160
9.4.2. Validators .................................................................................. 168
9.4.3. Form Tool .................................................................................. 178
9.4.4. Field keys的格式 ........................................................................ 180
9.4.5. 外部验证 .................................................................................... 181
9.5. 本章总结 ............................................................................................... 182
部分 IV. Webx应用实作 ............................................................................................... 183
第 10 章 创建第一个Webx应用 .............................................................................. 185
Webx框架指南
vii
10.1. 准备工作 ............................................................................................. 185
10.1.1. 安装JDK ................................................................................... 185
10.1.2. 安装和配置maven .................................................................... 185
10.1.3. 安装集成开发环境 ..................................................................... 185
10.2. 创建应用 ............................................................................................. 186
10.3. 运行应用 ............................................................................................. 186
10.4. 提问和解答 .......................................................................................... 188
10.4.1. 在生产环境的应用上,也会出现前述的“开发者首页”吗? .......... 188
10.4.2. “开发模式”是什么意思? ........................................................ 189
10.4.3. 所生成的应用中包含了什么? ..................................................... 190
第 11 章 Webx日志系统的配置 .............................................................................. 191
11.1. 名词解释 ............................................................................................. 191
11.1.1. 日志系统(Logging System) ................................................... 191
11.1.2. 日志框架(Logging Framework) ............................................ 192
11.2. 在Maven中组装日志系统 ..................................................................... 192
11.2.1. 在Maven中配置logback作为日志系统 ...................................... 194
11.2.2. 在Maven中配置log4j作为日志系统 ............................................ 197
11.3. 在WEB应用中配置日志系统 ................................................................... 200
11.3.1. 设置WEB应用 ............................................................................ 200
11.3.2. 定制/WEB-INF/logback.xml(或/WEB-INF/log4j.xml) .......... 202
11.3.3. 同时初始化多个日志系统 ............................................................ 205
11.4. 常见错误及解决 ................................................................................... 207
11.4.1. 查错技巧 ................................................................................... 207
11.4.2. 异常信息:No log system exists ................................................ 207
11.4.3. 异常信息:NoSuchMethodError:
org.slf4j.MDC.getCopyOfContextMap() ........................................... 208
11.4.4. STDERR输出:Class path contains multiple SLF4J bindings ....... 208
11.4.5. 看不到日志输出 ......................................................................... 208
11.5. 本章总结 ............................................................................................. 210
部分 V. 辅助工具 ......................................................................................................... 211
第 12 章 安装和使用SpringExt插件 ......................................................................... 213
12.1. SpringExt插件有什么用? ..................................................................... 213
12.2. Maven插件 ......................................................................................... 214
12.2.1. 在pom.xml中定义插件 ............................................................... 215
12.2.2. 启动schema服务器 .................................................................. 215
12.2.3. 导出所有的schemas ................................................................. 217
12.2.4. Maven插件的可选参数 ............................................................. 217
12.3. Eclipse插件 ......................................................................................... 218
12.3.1. 安装插件 ................................................................................... 218
12.3.2. 利用插件编辑Webx/SpringExt配置文件 ...................................... 223
12.3.3. 利用插件编辑SpringExt组件 ....................................................... 228
12.4. 本章总结 ............................................................................................. 230
第 13 章 AutoConfig工具使用指南 ........................................................................ 231
13.1. 需求分析 ............................................................................................. 231
13.1.1. 解决方案 ................................................................................... 231
Webx框架指南
viii
13.2. AutoConfig的设计 .............................................................................. 234
13.2.1. 角色与职责 ............................................................................... 234
13.2.2. 分享二进制目标文件 .................................................................. 235
13.2.3. 布署二进制目标文件 .................................................................. 235
13.2.4. AutoConfig特性列表 ................................................................ 236
13.3. AutoConfig的使用 —— 开发者指南 ..................................................... 237
13.3.1. 建立AutoConfig目录结构 .......................................................... 237
13.3.2. 建立auto-config.xml描述文件 ................................................... 238
13.3.3. 建立模板文件 ............................................................................ 241
13.4. AutoConfig的使用 —— 布署者指南 ..................................................... 243
13.4.1. 在命令行中使用AutoConfig ...................................................... 243
13.4.2. 在maven中使用AutoConfig ..................................................... 244
13.4.3. 运行并观察AutoConfig的结果 ................................................... 246
13.4.4. 共享properties文件 ................................................................... 247
13.4.5. AutoConfig常用命令 ................................................................ 249
13.5. 本章总结 ............................................................................................. 251
第 14 章 AutoExpand工具使用指南 ...................................................................... 252
14.1. AutoExpand工具简介 ......................................................................... 252
14.1.1. Java、JavaEE打包的格式 ......................................................... 252
14.1.2. 应用布署的方式 ......................................................................... 253
14.1.3. AutoExpand的用武之地 ........................................................... 253
14.2. AutoExpand的使用 ............................................................................. 254
14.2.1. 取得AutoExpand ..................................................................... 254
14.2.2. 执行AutoExpand ..................................................................... 254
14.2.3. AutoExpand和AutoConfig的合作 ............................................ 255
14.3. AutoExpand的参数 ............................................................................. 256
14.4. 本章总结 ............................................................................................. 257